Hogyan ellenőrizhetem, melyik héjot használom?

242

Elolvastam, hogy a terminál nem más, mint a shell, és a Unix másféle ízeket biztosít a kagylóknak:

  • Bourne héj (sh)
  • C shell (csh)
  • TC shell (tcsh)
  • Korn héj (ksh)
  • Bourne Again shell (bash)

Kérdések:

  • Amikor megnyitok egy terminál ablakot, amelyik alapértelmezés szerint megnyílik?
  • Hogyan ellenőrizhetem, hány héj telepítve van?
  • Hogyan változtathatom meg a fiókom által használt shellet?
készlet goutham 28.02.2015 04:58
forrás

5 válasz

293

A következő parancsot írhatja be a terminálba, hogy lássa, melyik kagylót használja:

echo 
-bash

Az eredmény valami hasonlót mutat az alábbiakhoz, ha a bash ( Bourne Again Shell ) terminált használja:

%pr_dfe%     
válasz adott kingmilo 28.02.2015 05:03
forrás
80

Az alapértelmezett környezetben lévő héj megkereséséhez ellenőrizheti aSHELL környezeti változó értékét:

echo $SHELL

Az aktuális shell-példány megkereséséhez keresse meg az aktuális shell-példány PID-értékének folyamatát (shell).

A pillanatnyi példány PID-jének megtalálása:

echo "$$"

Most keresse meg a PID-t tartalmazó folyamatot:

ps -p <PID>

Összeállítás:

ps -p "$$"
    
válasz adott heemayl 28.02.2015 05:06
forrás
16

$SHELL megadja az alapértelmezett shell-et. A (z)/bin/ksh megadja az aktuális kagylót.

Például: Az alapértelmezett shellként van bash, amit a Terminal App használatához használok. De az iTerm2 alkalmazásomhoz a parancsot az ablak megnyitásakor használom:/bin/ksh.

Tehát az én $SHELL megadja a/bin/bash -ot az iTerm2-en. $SHELL megadja a/bin/bash -ot az iTerm2-en. %co_kde%,%co_kde% megadja a%co_kde% -ban a terminálon

    
válasz adott nakulchawla09 18.11.2016 12:45
forrás
5

Ahhoz, hogy megtudja, melyik az alapértelmezett héj a felhasználó számára, futtathatja a következőket:

echo "$SHELL"

Például, ha a Bash-ot használja, akkor a következő kimenetet kell kapnia:

/bin/bash

Ha nem változtatsz semmilyen konfigurációt, Bash legyen a Bash óta az Ubuntu alapértelmezett shellje.

    
válasz adott kos 28.02.2015 05:02
forrás
3

A többi válasz általában a shell sajátosságait használja, de megpróbáljuk felfedezni, hogy melyik héjunkat használjuk, ezért vállalják a választ a problémára. Például a válaszok egyikére sem fog hal.

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

Ehelyett használja a $$ szintaxist a sh meghívásakor, de azt keressük, hogy a PPID nem a PID. Használja a PPID-t a cmd megtalálásához.

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

Köszönjük a fejlesztést @muru

    
válasz adott Evan Benn 06.04.2018 06:00
forrás