Başlangıç ​​dosyalarımın sh veya bash için neler olduğunu nasıl söylerim?


1

itibaren bu Soru işletim sistemine bağlı olarak anlıyorum sh ve bash farklı davran.

env ve alias Bunu söyleyebilirim:

Ne zaman bir OSX Terminali açsam veya çalıştırsam bash değişken $SHELL=/bin/bash koşar source ~/.profile hangi çağırır source ~/.bashrc. Koşarsam $sh komutlar source ~/.profile ne de source ~/.bashrc çağrılmaz, dolayısıyla takma adlardan hiçbiri tanımlanmaz.

Şimdi kullanarak bir Linux veya UNIX sunucusunda bash veya sh:

Giriş sırasında hangi komut dosyalarının çalıştığını nasıl anlarım?


Yanıtlar:


2

Öncelikle kabuğunuzu tanımlayın, başka bir cevapta belirtildiği gibi, bu sadece ps komut ...

$ ps
  PID TTY          TIME CMD
 3360 pts/2    00:00:00 bash
 3702 pts/2    00:00:00 ps

Hangi dosyaların okunmakta olduğundan emin olmak için giriş yaptığınız sistemi araştırmanız gerekecektir. 'bash' kabuğunun birçoğu vardır 'eğer bu' o zaman 'bunu' aksi halde 'başka bir şey yap' seçenekleri yapın. Hangi dosyaların kaynaklandığı ile ilgili tam bir açıklama görmek için bkz. İşte , ancak genellikle liste ...

  • / Etc / profile
  • $ HOME / .bash_profile
  • $ HOME / .bashrc (eğer .bash_profile dosyasında konfigüre edilmişse)
  • $ HOME / .bash_logout (çıkışta, giriş yapılmadı)

Bourne kabuğu için ('sh') genellikle giriş yaparken aşağıdaki gibi gider

  • / Etc / profile
  • $ HOME / .profile

Bilmediğim sistemlerde yapmaktan hoşlandığım şey, herhangi bir başlangıç ​​dosyasındaki bir satırdır; standart çıktının bir terminale bağlı olup olmadığını ve daha sonra dosya adını gösteriyorsa, sınanması gerektiğini umuyorum. Bu örnekte .bash_profile dosyasında kullanıyorum.

[ -t 1 ] && echo "reading .bash_profile"

Bu, bash veya sh (ve aynı zamanda birkaç başka türev için) çalışır. Bu yardımcı olur çünkü ne okunduğunu, ne zaman ve hatalar alırsam hangi dosyadan geldiklerini biliyorum (ilk yankıdan önce gelen hataların giriş işleminin kendisinden veya sistem geniş / etc / profilinden gelmesi muhtemeldir).

Ayrıca, kendi ısmarlama başlangıç ​​dosyalarınızı her zaman oluşturabileceğinizi ve bu dosyaları zaten kaynaklanmış bir dosyaya dahil ederek kendiniz dahil edebileceğinizi unutmayın.


Detaylı cevap ve öneri için teşekkürler. OSX’in Linux’a göre çok farklı olduğunu görüyorum. Günün dersi: cat \etc\profile
ilciavo

1
  1. /etc/passwd / etc / passwd dosyasının son alanı size loggin kabuğunuzu söyleyecektir.
  2. ps ps çalışan da size söyleyecektir (ve kabuk seviyesi)

      PID TTY          TIME CMD
     5802 pts/0    00:00:00 bash
     6292 pts/0    00:00:00 ps
    

teşekkürler nerede source ~/.profile, source ~/.bashrc aranmak bash veya sh?
ilciavo
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.