Hangi kabuğun kullanıldığını nasıl kontrol ederim?

233

Bu terminalin kabuktan başka bir şey olmadığını okudum ve Unix kabukların farklı lezzetlerini sağlıyor:

  • Bourne kabuğu (sh)
  • C kabuğu (csh)
  • TC kabuğu (tcsh)
  • Korn kabuğu (ksh)
  • Bourne Yine kabuk (bash)

Sorular:

  • Bir terminal penceresi açtığımda, varsayılan olarak hangi kabuk açılır?
  • Kaç tane merminin takılı olduğunu nasıl kontrol ederim?
  • Hesabımdan kullanılan kabuğu nasıl değiştiririm?
sordu goutham 28.02.2015 04:58

5 cevap

286

Kullandığınız kabuğu görmek için terminalinizde aşağıdaki komutu yazabilirsiniz:

echo 
-bash

bash ( Bourne Again Shell ) terminalini kullanıyorsanız, sonuç aşağıdakine benzer bir şekilde görünür:

%pre%     
verilen cevap kingmilo 28.02.2015 05:03
74

Varsayılan ortamda sahip olduğunuz kabuğu bulmak için SHELL ortam değişkeninin değerini kontrol edebilirsiniz:

echo $SHELL

Geçerli kabuk örneğini bulmak için, geçerli kabuk örneğinin PID'sine sahip olan işlemi (kabuk) bulun.

Geçerli kabuk örneğinin PID'sini bulmak için:

echo "$$"

Şimdi PID'ye sahip süreci bulmak için:

ps -p <PID>

Bir araya getirmek:

ps -p "$$"
    
verilen cevap heemayl 28.02.2015 05:06
16

$SHELL size varsayılan kabuğu verir. /bin/ksh geçerli kabuğu size verir.

Örneğin: Terminal Uygulamam için kullandığım varsayılan kabuk olarak bash var. Ama benim iTerm2 uygulamasında, pencere açılırken komutu kullanıyorum: /bin/ksh .

Yani benim $SHELL , iTerm2'de /bin/bash değerini veriyor. $SHELL , iTerm2'de /bin/bash değerini veriyor. %code% , %code% , Terminalde %code% %

veriyor     
verilen cevap nakulchawla09 18.11.2016 12:45
5

Kullanıcınız için varsayılan kabuk hangisinin olduğunu bilmek için şunları çalıştırabilirsiniz:

echo "$SHELL"

Örneğin, Bash kullanıyorsanız aşağıdaki çıktıyı almalısınız:

/bin/bash

Eğer herhangi bir yapılandırmayı değiştirmediyseniz, Bash Bash olmalıdır çünkü Ubuntu'daki varsayılan kabuktur.

    
verilen cevap kos 28.02.2015 05:02
2

Diğer cevaplar, kabuk özel özellikleri kullanma eğilimindedir, ancak kullandığımız kabuğun yerini bulmaya çalışıyoruz, bu nedenle sorunun cevabını üstleniyorlar. Örneğin, cevapların hiçbiri balık üzerinde çalışmayacaktır.

sh -c 'ps -p $$ -o ppid=' | xargs ps -o cmd= -p

Bunun yerine, sh komutunu kullanarak $$ sözdizimini kullanın, ancak PID'yi değil PPID'yi arıyoruz. Cmd'yi bulmak için PPID'yi kullanın.

sh -c 'ps -p $$ -o ppid=' | xargs -i readlink -f /proc/\{\}/exe

İyileştirme için teşekkürler Muru

    
verilen cevap Evan Benn 06.04.2018 06:00

Etiketlerdeki diğer soruları oku