.bashrcve .bash_profilevardır DEĞİL komut. Her seferinde kaynaklanacak yapılandırma dosyası bash2 yoldan biriyle yürütülür:
Çağırma bash adam sayfasının bölüm neyin en Alakalı olduğunu.
Bir giriş kabuğu bir argümanının ilk karakteri sıfır bir olduğunu -veya başladı bir --loginseçenek.
Bir etkileşimli kabuk bir seçenek olmayan bir argüman olmadan ve başlatıldığından -colan standart giriş ve hata ile belirlenen şekilde, her iki (terminallerine bağlı olan seçenek isatty(3))ya da bir ile başladı -i seçenek. PS1 ayarlanır ve $-içeren ihalinde bashinteraktif, bir kabuk izin veya bu durumu test etmek için bir başlangıç dosyası.
Aşağıdaki paragraflarda bashbaşlangıç dosyalarının nasıl yürütüleceği açıklanmaktadır . Dosyalardan herhangi biri varsa ancak okunamıyorsa, bash bir hata bildirir. Ekler , GENİŞLETME bölümünde yer alan Tilde Genişletme bölümünde açıklandığı şekilde dosya adlarında genişletilmiştir
.
Bash etkileşimli bir giriş kabuğu veya --loginseçenekle etkileşimli olmayan bir kabuk olarak çağrıldığında , ilk önce dosyadan komutları okur ve yürütür /etc/profile, eğer o dosya varsa. Bu dosyayı okuduktan sonra, arar ~/.bash_profile,
~/.bash_loginve ~/.profile, bu sırayla ve okur ve var ve okunabilir olanlarını gelen yürütür komutları.
--noprofileKabuk bu davranışı engellemek için başlatıldığında seçenek kullanılan olabilir.
Bir giriş kabuğu çıktığında, bash ~/.bash_logouteğer varsa dosyadaki komutları okur ve yürütür .
Bir zaman interaktif bir oturum açma kabuğu başlatılır değil kabuk, bash okur ve yürütür komutları gelen ~/.bashrc, bu dosya varsa. Bu --norcseçenek kullanılarak engellenebilir . Bu --rcfile file
seçenek bash'ı komut yerine dosyadan komutları okumaya ve yürütmeye zorlayacaktır ~/.bashrc.
Komut satırı anahtarları aracılığıyla ne zaman yüklendiklerini kontrol edebilirsiniz --norcve --noprofile. --rcfileDüğmeyi kullanarak yüklendikleri yerin yerini de geçersiz kılabilirsiniz .
Diğerlerinin de belirttiği gibi, bu dosyaların source <file>komut kullanımı veya komut kullanımı ile nasıl yüklendiğini taklit edebilirsiniz . <file>.
Bu işlevi aşağıdaki gibi düşünmek en iyisidir:
- bash çıplak bir çevre ile başlar
- bash daha sonra bu dosyalardan birini açar (etkileşime veya giriş olarak nasıl çağrıldığına bağlı olarak ve ardından ...
- ... satır satır dosya içindeki komutların her birini çalıştırır ...
- tamamlandığında bilgi istemi şeklinde kontrol edildiğinde, giriş bekleniyor
Çağırma yöntemleri
Bu konu, her seferinde bir kez ortaya çıkıyor gibi gözüküyor, işte çağırmanın çeşitli yollarını bashve neyle sonuçlandıklarını gösteren küçük bir sayfa. NOT: "kaynaklı $ HOME / .bashrc kaynaklı" ve "kaynaklı $ HOME / .bash_profile "kendi dosyalarına.
temel aramalar
bash
$ bash -i
sourced /home/saml/.bashrc
bash -l
$ bash -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -il -ve- bash -li
$ bash -il
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -c "..cmd .."
$ bash -c 'echo hi'
hi
NOT:-c Anahtarın herhangi bir dosyayı kaynaklamadığına dikkat edin !
config dosyalarının okunmasını engelleme
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 -ve- bash --norc -l
$ bash --norc -c 'echo hi'
hi
Bash çağırmanın daha ezoterik yolları
bash --rcfile $ HOME / .bashrc
$ bash -rcfile ~/.bashrc
sourced /home/saml/.bashrc
bash --norc --rcfile $ HOME / .bashrc
$ bash --norc -rcfile ~/.bashrc
bash-4.1$
Bunlar başarısız
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
Muhtemelen daha fazlası var ama umarım ...
Başka?
Son olarak, bu konuyla ilgili daha fazla okumak / keşfetmek istediğinizden çok etkilendiğiniz takdirde, Başlayanlar Kılavuzuna, özellikle bölüm: 1.2'ye bir göz atmanızı şiddetle tavsiye ederim . Bourne'nun Avantajları Yine Kabuk . Bunun altındaki çeşitli alt bölümler "1.2.2.1. Çağırma" ile "1.2.2.3.3. Etkileşimli kabuk davranışı" , çağırabileceğiniz çeşitli yollar arasındaki düşük seviye farklarını açıklar bash.