Shell Modes
Linux’da farklı shell modları varıdr. Bunlar özellikle ortam oluşturmada hangi startup dosyalarını okuyacağının kombinasyonu oluşurken önemlidir.
1. interactive login shell
Kullanıcı /etc/passwd dosyasında saklanan giriş bilgileri okuntuktan sonra /bin/login kullanarak shell i başlatır.
Shell bu durumda;/etc/profile~/.bash_profiledosyalarını okuyarak ortam hazırlar.
2. Interactive non-login Shell
Shell kullanılarak komut satırında başlatılır. Genellikle masaüstüne sahip işletim sistemlerinde terminal programının açılması sırasında olur.
Shell bu durumda sadece ~/.bashrc dosyası okunarak ortam hazırlanır.
3. Non-interactive ShellShell bir script betiği çalıştırıldığında başlatılır. Betiği başlatan kullanıcıdan ortamı miras alır.
Hangi shell modunu kullanıyorum?
echo $0
$0 değişkeni çalışmakta olduğunuz prosesin adını verir. echo $0 komutuyla shell modunu anlayabiliriz.
Çıktıda eğer – (tire) işareti varsa login shell’dir.
-bash -> login shell
/bin/bash -> non-login shell
Örneğin;
alikemal@pop-os:~$ echo $0
/bin/bash
Yukarıdaki örnekte shell non login ir shelldir. Masaüstü bir linux’da terminal açılarak shell’e erişim sağlanmıştır. Bir login işlemi olmadığı için non-login shell’dir.
Shell interaktif mi? Bunu ise – değişkeni yani $- ifadesini yazdırarark anlayabiliriz.
echo $-
Bu komutun çıktısında i harfi varsa interaktiftir. Yoksa non-interaktiftir.
alikemal@pop-os:~$ echo $-
himBHs
Yukarıdaki örnekte çıktı i harfi içerdiği için shell interaktif vir shell’dir.