Comment vérifier si un shell spécifique est utilisé sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à déterminer quel shell est actuellement utilisé dans un environnement Linux. Vous explorerez différentes méthodes pour vérifier le shell actif, notamment en utilisant la commande echo $SHELL pour afficher le shell de la session actuelle, en examinant le fichier /etc/passwd pour vérifier le shell de connexion par défaut d'un utilisateur, et en inspectant les processus en cours d'exécution avec la commande ps pour identifier le processus du shell.

En effectuant ces étapes, vous acquerrez des compétences pratiques pour identifier et comprendre l'environnement du shell, ce qui est essentiel pour une interaction efficace en ligne de commande et la création de scripts sous Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/echo -.-> lab-558763{{"Comment vérifier si un shell spécifique est utilisé sous Linux"}} linux/cat -.-> lab-558763{{"Comment vérifier si un shell spécifique est utilisé sous Linux"}} linux/grep -.-> lab-558763{{"Comment vérifier si un shell spécifique est utilisé sous Linux"}} linux/ps -.-> lab-558763{{"Comment vérifier si un shell spécifique est utilisé sous Linux"}} linux/env -.-> lab-558763{{"Comment vérifier si un shell spécifique est utilisé sous Linux"}} end

Vérifier le shell actuel avec echo $SHELL

Dans cette étape, vous apprendrez à identifier le shell que vous utilisez actuellement dans le terminal. Le shell est l'interpréteur de ligne de commande qui traite vos commandes. Différents shells ont des fonctionnalités et une syntaxe différentes, bien que de nombreuses commandes de base fonctionnent de la même manière pour tous.

L'environnement LabEx utilise zsh comme shell par défaut. Vous pouvez le vérifier en vérifiant la valeur de la variable d'environnement $SHELL. Les variables d'environnement sont des valeurs dynamiques qui influencent le comportement des processus sur l'ordinateur. La variable $SHELL stocke spécifiquement le chemin vers le shell par défaut de l'utilisateur.

Pour afficher la valeur de la variable $SHELL, utilisez la commande echo suivie du nom de la variable préfixé d'un signe dollar ($).

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

echo $SHELL

Vous devriez voir une sortie similaire à celle-ci, indiquant que votre shell actuel est zsh :

/usr/bin/zsh

Cela confirme que le terminal exécute actuellement le shell zsh, qui est la configuration par défaut de votre environnement LabEx. Comprendre quel shell vous utilisez est important au fur et à mesure de votre progression dans le monde Linux, car certaines fonctionnalités avancées ou certains scripts peuvent être spécifiques à un shell particulier.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le shell de l'utilisateur dans /etc/passwd

Dans l'étape précédente, vous avez utilisé echo $SHELL pour voir le shell que vous utilisez actuellement. C'est le shell qui a été lancé pour votre session de terminal actuelle. Cependant, le système conserve également un enregistrement du shell de connexion par défaut de chaque utilisateur dans un fichier de configuration.

Ce fichier de configuration est /etc/passwd. Il contient des informations sur tous les utilisateurs du système. Chaque ligne dans /etc/passwd représente un compte utilisateur et est divisée en champs séparés par des deux-points (:). Le dernier champ de chaque ligne spécifie le shell de connexion par défaut de l'utilisateur.

Pour afficher le contenu de /etc/passwd, vous pouvez utiliser la commande cat. Comme nous ne sommes intéressés que par la ligne de l'utilisateur labex, nous pouvons combiner cat avec la commande grep pour filtrer la sortie. grep est un outil puissant pour rechercher des motifs de texte dans des fichiers.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

cat /etc/passwd | grep labex

Décortiquons cette commande :

  • cat /etc/passwd : Cette commande lit le contenu du fichier /etc/passwd et l'imprime sur la sortie standard.
  • | : C'est un tuyau (pipe). Il prend la sortie de la commande de gauche (cat /etc/passwd) et l'envoie en tant qu'entrée à la commande de droite (grep labex).
  • grep labex : Cette commande recherche dans l'entrée qu'elle reçoit les lignes contenant la chaîne "labex" et imprime ces lignes.

Vous devriez voir une seule ligne de sortie similaire à celle-ci :

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Cette ligne contient plusieurs informations sur l'utilisateur labex, séparées par des deux-points. Les champs sont (dans l'ordre) :

  1. Nom d'utilisateur (labex)
  2. Mot de passe (représenté par x, le hachage réel du mot de passe est stocké ailleurs pour des raisons de sécurité)
  3. Identifiant utilisateur (UID) (5000)
  4. Identifiant de groupe (GID) (5000)
  5. Informations utilisateur (champ GECOS) (LabEx user,,,)
  6. Répertoire personnel (/home/labex)
  7. Shell de connexion par défaut (/usr/bin/zsh)

Le dernier champ, /usr/bin/zsh, confirme que le shell de connexion par défaut de l'utilisateur labex est bien zsh, ce qui correspond à ce que vous avez vu avec echo $SHELL.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter le processus du shell avec ps

Dans les étapes précédentes, vous avez identifié votre shell actuel en utilisant echo $SHELL et vérifié votre shell de connexion par défaut dans /etc/passwd. Maintenant, examinons les processus en cours d'exécution sur le système pour voir le processus du shell lui-même.

Sous Linux, chaque programme en cours d'exécution est un processus. La commande ps (abréviation de "process status") est utilisée pour afficher des informations sur les processus en cours d'exécution.

Pour voir les processus associés à votre session de terminal actuelle, vous pouvez utiliser la commande ps avec l'option -f, qui fournit une liste au format complet.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

ps -f

Vous devriez voir une sortie similaire à celle-ci :

UID          PID    PPID  C STIME TTY          TIME CMD
labex       XXXX    XXXX  0 HH:MM pts/0    00:00:00 zsh
labex       YYYY    XXXX  0 HH:MM pts/0    00:00:00 ps -f

Examinons les colonnes :

  • UID : L'identifiant utilisateur du propriétaire du processus (labex).
  • PID : L'identifiant de processus, un nombre unique pour chaque processus.
  • PPID : L'identifiant du processus parent. C'est le PID du processus qui a lancé celui-ci.
  • C : Utilisation du CPU.
  • STIME : L'heure à laquelle le processus a démarré.
  • TTY : Le terminal associé au processus (pts/0 indique un pseudo-terminal, comme celui que vous utilisez).
  • TIME : Le temps CPU cumulé utilisé par le processus.
  • CMD : La commande qui a lancé le processus.

Dans la sortie, vous devriez voir une ligne avec CMD égal à zsh. Cette ligne représente le processus du shell zsh qui exécute votre session de terminal actuelle. Vous verrez également une ligne pour la commande ps -f elle-même, car elle est également un processus en cours d'exécution lorsque vous l'exécutez.

Cette étape vous montre comment utiliser ps pour inspecter les processus en cours d'exécution et confirmer que votre shell est bien exécuté en tant que processus sur le système.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier quel shell vous utilisez actuellement sous Linux. Vous avez d'abord utilisé la commande echo $SHELL pour afficher le chemin du shell en cours d'exécution dans votre session de terminal actuelle. Cela a montré que l'environnement LabEx utilise par défaut zsh.

Vous avez ensuite exploré le fichier /etc/passwd, qui stocke des informations sur les utilisateurs du système, y compris leur shell de connexion par défaut. En examinant le dernier champ de votre entrée utilisateur dans ce fichier, vous pouvez vérifier le shell assigné à votre compte lors de la connexion. Ces méthodes offrent différentes façons de déterminer le shell utilisé, que ce soit pour la session actuelle ou comme shell par défaut de l'utilisateur.