Présentation
Le which
La commande permet aux utilisateurs de rechercher la liste des chemins dans le $PATH
variable d'environnement et affiche le chemin complet de la commande spécifiée en tant qu'argument. La commande fonctionne en localisant le fichier exécutable correspondant à la commande donnée.
Dans ce didacticiel, vous apprendrez à utiliser le which
commande.
Prérequis
- Un système exécutant Linux
- Accès au terminal (Ctrl + Alt + T )
Linux dont la syntaxe de commande et les options
La syntaxe du which
la commande est :
which -a [argument]
Argumentation
Le [argument]
variable spécifie la ou les commandes que vous souhaitez rechercher.
Par exemple, la commande suivante affiche l'emplacement de la commande cat :
which cat
Options
Le which
la commande n'a qu'une seule option, -a
. Il est facultatif et utilisé pour imprimer toutes les correspondances qu'il trouve.
La commande recherche les correspondances de gauche à droite. S'il existe plusieurs correspondances trouvées dans les répertoires répertoriés dans $PATH
, which
n'imprime que le premier. Le -a
l'option indique which
pour imprimer tous les matchs.
Important : Sur de nombreuses distributions Linux, which
exclut les commandes intégrées du shell et n'affiche pas leur emplacement.
Par exemple :
which -a touch
Avoir plusieurs correspondances signifie parfois qu'une correspondance est un lien symbolique vers l'autre. Cependant, il est possible d'avoir deux versions de la même commande à des emplacements différents ou deux commandes différentes utilisant le même nom.
Remarque : Contrairement à de nombreuses autres commandes, which
n'a pas de --help
option. Pour voir la description de la commande et l'aide, exécutez man which
.
État de sortie
Le which
La commande renvoie l'une des valeurs suivantes indiquant son état de sortie :
0
. Tous les arguments ont été trouvés et exécutables.1
. Un ou plusieurs arguments n'existent pas ou ne sont pas exécutables.2
. Une option non valide a été spécifiée.
Linux qui commande des exemples
Les exemples suivants montrent comment le which
commande fonctionne et comment utiliser l'option disponible.
1. Afficher le chemin de n'importe quel fichier exécutable
Pour afficher le chemin de n'importe quelle commande, passez le nom de la commande comme argument après which
.
Par exemple :
which tr
La sortie montre le chemin d'accès au fichier exécutable de la commande tr, situé dans /usr/bin/tr .
2. Afficher plusieurs chemins de fichiers exécutables
which
accepte plusieurs arguments et génère le chemin vers chacun dans l'ordre spécifié.
Par exemple :
which nc mount sort
La commande parcourt la liste fournie et affiche les résultats pour la commande nc, la commande mount et la commande sort, en séparant chaque résultat par un caractère de saut de ligne.
3. Répertorier toutes les instances
which
n'affiche que la première correspondance trouvée dans le $PATH
liste de répertoires variables. Utilisez le -a
option pour afficher chaque correspondance pour la commande spécifiée.
Par exemple, la recherche d'instances de la commande less génère deux résultats lors de l'utilisation du -a
choix :
which -a less
Utilisez la commande ls pour vérifier les détails du fichier et déterminer si les deux versions sont des fichiers exécutables. Exécuter :
ls -lh /usr/bin/less
ls -lh /bin/less
La sortie affiche deux versions identiques de la même commande à deux emplacements, toutes deux d'une taille de 176 Ko et toutes deux exécutables.
Remarque : Le /bin Le répertoire contient des exécutables qui peuvent être utilisés par l'administrateur système et tout autre utilisateur, et qui sont nécessaires pour les réparations d'urgence du système. Le /usr/bin répertoire est le répertoire principal des commandes exécutables sur le système.
4. Rechercher des liens symboliques
Utilisation du -a
L'option liste tous les chemins contenant une instance du programme spécifié. Alors que plusieurs versions du même programme peuvent exister sur un système, parfois l'une des instances n'est qu'un lien symbolique et non un fichier binaire.
Par exemple, l'exécution de la commande suivante génère deux instances de la commande atq :
which -a atq
Encore une fois, utilisez le ls
commande pour vérifier les détails des deux fichiers. Exécuter :
ls -lh /usr/bin/atq
ls -lh /bin/atq
La sortie montre que les deux fichiers sont des liens symboliques (->
) seulement 2 octets de large et pointant vers la commande at.
5. Exclure les éléments intégrés du shell
Comme mentionné précédemment, le which
La commande exclut les commandes intégrées du shell de sa sortie.
Par exemple, demander l'emplacement des commandes read et man ne renvoie que l'emplacement du man
fichier exécutable de commande, en tant que read
est une commande shell bash.
which read man
Conclusion
Ce tutoriel a montré comment utiliser le which
commande sous Linux pour trouver le chemin vers le binaire exécutable d'une commande. Consultez et téléchargez notre aide-mémoire sur les commandes Linux pour d'autres commandes Linux essentielles et des exemples d'utilisation.