linux

Shell Modes

Dec 13, 2020 < 1 min

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.

Your email address will not be published. Required fields are marked *