Localisation des commandes 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

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") linux/FileandDirectoryManagementGroup -.-> linux/whereis("File/Command Finding") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/TextProcessingGroup -.-> linux/sed("Stream Editing") subgraph Lab Skills linux/ls -.-> lab-271443{{"Localisation des commandes Linux"}} linux/cat -.-> lab-271443{{"Localisation des commandes Linux"}} linux/cd -.-> lab-271443{{"Localisation des commandes Linux"}} linux/pwd -.-> lab-271443{{"Localisation des commandes Linux"}} linux/find -.-> lab-271443{{"Localisation des commandes Linux"}} linux/which -.-> lab-271443{{"Localisation des commandes Linux"}} linux/whereis -.-> lab-271443{{"Localisation des commandes Linux"}} linux/grep -.-> lab-271443{{"Localisation des commandes Linux"}} linux/sed -.-> lab-271443{{"Localisation des commandes Linux"}} end

Principes de base 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 cas où une commande n'est pas trouvée

Toutes les commandes que vous essayez de localiser avec which ne seront pas trouvées. Cela peut se produire pour plusieurs raisons :

  1. La commande n'existe pas sur votre système.
  2. La commande existe mais n'est pas dans votre PATH.
  3. 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.

Exploration d'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 :

  • which ne montre que l'emplacement de l'exécutable dans votre PATH.
  • whereis montre 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 :

  1. Vous avez commencé par les bases de l'utilisation de la commande which pour trouver l'emplacement des fichiers exécutables dans votre PATH.
  2. Vous avez découvert comment localiser plusieurs commandes simultanément avec une seule commande which.
  3. 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.
  4. Vous avez appris à propos de la commande whereis comme 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.