Disons que j'ai ouvert un terminal et entré / exécuté des commandes de shell.
Mais je n'ai pas invoqué explicitement Bash ni aucun autre shell.
Quel shell a été utilisé par défaut?
Disons que j'ai ouvert un terminal et entré / exécuté des commandes de shell.
Mais je n'ai pas invoqué explicitement Bash ni aucun autre shell.
Quel shell a été utilisé par défaut?
Celui spécifié sur votre ligne dans /etc/passwd
(il s’agit d’une ligne :
séparée et le shell est le dernier).
Par exemple le mien:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
Ici, c’est /bin/bash
(la valeur par défaut d’Ubuntu)
Vous pouvez également utiliser chsh
:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Cela me dit que mon shell est /bin/bash
et me permet de le changer.
Enfin, echo $SHELL
fera de même:
$ echo $SHELL
/bin/bash
GNU Bash est le shell utilisé par défaut dans les terminaux sur Ubuntu. Cependant, lorsque les scripts sont exécutés au démarrage du système, un tiret est utilisé, car il s’agit de / bin / sh.
Ceci est défini dans la variable environnementale $ SHELL. Vous pouvez vérifier en tapant echo $SHELL
dans le terminal.
en tapant ce qui suit affichera le shell avec lequel le terminal a ouvert:
echo $SHELL
Cependant, pour connaître le shell dans lequel vous vous trouvez (vous l'avez peut-être changé), tapez
ps -p $$
par exemple. vous verrez que le shell est bash dans l'exemple de sortie
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Une autre méthode consiste à utiliser
echo $0
cela renverra simplement le nom du shell actuel.
Pour obtenir le chemin du fichier de l'exécutable du shell actuel, vous pouvez utiliser
readlink -f /proc/$$/exe
Certaines sorties possibles sont:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh
Lire d'autres questions sur les étiquettes command-line