bashrc veya bash_profile?


49

İki bash oturum açma komut dosyası arasındaki farkı biliyorum:

.bashrc sadece "giriş yapma" kabukları tarafından çalıştırılır.

.bash_profile(veya .bash_loginveya .profile) "giriş" kabukları tarafından yürütülür.

Kimsenin sadece giriş .bash_profileyapması için daha uygun olan şeylere dair iyi örnekleri var mı .bashrc?

(Ben çoğumuzun kaynak biliyoruz .bashrcdışına .bash_profile..., bu yüzden karşısındaki söz konusu çok noktası olmaya görünmüyor)


Yanıtlar:


24

A .bashrcgiriş yapmayan mermiler için olduğu için, ekrana yansıyan komutlardan kaçınırım. Ayrıca, echo ifadelerinin .bashrcsftp ve rsync komutlarının başarısız olmasına neden olacağı (ve belki de scp komutları) deneyimlerine rastladım.

# Print some information as we log in
# -s: OS Name -n: Node name -r: OS Release
uname -snr
uptime

Ayrıca, ssh-agent'ı etkileşimli olmayan bir kabuktan çalıştırmazsınız. Yani bende bu var .bash_profile.

if [ -f ~/.ssh/ssh-agent ]; then . ~/.ssh/ssh-agent; fi

2
~ / .Bash_profile yerine ~ / .profile kullanırsanız, mermileri değiştirseniz bile işler yine de işe yarayacaktır.
LassePoulsen

1
Ancak, bash sadece EITHER .bash_profile VEYA .profile komutunu çalıştıracaktır, bu yüzden her ikisini de kullanacaksanız, .bash_profile içindeki herhangi bir .profile kaynağına ihtiyacınız olacaktır. Aslında, bu kötü bir fikir değil ...
Don Faulkner

@ Kaynak & @Don: İyi noktalar. .Bash_profile dosyamda Bashish'ler vardı, ama şimdi daha evrensel bir şeye geçtim. Belki .profile kullanarak sırayla.
Stefan Lasiewski,

İle ilgili olarak çıkış üreten komutları .bashrcstandart kanalların üzerinden uygulanmaktadır uzak dosya transfer yöntemleri ile müdahale , çözelti, komutları koymaktır altında kabuk interaktif ve yalnızca devam etmesi durumunda kontrol kodu. Kullanıcıların .bashrcUbuntu'daki varsayılan dosyalarının /etc/skel/.bashrcyanı sıra hesap oluşturma işleminden kopyalanan sistem genelinde olduğu gibi /etc/bash.bashrc, kabuğun etkileşimsiz olup olmadığını kontrol eden ve döndüren kodlar da içeriyor (yine de birinin altında çıktı veren komutları kullanması gerekir).
Eliah Kagan

8

Byobu, asla içine sokmayacağınız harika bir örnek .bashrc.

Aksi takdirde, 'sanal terminallerinin' her birinde tekrar tekrar çalışacaktır ;-)

Yine de deneyebilirsiniz, eğlencelidir.

Bu yüzden onu koydun .profile, bu yüzden byobu (ki bu gerçekten ekranın etrafındaki adil bir sarmalayıcıdır) giriş anında sadece bir kez yüklenir. Ve byobu'nun kendisi yeni etkileşimli bash oturumlarına başlayabilir.


Bu iyi bir örnek. İşaretçiye Byobu'ya da teşekkür ederim. Şimdi gidip denemek için.
Don Faulkner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.