Jawaban:
Sebenarnya, secara bash
khusus yang berbunyi .bashrc
(dan /etc/bash.bashrc
). Ada banyak cangkang yang berbeda.
Halaman bash man (oleh Brian Fox dan Chet Ramey; juga halaman info "Bash Startup Files" ) adalah referensi resmi:
Ketika shell interaktif yang bukan shell login dimulai, bash membaca dan mengeksekusi perintah dari
~/.bashrc
, jika file itu ada. Ini dapat dihambat dengan menggunakan--norc
opsi. The--rcfile
pilihan file akan memaksa bash untuk membaca dan menjalankan perintah dari file bukan~/.bashrc
.Ketika bash dimulai secara non-interaktif, untuk menjalankan skrip shell, misalnya, ia mencari variabel
BASH_ENV
di lingkungan, memperluas nilainya jika muncul di sana, dan menggunakan nilai yang diperluas sebagai nama file untuk dibaca dan dieksekusi. Bash berperilaku seolah-olah perintah berikut dijalankan:if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
tetapi nilai
PATH
variabel tidak digunakan untuk mencari nama file.
File ini hanya perintah shell. Biasanya digunakan untuk mengubah prompt, mengatur variabel lingkungan, dan mendefinisikan prosedur shell. Secara tradisional, file .profile
digunakan untuk tujuan ini, tetapi bash
memiliki banyak ekstensi yang membutuhkan file startup sendiri untuk pengguna yang ingin menempatkan bashism dalam file startup.
" Bukan shell login " berarti hal-hal seperti peluncuran skrip dan biasanya terminal windows dimulai oleh manajer jendela. Kadang-kadang saya mengatur sistem * nix untuk dimiliki .bashrc
dan BASH_ENV
sumbernya saja .profile
. Selama Anda tidak keluar dari perintah shell POSIX maka Anda akan mendapatkan inisialisasi yang sama di setiap shell.
Ini sangat berharga ketika sh
benar-benar bash
, yang terkadang terjadi. Untuk melakukan ini gunakan:
. .profile
Salah satu alasan ini semua sangat kompleks adalah karena kadang-kadang orang memasukkan hal-hal yang menghasilkan output ke file startup shell, atau mereka tanpa syarat mengatur prompt. Ini menyebabkan banyak masalah saat menjalankan program shell dan perintah backtick dalam bahasa, belum lagi system(3)
dari program C. Cara bash
memulai dirancang, saya pikir, memiliki satu file di mana pengaturan output dan prompt OK dan satu file di mana tidak. Secara tradisional, tes run-time akan dilakukan untuk membedakan interaktivitas, misalnya, memeriksa untuk melihat apakah prompt diatur.
Ketika Bash dimulai, ia mengeksekusi perintah dalam berbagai skrip yang berbeda.
Ketika Bash dipanggil sebagai shell login interaktif, ia pertama kali membaca dan mengeksekusi perintah dari file / etc / profile, jika file itu ada. Setelah membaca file itu, ia mencari ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dalam urutan itu, dan membaca serta mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca.
Ketika shell login keluar, Bash membaca dan mengeksekusi perintah dari file ~ / .bash_logout, jika ada.
Ketika shell interaktif yang bukan shell login dimulai, Bash membaca dan mengeksekusi perintah dari ~ / .bashrc, jika file itu ada. Ini dapat dihambat dengan menggunakan opsi --norc. Opsi file --rcfile akan memaksa Bash untuk membaca dan menjalankan perintah dari file daripada ~ / .bashrc.
http://en.wikipedia.org/wiki/Bash_(Unix_shell)
Berikut beberapa trik dan kiatnya:
http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
Mari kita coba atur prompt sehingga dapat menampilkan tanggal dan nama host hari ini:
PS1="\d \h $ "
.profile
setelah .bash_profile
? Ada logika?
Itu harus berisi berbagai perintah "inisialisasi" untuk shell Anda, misalnya:
alias ll='ls -l'
).ll='ls -l'
memungkinkan Anda mengetik ll
untuk menjalankan ls -l
perintah.