1.2 - Syntaxe d'une commande
Une commande Linux suit habituellement cette forme :
commande [options] [arguments]
Exemple :
ls -l --human-readable /var/log
| Élément | Valeur | Rôle |
|---|---|---|
| commande | ls |
programme exécuté |
| option courte | -l |
affichage détaillé |
| option longue | --human-readable |
tailles lisibles |
| argument | /var/log |
dossier traité |
Options courtes et longues
Certaines options courtes peuvent être regroupées :
ls -l -a -h
ls -lah
Toutes les commandes ne suivent pas exactement les mêmes conventions. Il faut consulter --help ou la page de manuel avant de supposer qu'une option existe.
Espaces, guillemets et caractères spéciaux
Un espace sépare les arguments. Un chemin contenant des espaces doit être protégé :
cd "Mes documents"
cp 'rapport final.txt' sauvegarde/
cd Mes\ documents
Les guillemets simples conservent littéralement leur contenu. Les guillemets doubles permettent encore le remplacement des variables :
nom="Alex"
echo 'Bonjour $nom' # affiche : Bonjour $nom
echo "Bonjour $nom" # affiche : Bonjour Alex
Motifs génériques
Le shell développe certains motifs avant d'exécuter la commande :
| Motif | Signification | Exemple |
|---|---|---|
* |
zéro ou plusieurs caractères | ls *.log |
? |
exactement un caractère | ls image?.jpg |
[abc] |
un caractère de la liste | ls fichier[123].txt |
{a,b} |
plusieurs valeurs générées | mkdir -p projet/{docs,scripts} |
Toujours vérifier un motif avant une suppression :
printf '%s\n' *.tmp
# Puis seulement si la liste est correcte :
rm -- *.tmp
Codes de retour
Une commande renvoie un code : 0 signifie généralement réussite, une autre valeur signale une erreur ou un résultat particulier.
ls /etc/hosts
echo "$?"
Enchaînements utiles :
commande1 && commande2 # commande2 seulement si commande1 réussit
commande1 || commande2 # commande2 seulement si commande1 échoue
commande1 ; commande2 # commande2 dans tous les cas
Exemple prudent :
mkdir sauvegarde && cp -a configuration/ sauvegarde/
Commandes internes et exécutables
type cd
type ls
command -v python3
which python3 # courant, mais command -v est plus portable
type indique si le nom correspond à une commande interne, un alias, une fonction ou un exécutable.
No comments to display
No comments to display