Ceci est une ancienne révision du document !
Le shell ou l'interpréteur de commandes est un programme spécialisé dont le rôle est de permettre les interactions avec le système d'exploitation. C'est une interface qui peut être utilisée soit par un opérateur humain soit par un programme. On distingues plusieurs modes de fonctionnement et d'invocation:
Modes de fonctionnement:
Modes d'invocation:
On retrouve au final 4 types de shell:
La documentation du shell bash indique que pour le shell de login, la variable réservée $0 préfixe le nom du script par le caractère “-”
.
# Connexion SSH à un serveur distant pour démarrer un shell de login interactif (IL) ssh user@host.example.com # Affiche la valeur de $0 echo $0 -bash # invocation d'un nouveau shell et affichage de la variable $0 bash -i -s echo $0 bash
Pour qu'un shell soit considéré comme shell de login, il suffit de positionner l'option -l lors de son l'invocation:
# Affiche le PID du shell courant echo PID=$$ PID=5508 # Détermine si le shell courant est un shell de login: shopt login_shell login_shell off # Invoque un nouveau shell avec l'option -l (login_shell) /bin/bash -l -i -c 'echo $0; echo PID=$$; shopt login_shell; pstree -p -s -h $$' /bin/bash PID=37394 login_shell on systemd(1)───systemd(4262)───gnome-terminal-(4965)───bash(4973)───screen(5506)───screen(5507)───bash(5508)───bash(37394)───pstree(37401)