Chaque commande Linux suit la même structure. Quand vous tapez ls -l /etc dans un terminal, vous utilisez trois éléments : une commande, une option et un argument. Comprendre cette structure, c’est comprendre toutes les commandes que vous rencontrerez — pas besoin de les apprendre par cœur.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Décomposer n’importe quelle ligne de commande en commande + options + arguments
- Distinguer les options courtes (
-l) des options longues (--long) - Lire un code de retour pour savoir si une commande a réussi ou échoué
- Interpréter les messages d’erreur les plus courants
- Combiner plusieurs options et arguments dans une même commande
La structure de base
Section intitulée « La structure de base »Toute commande Linux suit ce schéma :
commande [options] [arguments]| Élément | Rôle | Exemple |
|---|---|---|
| Commande | Le programme à exécuter | ls, cat, mkdir |
| Options | Modifient le comportement de la commande | -l, --all, -v |
| Arguments | Ce sur quoi la commande agit | /etc, fichier.txt |
Prenons un exemple concret :
ls -la /var/logls→ la commande (lister le contenu d’un répertoire)-la→ deux options combinées :-l(format détaillé) +-a(inclure les fichiers cachés)/var/log→ l’argument (le répertoire à lister)
Options courtes et options longues
Section intitulée « Options courtes et options longues »La plupart des commandes proposent deux formats d’options :
| Format | Syntaxe | Exemple | Quand l’utiliser |
|---|---|---|---|
| Court | - + une lettre | ls -l | Au quotidien, rapide à taper |
| Long | -- + un mot | ls --long | Dans les scripts, plus lisible |
Combiner des options courtes
Section intitulée « Combiner des options courtes »Les options courtes se combinent derrière un seul tiret :
# Ces deux lignes font la même chose :ls -l -a -hls -lahOptions avec valeur
Section intitulée « Options avec valeur »Certaines options attendent une valeur :
# Option courte avec valeurhead -n 5 /var/log/syslog # affiche les 5 premières lignes
# Option longue avec valeurhead --lines=5 /var/log/syslog # identiqueArguments : sur quoi la commande agit
Section intitulée « Arguments : sur quoi la commande agit »L’argument indique la cible de la commande. Selon la commande, il peut s’agir :
- d’un fichier :
cat /etc/hostname - d’un répertoire :
ls /var/log - d’un texte :
echo "Bonjour" - d’un nom :
mkdir projets - de rien (argument par défaut) :
lsseul liste le répertoire courant
Plusieurs arguments sont possibles :
cp fichier1.txt fichier2.txt /tmp/# ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^# argument 1 argument 2 argument 3 (destination)Codes de retour : réussite ou échec
Section intitulée « Codes de retour : réussite ou échec »Après chaque commande, Linux stocke un code de retour (exit code). C’est un nombre qui indique si la commande a réussi ou échoué.
| Code | Signification |
|---|---|
| 0 | Réussite |
| 1 | Erreur générale |
| 2 | Mauvaise utilisation (option invalide, argument manquant) |
| 126 | Permission refusée (le fichier existe mais n’est pas exécutable) |
| 127 | Commande introuvable |
Pour voir le code de retour de la dernière commande :
ls /etcecho $?# 0 → tout s'est bien passé
ls /repertoire-inexistantecho $?# 2 → erreur : le répertoire n'existe pasLire un message d’erreur
Section intitulée « Lire un message d’erreur »Les messages d’erreur suivent un format prévisible :
commande: type d'erreur: détailVoici les messages les plus fréquents et leur signification :
| Message | Signification | Que faire |
|---|---|---|
command not found | La commande n’existe pas ou n’est pas installée | Vérifier le nom, installer le paquet |
No such file or directory | Le chemin est incorrect ou le fichier n’existe pas | Vérifier le chemin avec ls |
Permission denied | Vous n’avez pas les droits | Réessayer avec sudo si légitime |
Is a directory | Vous traitez un dossier comme un fichier | Ajouter -r (récursif) ou corriger la cible |
File exists | Le fichier existe déjà | Choisir un autre nom ou écraser volontairement |
Exemple concret :
$ cta /etc/hostnamebash: cta: command not foundLe shell vous indique que cta n’existe pas. Vous avez fait une faute de frappe — la commande est cat.
$ cat /etc/hostnamcat: /etc/hostnam: No such file or directoryLe fichier /etc/hostnam n’existe pas. Il manque un e : c’est /etc/hostname.
Le séparateur -- : fin des options
Section intitulée « Le séparateur -- : fin des options »Parfois, un argument ressemble à une option. Par exemple, supprimer un fichier nommé -f :
# Erreur : rm interprète -f comme l'option "force"rm -f
# Correct : -- indique la fin des optionsrm -- -fLe double tiret -- dit à la commande : « tout ce qui suit est un argument, pas une option ».
Récapitulatif visuel
Section intitulée « Récapitulatif visuel » ls -l -a /var/log ── ── ── ──────── │ │ │ │ │ │ │ └─ argument : le répertoire cible │ │ └─ option : inclure les fichiers cachés │ └─ option : format détaillé └─ commande : lister le contenuÀ retenir
Section intitulée « À retenir »- Toute commande suit le schéma
commande [options] [arguments]. - Les options courtes (
-l) se combinent (-lah), les longues (--long) sont plus lisibles dans les scripts. - Un code de retour
0= réussite, tout autre nombre = erreur. echo $?affiche le code de retour de la dernière commande.- Les messages d’erreur indiquent toujours la commande, le type d’erreur et la cible — lisez-les de gauche à droite.
- Le séparateur
--permet de passer des arguments qui ressemblent à des options.