Comment trouver quel shell j'utilise sous Linux
Question : je passe souvent d'un shell à l'autre en ligne de commande. Existe-t-il un moyen rapide et facile de savoir dans quel shell je me trouve actuellement ? Aussi, comment puis-je connaître la version du shell?
Découvrez dans quel shell vous vous trouvez
Il existe différentes façons de savoir dans quel shell vous vous trouvez actuellement. Le moyen le plus simple de le savoir consiste à utiliser des paramètres de shell spéciaux.
D'une part, un paramètre spécial nommé $$
indique le PID de l'instance de shell actuelle que vous exécutez. Ce paramètre est en lecture seule et ne peut pas être modifié. Ainsi, la commande suivante vous montrera également le nom du shell que vous exécutez :
$ ps -p $$
PID TTY TIME CMD
21666 pts/4 00:00:00 bash
La commande ci-dessus fonctionne sur tous les shells disponibles.
Si vous n'utilisez pas csh
, une autre façon de trouver le shell actuel consiste à utiliser un paramètre shell spécial appelé $0
, qui indique le nom du shell ou du script shell en cours d'exécution. C'est l'un des paramètres spéciaux de Bash, mais également disponible dans d'autres shells, tels que sh
, zsh
, tcsh
ou dash
. L'utilisation de la commande echo
pour imprimer sa valeur vous indiquera le nom du shell dans lequel vous vous trouvez actuellement.
$ echo $0
bash
Ne soyez pas confondu avec une variable d'environnement distincte appelée $SHELL
, qui est définie sur le chemin complet de votre shell default. En tant que telle, cette variable ne pointe pas nécessairement vers le shell actuel que vous utilisez. Par exemple, $SHELL
reste le même même si vous invoquez un shell différent dans un terminal.
$ echo $SHELL
/bin/shell

En bref, pour connaître le shell actuel, vous devez utiliser soit $$
soit $0
, mais pas $SHELL
.
Découvrez la version du shell que vous utilisez
Une fois que vous savez dans quel shell vous vous trouvez, vous voudrez peut-être savoir de quelle version il s'agit. Pour cela, tapez le nom de votre shell suivi de --version
sur la ligne de commande. Par exemple:
Pour bash
:
$ bash --version
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Pour zsh
:
$ zsh --version
zsh 5.0.7 (x86_64-pc-linux-gnu)
Pour tcsh
:
$ tcsh --version
tcsh 6.18.01 (Astron) 2012-02-14 (x86_64-unknown-linux) options wide,nls,dl,al,kan,rh,nd,color,filec
Pour certains shells, vous pouvez également utiliser des variables spécifiques au shell (par exemple, $BASH_VERSION
ou $ZSH_VERSION
).
$ echo $BASH_VERSION
4.3.8(1)-release