Nehmen wir an, ich habe ein Terminal geöffnet und einige Shell-Befehle eingegeben / ausgeführt.
Aber ich habe nicht explizit Bash oder eine andere Shell aufgerufen.
Welche Shell wurde standardmäßig verwendet?
command-line
DrStrangeLove
quelle
quelle
sudo netstat -an | grep LISTEN | grep -v ^unix
. Ich sehe keinen Grund, das in eine Bash-Subshell einzuschließen.sudo bash -c "..."
sichergestellt, dass die gesamte Pipe von Root ausgeführt wird.commandA | sudo commandB | commandC
, können Sie einesudo id
ersteid
root
chsh
dann müssen Sie sich abmelden und wieder anmelden , um diese Änderung zu sehen.GNU Bash ist die Shell, die standardmäßig in Terminals unter Ubuntu verwendet wird. Wenn jedoch Skripte beim Systemstart ausgeführt werden, wird dash verwendet, da dash / bin / sh ist.
Dies ist in der Umgebungsvariablen $ SHELL definiert. Sie können dies überprüfen, indem Sie
echo $SHELL
im Terminal eingeben .quelle
Wenn Sie Folgendes eingeben, wird angezeigt, mit welcher Shell das Terminal geöffnet wurde:
Um jedoch herauszufinden, in welcher Shell Sie sich gerade befinden (Sie haben sie möglicherweise geändert), geben Sie Folgendes ein
zB werden Sie sehen, dass die Shell in der Beispielausgabe bash ist
Eine andere Methode ist zu verwenden
Dadurch wird einfach der Name der aktuellen Shell zurückgegeben.
quelle
echo $0
Standardmäßig ist es bash:
In den meisten Fällen wird produzieren
quelle
useradd
, ist dies standardmäßig der Fallsh
.$ useradd -D|grep SHELL
SHELL=/bin/sh
.Um den Dateipfad der aktuellen Shell-Programmdatei abzurufen, kann man verwenden
Einige mögliche Ausgaben sind:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh
quelle