Introduction
Le système d'exploitation Linux est livré avec une multitude de commandes qui aident les utilisateurs à effectuer diverses tâches. Lorsque vous travaillez avec Linux, il est important de savoir non seulement comment utiliser ces commandes, mais aussi où elles sont situées dans le système. Cette connaissance peut être cruciale pour la résolution de problèmes, la configuration du système et la compréhension de la façon dont Linux organise les fichiers exécutables.
Dans ce laboratoire (LabEx), vous apprendrez à localiser les commandes dans Linux en utilisant la commande which. Cet outil permet d'identifier l'emplacement exact des fichiers exécutables qui sont invoqués lorsque vous exécutez une commande dans le terminal. Vous explorerez comment utiliser which pour des commandes individuelles, des commandes multiples et comprendrez ce que cela signifie lorsqu'une commande ne peut pas être localisée.
À la fin de ce laboratoire (LabEx), vous aurez une bonne compréhension de la localisation des commandes dans Linux, ce qui est une compétence fondamentale pour tout utilisateur ou administrateur Linux.
Les bases de la localisation des commandes avec which
Sous Linux, lorsque vous tapez une commande dans le terminal, le système recherche cette commande dans les répertoires répertoriés dans votre variable d'environnement PATH. La commande which vous aide à localiser exactement où est stocké un programme exécutable.
Commençons par nous déplacer dans le répertoire de notre projet :
cd ~/project
Maintenant, utilisons la commande which pour trouver l'emplacement d'une commande courante comme ls, qui est utilisée pour lister le contenu d'un répertoire :
which ls
Lorsque vous exécutez cette commande, vous devriez voir une sortie comme celle-ci :
/usr/bin/ls
Cette sortie vous indique que l'exécutable de la commande ls est situé à /usr/bin/ls. Cela signifie que lorsque vous tapez ls dans votre terminal, le système exécute le fichier exécutable à cet emplacement.
Comprendre l'emplacement des commandes est utile pour plusieurs raisons :
- Cela vous aide à vérifier que vous utilisez la bonne version d'une commande.
- C'est essentiel lors de la résolution de problèmes liés aux commandes.
- C'est utile lors de l'écriture de scripts shell qui nécessitent des chemins absolus.
Essayons un autre exemple avec la commande pwd, qui affiche votre répertoire de travail actuel :
which pwd
Vous devriez voir une sortie similaire à celle-ci :
/usr/bin/pwd
La commande which ne trouve que les programmes exécutables qui se trouvent dans votre PATH. Elle ne localisera pas les commandes intégrées au shell (comme cd) ni les alias que vous avez éventuellement configurés.
Localisation de plusieurs commandes
La commande which peut localiser plusieurs exécutables en une seule commande. Cela est utile lorsque vous souhaitez vérifier les emplacements de plusieurs commandes à la fois, ce qui vous évite de taper plusieurs commandes.
Essayons de trouver les emplacements de plusieurs commandes à la fois :
which ls pwd cat
Cela affichera les chemins de chacune de ces commandes, par exemple :
/usr/bin/ls
/usr/bin/pwd
/usr/bin/cat
Chaque ligne montre le chemin absolu vers l'exécutable de la commande correspondante.
Si vous essayez de localiser une commande intégrée au shell ou une commande qui n'existe pas, which peut ne renvoyer aucun résultat pour cette commande spécifique. Par exemple :
which cd
Vous risquez de ne voir aucune sortie car cd est une commande intégrée au shell, pas un fichier exécutable dans votre PATH.
Essayons avec un mélange d'autres commandes courantes :
which find grep sed
Vous devriez voir une sortie montrant les chemins de ces utilitaires courants de traitement de texte :
/usr/bin/find
/usr/bin/grep
/usr/bin/sed
Cela montre comment vous pouvez vérifier efficacement plusieurs commandes à la fois en utilisant la commande which.
Comprendre les scénarios de commande introuvable
Toutes les commandes que vous essayez de localiser avec which ne seront pas trouvées. Cela peut se produire pour plusieurs raisons :
- La commande n'existe pas sur votre système.
- La commande existe mais n'est pas dans votre PATH.
- La commande est une commande intégrée au shell ou un alias.
Explorons ces cas.
Tout d'abord, essayons de localiser une commande qui n'existe probablement pas sur votre système :
which nonexistentcommand
Vous devriez ne voir aucune sortie ou un message d'erreur indiquant que la commande n'a pas été trouvée :
which: no nonexistentcommand in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
Maintenant, vérifions une commande intégrée au shell :
which cd
Comme mentionné précédemment, vous risquez de ne voir aucune sortie car cd est une commande intégrée au shell, pas un fichier exécutable.
Pour vérifier si une commande est une commande intégrée au shell, vous pouvez utiliser la commande type :
type cd
Vous devriez voir une sortie comme celle-ci :
cd is a shell builtin
Essayons un autre exemple avec la commande alias, qui est également une commande intégrée au shell :
type alias
La sortie devrait confirmer que alias est une commande intégrée au shell :
alias is a shell builtin
Comprendre ces cas est important lors de la résolution de problèmes liés aux commandes ou lorsque vous travaillez dans différents environnements Linux où les commandes peuvent être installées dans des emplacements non standard.
Explorer les alternatives avec whereis
Alors que which est utile pour trouver des exécutables dans votre PATH, Linux propose d'autres commandes pour localiser des fichiers. Une de ces commandes est whereis, qui peut trouver les fichiers binaires, sources et de pages de manuel pour une commande.
Utilisons whereis pour obtenir plus d'informations sur la commande ls :
whereis ls
Vous devriez voir une sortie similaire à :
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
Cette sortie vous indique :
- L'emplacement de l'exécutable
ls:/usr/bin/ls - L'emplacement de la page de manuel pour
ls:/usr/share/man/man1/ls.1.gz
Essayons un autre exemple avec la commande grep :
whereis grep
Vous pourriez voir une sortie comme :
grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz
La commande whereis est particulièrement utile lorsque vous avez besoin de plus que simplement l'emplacement de l'exécutable. Par exemple, lorsque vous souhaitez lire la documentation ou trouver des fichiers sources.
Pour résumer la différence entre which et whereis :
whichne montre que l'emplacement de l'exécutable dans votre PATH.whereismontre les emplacements de l'exécutable, des fichiers sources et des pages de manuel.
Les deux commandes sont des outils précieux pour localiser des commandes sous Linux, chacun ayant des objectifs légèrement différents.
Résumé
Dans ce laboratoire, vous avez appris des compétences essentielles pour localiser des commandes dans le système d'exploitation Linux :
- Vous avez commencé par les bases de l'utilisation de la commande
whichpour trouver l'emplacement des fichiers exécutables dans votre PATH. - Vous avez découvert comment localiser plusieurs commandes simultanément avec une seule commande
which. - Vous avez exploré ce qui se passe lorsque les commandes ne sont pas trouvées et appris à distinguer les fichiers exécutables des commandes intégrées au shell.
- Vous avez appris à propos de la commande
whereiscomme alternative qui fournit des informations plus complètes sur les emplacements des commandes.
Ces compétences constituent une partie fondamentale des connaissances du ligne de commande Linux et vous aideront à :
- Résoudre les problèmes liés aux commandes
- Comprendre comment le système Linux organise les exécutables
- Écrire des scripts shell plus efficaces
- Naviguer dans le système de fichiers Linux avec plus de confiance
La localisation des commandes est un aspect petit mais important de l'administration et de l'utilisation du système Linux. Au fur et à mesure que vous continuerez à travailler avec Linux, ces compétences deviendront naturelles et serviront de bases pour des opérations plus avancées.



