In welcher Linux-/Unix-Shell bin ich gelandet?
Mir ist diese Fragestellung vor kurzem selbst an einer AIX-Maschine passiert.
- In welcher Linux-/Unix-Shell bin ich gelandet?
- Welche Unix-Shell läuft auf der Maschine?
Wer sich dies auch schon einmal gefragt hat, für den habe ich heute einen kleinen Tipp gefunden:
Mittels Eintippen am Shell-Prompt:
$ echo $SHELL
/bin/bash
bekommt man die zweite Zeile präsentiert, welche Auskunft gibt, welche Shell aktiv ist.
Die $SHELL-Variable wird automatisch beim Öffnen der Kommandozeile gesetzt und liefert den kompletten Pfad zur Shell an der wir angemeldet sind zurück.
Übliche Werte sind zum Beispiel:
- /bin/sh – Bourne shell
- /bin/bash – Bourne Again shell
- /bin/csh – C shell
- /bin/ksh – Korn shell
- /bin/tcsh – TC shell
- /bin/zsh – Z shell
gefunden bei Life After Coffee
Nicht wirklich. Die Variable SHELL wird auf die Loginshell gesetzt, was nicht zwingend die Shell ist in der du arbeitest. Hierzu folgendes Beispiel:
> echo $SHELL
/bin/bash
> zsh
> echo $SHELL
/bin/bash
also nix zsh! :)
Ich suche noch einen eleganten Weg die aktive Shell anzeigen zu lassen.
Aktuell kenne ich folgende Wege:
> ps -ef|grep sh
ODER
> for S in $(grep “^/bin/” /etc/shells)
> do
> lsof $S 2>/dev/null
> done
ODER
> pstree|grep -B1 pstree
Leider erfordern alle Wege noch manuelles Nacharbeiten und Nachdenken.
Wer will das schon. ;-)
Danke für deinen Hinweis und die Klarstellung.
Solche Kommentare wie deinen wünscht man sich gerne ;-)
Hier meine Lösung zum Thema meine Shell auf der Kommandozeile:
Damit ich weiss, in welcher UNiX-/Linux-Shell ich arbeite, hilft mir dabei immer folgender Befehl:
$ ps -ocmd -p$$|tail -n1
ein
echo $0
sollte es auch tun :-)
>…
echo $0
sollte es auch tun :-)
…csh
% echo $0
% no File for $0
;-)