Which Command In Linux

Table des matières

Linux vous donne un contrôle complet sur la façon dont vous travaillez, de la personnalisation à la gestion du système. Un outil pratique qui peut rendre votre expérience plus fluide est le which commande. Il vous aide à trouver rapidement l'emplacement exact d'un fichier exécutable en recherchant dans les répertoires répertoriés dans votre $PATH variable. Dans ce guide, nous expliquerons comment fonctionne la commande, explorer sa syntaxe et ses options et passera par des exemples pratiques pour vous aider à l'utiliser efficacement.

Comprendre la syntaxe de commande et le travail

Le which La commande dans Linux aide à trouver le fichier exécutable pour une commande donnée. Il recherche des répertoires répertoriés dans la variable d'environnement de chemin. Cette commande affiche quel fichier s'exécute lorsque vous exécutez une commande. Il renvoie la sortie suivante:

  • 0 Lorsque toutes les commandes spécifiées sont trouvées et exécutables.
  • 1 Si une ou plusieurs commandes sont manquantes ou non exécutables.
  • 2 Si une option non valide est utilisée.

La syntaxe générale pour utiliser quelle commande dans Linux est:

which (file1) (file2) ...

Remplacer (file1) et (file2) avec les noms des exécutables que vous souhaitez trouver.

Pourquoi devrions-nous utiliser quelle commande

Il existe de nombreuses raisons d'utiliser la commande qui dans Linux. Par exemple, cela nous aide à déterminer si une commande est un exécutable réel, un alias ou un lien symbolique. De plus, il affiche l'emplacement exact d'un fichier exécutable. Il nous permet également d'identifier les commandes manquantes ou conflictuelles dans la variable de chemin. De plus, l'utilisation de quelle commande garantit que la version correcte s'exécute lorsque plusieurs versions existent.

Comment utiliser quelle commande dans Linux

Explorons quelques exemples pour voir comment fonctionne quelle commande dans les cas d'utilisation réels:

Exemple 1: Localisez le chemin d'un exécutable

Nous pouvons utiliser la commande quelle commande pour déterminer où le fichier exécutable d'une commande est stocké:

which grep

Il renvoie le chemin complet, tel que «/ usr / bin / grep», indiquant l'emplacement exact de l'exécutable.

Exemple 2: Trouver des chemins de plusieurs commandes

Nous pouvons spécifier plusieurs commandes simultanément avec la commande qui vérifier leurs chemins respectifs:

which awk sed cat touch

Cette commande récupère les chemins de awk, sed et cat Commandes, respectivement:

Trouver le chemin de plusieurs commandes

Exemple 3: afficher toutes les instances d'une commande

Par défaut, which Renvoie uniquement le premier match trouvé dans le chemin. Cependant, nous pouvons exécuter la commande qui avec le -a Option pour trouver toutes les occurrences d'une commande:

which -a cat

Cette commande répertorie tous les emplacements où cat se trouve dans le chemin:

Montrer toutes les instances

Vous pouvez vérifier leurs détails, en exécutant la commande LS avec le -lh option. Cela montre si les deux fichiers sont de vrais exécutables ou des doublons à différents emplacements:

ls -lh /usr/bin/cat && ls -lh /bin/cat
Vérifiez les exécutables

La capture d'écran ci-dessus affiche deux commandes identiques à différents emplacements, à la fois de 35 Ko et exécutable.

Exemple 4: Vérifiez si une commande existe

Nous pouvons utiliser la commande quelle commande pour vérifier l'existence d'une commande spécifique:

which cats
Commandes manquantes

Si la commande n'existe pas, il n'y a pas de sortie, comme illustré dans la capture d'écran ci-dessus, et l'état de sortie est non nul.

Exemple 5: Identifier les liens symboliques

Un système peut avoir plusieurs versions du même programme, mais certaines instances peuvent être des liens symboliques au lieu de fichiers binaires réels. Pour trouver les liens symboliques, exécutez simplement la commande avec qui avec -a option:

which -a crontab
Vérifiez les liens symboliques

Ensuite, inspectez les détails du fichier avec le ls commande:

ls -lh /usr/bin/crontab && ls -lh /bin/crontab
Inspecter les détails du fichier

Si la sortie comprend ->cela signifie que le fichier est un lien symbolique pointant vers un autre emplacement.

Exemple 6: Exclure les commandes intégrées Shell

Le which La commande affiche uniquement les exécutables externes et n'affiche pas les commandes intégrées de shell. Il nous aide à identifier où un programme est installé sur le système. Par exemple, dans la commande suivante qui ne renvoie qu'un chemin pour LS puisque la lecture est une commande shell intégrée:

which ls read
Exclure les commandes de coquille intégrée

Quelles limites de commande

Le which La commande a plusieurs limitations qui le rendent moins fiable dans certaines situations. Par exemple, il affiche uniquement des exécutables externes et ne détecte pas les commandes intégrées comme cd ou read. De plus, il ne peut pas faire la différence entre les liens binaires et symboliques. La commande recherche strictement les répertoires répertoriés dans le $PATH variable, ce qui signifie qu'il ne peut pas trouver de programmes stockés ailleurs. De plus, il n'a pas fourni de détails tels que le type de fichier, les autorisations ou la version. De plus, si une commande n'existe pas, elle n'affiche pas de message d'erreur mais ne renvoie rien.

Pour surmonter ces limitations, vous pouvez opter pour une commande alternative comme où typeou ls.

Où vs. Quelle commande

Le where et which Les commandes aident à localiser les fichiers mais servent des objectifs différents. Le where La commande est principalement utilisée dans Windows et certains systèmes de type Unix. Il trouve à la fois des fichiers et des répertoires et répertorie toutes les correspondances du chemin du système.

Le which La commande est spécifique aux systèmes de type UNIX. Il recherche uniquement les fichiers exécutables dans les répertoires répertoriés dans le $PATH variable. Par défaut, il renvoie le premier match, mais en utilisant which -a répertorie toutes les correspondances.

Par exemple, courir where node La commande sur Windows affiche tous les emplacements où le nœud est trouvé. Sur Linux, which gcc Renvoie le premier chemin où se trouve le compilateur GCC.

Pendant que le which Command offre plusieurs fonctionnalités, il manque encore certaines capacités. Cependant, cela peut être surmonté en utilisant une commande alternative, comme discuté précédemment. De plus, le which La commande détecte uniquement les fichiers exécutables dans votre $PATH. Si votre script ou votre programme n'est pas trouvé, il peut manquer des autorisations d'exécution. Par conséquent, assurez-vous que votre script est dans un répertoire répertorié dans $PATH et a exécuté des autorisations.

Partager :
Facebook
Twitter
LinkedIn

Gentil Geek

Passionné d'informatique depuis ma plus tendre enfance aujourd'hui j'en ai fait mon métier. A vos côtés pour simplifier votre utilisation de l'informatique et vous permettre de gagner en compétences.

Poster le commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *