Catégorie : Comprendre     Tags :      

    Retrouvez cet article dans : Linux Pratique Hors série 8

    De manière générale, on peut dire qu'une commande, c'est un programme, qui va être exécuté dès lors que vous l'appelez. Mais la particularité de ces programmes, c'est qu'ils nécessitent d'être décodés par un interpréteur de commandes particulier : le shell (voir page 40), qui n'est lui-même qu'un programme servant d'interface entre vous et votre système. Quand vous ouvrez une console, votre shell est inactif. Mais quand vous tapez une commande, le shell va réagir en cherchant dans le système s'il est possible d'exécuter ce que vous lui avez demandé.

    Cela dit, il faut préciser qu'il existe différents types de commandes. On distinguera :

    • les commandes internes au shell : ce ne sont pas vraiment des programmes, mais des fonctions intégrées au kernel. Le shell les exécute directement, sans avoir à chercher dans le système les instruments de leur exécution. Un exemple : la commande cd, qui permet de changer de répertoire ;
    •  les programmes binaires exécutables : ce sont tous les programmes que contient votre système, dont le chemin d'accès est précisé grâce à la variable PATH. Le shell les trouvera dans les répertoires /usr/bin, /bin et dans les différents /home/nom_utilisateur/bin ;
    •  les scripts shell, dont il faut cette fois préciser au shell le chemin d'accès ;
    •  les alias, commandes « raccourcies » définies par les utilisateurs.

    Une fois la commande tapée, le shell va agir de manière très ordonnée pour l'interpréter. Il regarde d'abord s'il s'agit d'une commande interne ; si c'est le cas, il l'exécute, sinon il passe à l'étape suivante, c'est-à-dire la recherche du chemin d'accès à la commande dans les différents répertoires. Lorsqu'il trouve la commande, il l'exécute. Et s'il ne la trouve pas ? Alors, dans ce cas, il renvoie un message d'erreur :

    ~$ cot
    bash: cot: command not found
    ~$

    Avec l'habitude, on se rend compte que le message d'erreur Command not found est assez courant. Et pour cause, il arrive très souvent que l'on orthographie mal le nom de la commande. L'exactitude s'impose donc. Elle ne se limite d'ailleurs pas à l'écriture du nom de la commande : la casse (majuscules/minuscules) et l'ordre des différents paramètres de la commande entrent en ligne de compte. Ainsi, on veillera :

    •  à ce que le nom de la commande soit correctement orthographié ;
    •  aux différentes options possibles. On peut modifier le résultat de presque toutes les commandes grâce aux options dont elles disposent. Une option est précisée immédiatement après le nom de la commande et précédée d'un tiret (-). Par exemple, la commande ls va avoir pour résultat de vous lister le contenu d'un répertoire ; mais ls -l va en plus vous donner, pour chaque contenu, un certain nombre de précisions (permissions, propriétaire, taille...). On notera aussi que si l'on souhaite activer plusieurs options, on peut souvent les regrouper derrière le même tiret : ls -la va avoir le même résultat que ls -l -a.
    •  aux arguments. Certaines commandes nécessitent qu'on leur précise ce qu'elles doivent faire et avec quoi : c'est ce qu'on appelle les arguments, dont la mention vient après celle du nom de la commande et de ses éventuelles options. Par exemple, pour copier un fichier dans un répertoire, il faut bien évidemment préciser quel fichier on veut copier, et où le mettre : cp mon_fichier.txt /Mon-répertoire-de-destination. Ça a l'air simple comme ça, mais ça ne l'est pas toujours ; notamment l'ordre des arguments est important : cp /Mon-répertoire-de-destination mon_fichier.txt ne vous apportera qu'un message d'erreur...

    Pour connaître la syntaxe d'une commande, le mieux est encore de taper un petit man nom_de_la_commande, où tout vous sera précisé !

    Retrouvez cet article dans : Linux Pratique Hors série 8

    Posté par (La rédaction) | Signature : Lucie Robin | Article paru dans

    Laissez une réponse

    Vous devez avoir ouvert une session pour écrire un commentaire.


    • Il y a actuellement

    • 627 articles/billets en ligne.