'Giriş' ile 'Etkileşimli' bash kabuğu arasındaki fark nedir


50

'Giriş' ile 'Etkileşimli' bash kabuğu arasındaki fark nedir? Aşağıdan Wikipedia'yı alıntıladım, ancak herhangi biri daha iyi bir cevap verebilir mi?

EDIT: Bu bir topluluk wiki, bu yüzden belki de seni kapatmak için oy vermek yerine hangi durumlarda $ SHELL'in hangi durumlarda olduğunu söyleyebilecek örnekler verebilirsin

Başlangıç ​​komut dosyaları

Bash başladığında, komutları çeşitli komut dosyalarında yürütür.

Bash etkileşimli bir giriş kabuğu olarak çağrıldığında, ilk önce / etc / profile dosyasındaki komutları okur ve çalıştırır. Bu dosyayı okuduktan sonra, bu sırayla ~ / .bash_profile, ~ / .bash_login ve ~ / .profile ifadelerini arar ve var olan ve okunabilen ilk komuttan komutları okur ve yürütür.

Bir giriş kabuğu çıktığında Bash, varsa ~ / .bash_logout dosyasındaki komutları okur ve yürütür.

Oturum açma kabuğu olmayan etkileşimli bir kabuk başlatıldığında, Bash eğer varsa, ~ / .bashrc komutlarını okur ve yürütür. Bu --norc seçeneği kullanılarak engellenebilir. --Rcfile dosyası seçeneği, Bash'i ~ / .bashrc yerine dosyadan komutları okuması ve yürütmesi için zorlar.


Soruyu, yarı silahlı site kurallarına uyacak şekilde düzenledim. Faydalı bilgiyi silme arzusunu hiç anlayacağımı sanmıyorum ...
Gareth

7
İnsanlar neden bu soruyu oyluyor? Bana tamamen yasal görünüyor?
duffbeer703

2
Ugh, sorunuzdan cevabı alın ve cevap olarak gönderin. Kendi sorunuza cevap vermek sorun değil.
derobert

2
Bu ayrım kafa karıştırıcı olduğu için çok geçerli bir soru. Örneğin, xdm aracılığıyla grafik bir ortamda oturum açtığınızda ve xterm'i çalıştırdığınızda, etkileşimli bir kabuk elde ettiğinizde ve giriş kabuğu başlangıç ​​dosyalarının çalışmadığını unutmayın.
pjc50

Yanıtlar:


16

Giriş kabuğunuzun profil dosyalarında, oturumunuz sırasında kullanacağınız ve yalnızca bir kez yapılması gereken bazı şeyleri ayarlayabilirsiniz. Bazı fikirler:

  • bağlandığınız IP adresini içeren geçici bir dosya oluşturun, daha sonra güvenlik duvarı kurallarını ayarlayan bazı komut dosyalarına ekleyebilirsiniz.
  • ssh-agent'ı çalıştırın, SSH anahtarlarınızı isteyin ve SSH aracısı ortam değişkenlerini bir dosyada saklayın.
  • bu sınırlı bir makine ise ve iş arkadaşlarınız birbirlerinin girişlerinden haberdar olmak istiyorlarsa, giriş bilgilerinizi bildiren (1) mesaj yazın.

Giriş yapmayan bir kabuğun dosyalarında ( .bashrc) kabuğunuzu yapılandırmanız gerekir:

  • Süslü istemi
  • takma adları ayarla
  • geçmiş seçeneklerini ayarla
  • özel kabuk fonksiyonlarını tanımlayabilir
  • dışa aktarma ortamı değişkenlerini (belki sistem genelinde ayarlar emilirse PAGER, EDITOR)
  • kaydedilen ssh-agent değişkenlerini yükle .bash_profile

Genellikle, yer alacağını .bashrcdan .bash_profileaşağıdaki ile. Ardından giriş kabuğu tüm özelleştirmelerinizi alır ve .bash_profiledosyanın zaten içinde olanları çoğaltması gerekmez .bashrc.

[[ -f ~/.bashrc ]] && . ~/.bashrc

3
Makinede yeniyken ilk başlayan giriş kabuğu mı? Bundan sonra açtığınız diğer tüm kabuklar etkileşimli olabilir veya olmayabilir. Cron'dan kaçan bir kabuk mu? Etkileşimli görünmüyor, ancak giriş yapıyor mu? Ya makinede değilseniz? Bunlar cevapsız bırakılan sorular
François Beausoleil

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.