Identifier la nature d’une commande Linux avec « type »
Lorsque vous saisissez une instruction dans le terminal de votre système Linux, il est rare que l’on s’interroge sur les mécanismes qui sous-tendent l’exécution de cette commande. On tape, on obtient un résultat, et on poursuit son travail. Pourtant, comprendre comment ces commandes sont traitées peut enrichir notre connaissance du fonctionnement du système d’exploitation.
Cette compréhension nous permet de mieux saisir l’architecture d’un système d’exploitation basé sur Linux ou un autre Unix. Jeter un coup d’œil sous le capot peut nous rendre plus avertis.
Les instructions que nous utilisons en ligne de commande se répartissent en plusieurs catégories :
- Alias: Une commande définie par l’utilisateur (ou le système) qui enclenche l’exécution d’une séquence de commandes, souvent plus longue ou complexe.
- Fichier disque: Un fichier exécutable binaire, tel que
/usr/bin/top
. - Fonction Shell: Une fonction créée par l’utilisateur (ou le système) utilisable directement dans le terminal ou intégrée dans des scripts.
- Commande intégrée: Une commande exécutée directement par le shell, comme
pwd
. - Mot réservé: Un terme dédié du shell, comme
if
ouelif
, parfois qualifiés de mots-clés.
La commande type
identifie la catégorie à laquelle appartient une commande donnée. Voici un bref tutoriel pour comprendre son interprétation.
Utilisation de la commande « type »
Examinons quelques exemples pour illustrer chaque type de commande :
type date
La commande date
est un fichier exécutable.
type ls
La commande ls
est un alias, englobant la commande ls
avec l’option --color=auto
par défaut.
type lowdown
La commande lowdown
est une fonction personnalisée, configurée sur le système utilisé pour cet article. Elle fournit un aperçu rapide de certaines ressources système et combine whoami
, w
, free
et df
.
type pwd
La commande pwd
est une commande intégrée du shell Bash.
type elif
La commande elif
est un mot réservé du shell Bash.
Identifier plusieurs commandes
Vous pouvez utiliser type
pour identifier plusieurs commandes en une seule fois:
type date top ls
L’option « -t » (Type)
L’option -t
de type permet une réponse plus concise. Elle limite la sortie à un seul mot, indiquant la nature de la commande.
type -t date
type -t pwd
type -t lowdown
L’option « -a » (Tout)
L’option -a
affiche tous les emplacements où la commande est définie. Elle est particulièrement utile pour distinguer les alias et les commandes sous-jacentes, et ne fonctionne pas avec -p
.
Par exemple, si un alias a le même nom que la commande qu’il remplace, on peut visualiser les informations relatives à l’alias ainsi qu’à la commande elle-même.
type -a ls
L’option « -f » (Fonction Désactivée)
L’option -f
empêche type
de rechercher des fonctions définies par l’utilisateur ou le système. Elle signale qu’une commande est introuvable si elle est définie comme une fonction.
type -f top
type -f lowdown
L’option « -P » (Chemin)
Avec l’option -P
(P majuscule), type
limite sa recherche aux répertoires listés dans la variable $PATH
.
type -P date chmod adduser
L’option « -p » (Fichier Disque)
L’option -p
(p minuscule) demande à type
de répondre uniquement si la commande est un fichier sur le disque.
type -p mount
type -p ls
type -p -a ls
type
ne donne aucune réponse pour ls
car ls
est un alias.
Cependant, en utilisant -a
, type
va afficher le fichier sous-jacent à l’alias ls
.
Conclusion
Cet aperçu, bien que simple, apporte un éclairage pertinent.
Nous avons tendance à percevoir tout ce que nous saisissons dans le terminal comme une « commande » uniforme. Or, ces commandes sont en fait implémentées de diverses manières au sein du système Linux. L’outil type
nous permet de déterminer précisément la nature de chaque instruction.