.bashrc
dan .bash_profile
yang TIDAK skrip. Mereka adalah file konfigurasi yang bersumber setiap kali bash
dieksekusi dalam salah satu dari 2 cara:
Bagian INVOCASI dari halaman bash man adalah yang relevan.
Sebuah shell login adalah salah satu yang pertama karakter argumen nol adalah -
, atau satu mulai dengan --login
pilihan.
Sebuah interaktif shell yang satu dimulai tanpa argumen non-pilihan dan tanpa -c
pilihan yang standar input dan kesalahan keduanya terhubung ke terminal (sebagaimana ditentukan oleh isatty(3))
, atau satu mulai dengan -i
pilihan. PS1 diatur dan $-
termasuk i
jika bash
interaktif, memungkinkan script shell atau file startup untuk menguji keadaan ini.
Paragraf berikut menjelaskan cara bash
menjalankan file startupnya. Jika ada file yang ada tetapi tidak dapat dibaca, bash melaporkan kesalahan. Tilde diperluas dalam nama file seperti yang dijelaskan di bawah di bawah
Ekspansi Tilde di bagian EKSPANSI .
Ketika bash dipanggil sebagai shell login interaktif , atau sebagai shell non-interaktif dengan --login
opsi, bash pertama kali membaca dan mengeksekusi perintah dari file /etc/profile
, jika file itu ada. Setelah membaca file itu, tampaknya untuk ~/.bash_profile
,
~/.bash_login
dan ~/.profile
, agar, dan membaca dan mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca. The
--noprofile
pilihan mungkin digunakan ketika shell dimulai untuk menghambat perilaku ini.
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 --norc
opsi. The --rcfile file
pilihan akan memaksa bash untuk membaca dan menjalankan perintah dari file bukan ~/.bashrc
.
Anda dapat mengontrol kapan mereka dimuat melalui saklar baris perintah, --norc
dan --noprofile
. Anda juga dapat mengganti lokasi tempat mereka dimuat menggunakan --rcfile
sakelar.
Seperti yang disebutkan oleh orang lain, Anda dapat meniru bagaimana file-file ini dimuat melalui penggunaan source <file>
perintah atau penggunaan . <file>
perintah.
Yang terbaik untuk memikirkan fungsi ini sebagai berikut:
- bash memulai dengan lingkungan kosong
- bash kemudian membuka salah satu file ini (tergantung bagaimana itu dipanggil sebagai interaktif atau masuk, dan kemudian ...
- ... baris demi baris mengeksekusi setiap perintah di dalam file ...
- ketika selesai memberi kontrol dalam bentuk prompt, menunggu input
Metode untuk memohon
Topik ini sepertinya muncul sesekali, jadi inilah sedikit contekan dari berbagai cara untuk memohon bash
dan apa hasilnya. CATATAN: Untuk membantu saya menambahkan pesan "bersumber $ HOME / .bashrc" dan "bersumber $ HOME / .bash_profile "ke file masing - masing.
panggilan dasar
bash -i
$ bash -i
sourced /home/saml/.bashrc
bash -l
$ bash -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -il -atau- bash -li
$ bash -il
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -c "..cmd .."
$ bash -c 'echo hi'
hi
CATATAN: Perhatikan bahwa -c
sakelar tidak sumber salah satu file!
menonaktifkan file konfigurasi agar tidak dibaca
bash --norc
$ bash --norc
bash-4.1$
bash --noprofile
$ bash --noprofile
sourced /home/saml/.bashrc
bash --norc -i
$ bash --norc -i
bash-4.1$
bash --norc -l
$ bash --norc -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash --noprofile -i
$ bash --noprofile -i
sourced /home/saml/.bashrc
bash --noprofile -l
$ bash --noprofile -l
bash-4.1$
bash --norc -i -atau- bash --norc -l
$ bash --norc -c 'echo hi'
hi
Cara yang lebih esoteris untuk memanggil bash
bash --rcfile $ HOME / .bashrc
$ bash -rcfile ~/.bashrc
sourced /home/saml/.bashrc
bash --norc --rcfile $ HOME / .bashrc
$ bash --norc -rcfile ~/.bashrc
bash-4.1$
Ini gagal
bash -i -rcfile ~ / .bashrc
$ bash -i -rcfile ~/.bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: /home/saml/.bashrc: restricted: cannot specify `/' in command names
bash -i -rcfile .bashrc
$ bash -i -rcfile .bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: .bashrc: command not found
Mungkin ada lebih banyak tetapi Anda mendapatkan intinya, semoga ....
Apa lagi?
Terakhir jika Anda begitu terpesona dengan topik ini sehingga Anda ingin membaca / mengeksplorasi lebih banyak tentangnya, saya sangat menyarankan untuk melihat pada Panduan Pemula Bash, khususnya bagian: 1.2. Keuntungan dari Bourne Again SHell . Berbagai subbagian di bawahnya, "1.2.2.1. Doa" melalui "1.2.2.3.3. Perilaku shell interaktif" menjelaskan perbedaan level rendah antara berbagai cara yang dapat Anda lakukan bash
.