Vous pouvez utiliser le shell Linux tous les jours, mais la manière dont vous l'utilisez détermine en grande partie son comportement. Vous avez peut-être entendu parler de la différence entre un shell de connexion et un shell sans connexion. Et même si cela ne semble pas évident au début, il existe plusieurs différences entre les deux types de coques.
Voici tout ce que vous devez savoir sur les shells de connexion sous Linux.
Qu'est-ce qu'un shell de connexion ?
Un shell de connexion est exactement cela: un shell qui se lance lorsque vous vous connectez directement à la machine Linux. Lorsque vous vous connectez à votre système à partir d'un console virtuelle ou via SSH, le shell qui démarre est un shell de connexion.
En revanche, si vous démarrez une fenêtre de terminal, cette session shell n'est généralement pas un shell de connexion. Il en va de même lorsque vous lancez un sous-shell en tapant le nom du shell sur la ligne de commande. Ce shell est juste un shell interactif.
La principale différence entre les deux réside dans le comportement du shell. Le shell ne lit souvent que certains fichiers au démarrage. Bash lira le
/etc/profile, puis le .bash_profile, .bash_login, et fichiers .profile dans votre répertoire personnel uniquement s'il est appelé en tant que shell de connexion.Comment savoir si vous utilisez un shell de connexion
Il est facile de voir si vous exécutez un shell de connexion ou non. Si vous avez lancé votre shell à partir de l'application de terminal de bureau, vous ne l'êtes probablement pas, sauf si vous êtes dans un autre environnement de terminal comme WSL ou le terminal macOS.
Vous pouvez vérifier si vous exécutez un shell de connexion avec cette commande ;
écho$0
Si vous utilisez un shell de connexion, vous verrez le nom du shell précédé d'un trait d'union (-). Sinon, vous ne verrez que le nom du shell.
Configuration de votre shell de connexion sous Linux
Pour définir votre shell de connexion, utilisez la commande chsh. Vous pouvez définir votre shell de connexion sur le chemin absolu de n'importe quel shell répertorié dans /etc/shells.
Pour démarrer n'importe quel shell en tant que shell de connexion, vous pouvez généralement utiliser une option de ligne de commande. Par exemple, pour démarrer Bash en tant que shell de connexion :
frapper --connexion
Si vous utilisez un bureau Linux, vous pouvez souvent spécifier quelle commande est exécutée lorsque vous ouvrez une fenêtre de terminal. Si vous voulez que votre shell s'exécute en tant que shell de connexion, vous pouvez y mettre cette option.
Vous connaissez maintenant les shells de connexion
Vous devez maintenant comprendre ce que sont les shells de connexion. Le lancement de votre shell, soit directement depuis la console, soit depuis une fenêtre de terminal, déterminera son comportement.
Si vous débutez avec Linux, vous vous demandez peut-être quel shell est le meilleur. Vous pouvez vous en tenir au Bash par défaut ou explorer les fonctionnalités spéciales offertes par des shells alternatifs comme Fish ou Zsh.