Cours Linux / Terminal et shell : lire les commandes et leur aide
Le terminal est l’interface qui reçoit votre saisie et affiche les résultats ; le shell est le programme qui interprète vos commandes et lance les actions demandées. Pour débuter sous Linux, ouvrez un terminal, apprenez à distinguer commande, options et arguments, puis consultez l’aide correspondant au programme réellement utilisé.
Les exemples ci-dessous utilisent Bash, pour Bourne Again Shell. Ils s’exécutent dans le terminal de votre système Linux ; si vous n’en avez pas encore préparé, le cours créer un environnement de pratique dans une machine virtuelle fournit un point de départ.
Distinguer terminal et shell
Une application Terminal présente une zone de texte dans laquelle vous tapez et lisez les résultats. Bash lit la ligne, applique ses règles de syntaxe, puis exécute une fonction interne ou un programme extérieur. Deux applications de terminal différentes peuvent ainsi héberger le même shell.
Le shell ne se limite pas à lancer un exécutable portant le premier nom saisi. Il peut aussi reconnaître un alias, une fonction ou une commande intégrée. Un alias est un raccourci de commande défini dans l’environnement ; une fonction regroupe des instructions du shell. Cela explique pourquoi un nom peut se comporter différemment selon la configuration.
Bash est disponible sur Ubuntu et Rocky Linux, mais votre session peut employer un autre shell. Ne supposez pas qu’une règle spécifique à Bash fonctionne partout. La présentation des fonctions de base de Bash situe ses commandes, paramètres, expansions et redirections. Sur un serveur sans bureau graphique, une console ou une connexion distante peut également donner accès à un shell.
Ouvrir le terminal et saisir une première commande
Dans un environnement graphique Linux, cherchez Terminal dans la liste des applications. Son nom et son raccourci dépendent du bureau installé. Sur une installation serveur, connectez-vous à la console avec votre compte ordinaire.
L’invite de commande, ou prompt, indique que le shell attend une saisie. Elle peut contenir un nom d’utilisateur, une machine, un chemin et un symbole comme $ ou #. Ces symboles appartiennent à l’invite ; ne les recopiez pas devant les commandes de cet article. La forme d’une invite peut être personnalisée et ne constitue pas une preuve des droits effectifs.
Tapez la ligne suivante, puis appuyez sur Entrée :
printf '%s\n' hello
Le résultat attendu est une ligne :
hello
Le shell affiche ensuite une nouvelle invite. printf imprime ses arguments selon un format : %s représente une chaîne et \n un saut de ligne. Les apostrophes droites autour du format appartiennent à la commande ; conservez-les. Les espaces et signes à l’intérieur d’une commande ne doivent pas être remplacés par une ponctuation décorative.
Lire commande, options et arguments
De nombreuses lignes suivent le modèle « commande, options, arguments ». La commande choisit l’action, les options en modifient le comportement et les arguments fournissent les données ou les objets à traiter. Toutes les commandes n’ont pas besoin des trois parties.
ls -l /etc
| Partie | Exemple | Signification |
|---|---|---|
| Commande | ls | Afficher une liste de fichiers |
| Option | -l | Utiliser le format détaillé |
| Argument | /etc | Désigner le répertoire à lister |
Sur une installation Linux ordinaire, la commande affiche le contenu de /etc en format détaillé. Les noms, permissions, dates et quantités dépendent de votre machine. Vous ne devez donc pas obtenir une liste identique à celle d’un autre ordinateur.
Les espaces séparent normalement les mots de cette ligne. Dans une aide comme ls [OPTION]... [FILE]..., les crochets signalent une partie facultative et les points de suspension une répétition possible. Ce sont des conventions de documentation, pas des caractères à recopier automatiquement. La page man(1) explique ces conventions de synopsis.
Pour transmettre un texte contenant un espace comme un seul argument, utilisez des guillemets adaptés. Exécutez ces deux lignes :
printf '%s\n' hello world
printf '%s\n' 'hello world'
La première fournit deux arguments distincts à printf, qui réutilise le format pour chacun. La seconde fournit un seul argument contenant un espace. L’ensemble produit exactement ces trois lignes, sans ligne vide entre elles :
hello
world
hello world
Les apostrophes et les guillemets doubles n’appliquent pas toutes les mêmes règles d’expansion. Pour cet exercice, retenez d’abord le regroupement des mots ; les variables et les expansions demandent ensuite une étude propre. Si vous oubliez de fermer une citation, Bash peut afficher une invite de continuation et attendre la suite. Ctrl+C permet généralement d’abandonner cette saisie pour retrouver l’invite normale.
Distinguer texte affiché, erreur et statut de sortie
Après Entrée, une commande peut afficher un résultat, un diagnostic ou aucun texte. L’absence de texte ne prouve ni la réussite ni l’échec. Les programmes disposent notamment d’une sortie standard pour leurs résultats et d’une sortie d’erreur pour les diagnostics ; les deux sont souvent visibles dans le même terminal.
Le statut de sortie est un nombre renvoyé à la fin de la commande. Bash permet de lire le dernier statut avec le paramètre $?. La valeur 0 indique normalement la réussite ; les autres valeurs s’interprètent selon le programme. La documentation Bash des statuts de sortie détaille cette convention.
Pour observer un résultat volontairement faux sans toucher aux fichiers, exécutez :
false
printf 'statut=%s\n' "$?"
false n’affiche rien et renvoie 1 ; la ligne suivante affiche statut=1. Exécutez l’affichage immédiatement après la commande à examiner : toute autre commande peut remplacer la valeur à observer. Le code 1 est ici le résultat attendu de false, pas un signe que l’exercice s’est mal passé.
Une erreur de syntaxe, un nom introuvable et un refus d’accès demandent des vérifications différentes. Lisez le diagnostic et la commande concernée avant de réessayer. Ajouter sudo partout ne corrige ni une faute de frappe ni une option inexistante, et peut donner des effets beaucoup plus larges à une mauvaise commande.
Retrouver une commande et quitter un programme
Dans une session interactive Bash configurée de manière habituelle, la flèche vers le haut rappelle les commandes précédentes. Relisez la ligne avant Entrée, surtout si un chemin ou une option doit changer. Évitez de placer des mots de passe ou jetons dans les arguments : ils peuvent rester dans l’historique et être exposés par d’autres mécanismes.
Ctrl+C envoie habituellement un signal d’interruption au programme de premier plan. Il ne signifie pas « copier » dans ce contexte et ne garantit pas que tout programme s’arrêtera immédiatement : une application peut traiter le signal. Le manuel Bash sur les signaux précise les différences selon l’exécution et le contrôle des tâches.
La commande exit termine le shell courant ; dans une connexion distante, elle peut donc fermer la session. Ctrl+D, sur une ligne d’entrée vide dans une session habituelle, peut signaler une fin d’entrée et conduire à la fermeture du shell. Dans un programme qui lit des données, son effet dépend de ce programme et des réglages. Utilisez le moyen de sortie indiqué par l’application plutôt que de supposer que tous les raccourcis ont le même sens.
Trouver l’aide correspondant à la commande
Consultez l’aide avant d’inventer une option. Les commandes intégrées à Bash et les programmes externes ne publient pas forcément leur documentation de la même façon.
| Méthode | Utilité | Condition |
|---|---|---|
| programme --help | Lire rapidement les options proposées | Le programme doit prendre cette forme en charge |
| man programme | Lire une page de manuel installée | man et la page recherchée doivent être disponibles |
| help commande | Lire l’aide d’une commande intégrée à Bash | Se trouver dans Bash et viser un sujet reconnu |
| type nom | Voir comment Bash interprète ce nom | Le résultat dépend de la session et de sa configuration |
Pour ls, commencez par l’aide courte, puis ouvrez le manuel si vous voulez davantage de détails. Exécutez ces lignes séparément :
ls --help
man ls
Lorsque man utilise son lecteur habituel less, / suivi d’un mot lance une recherche, Entrée valide la recherche et q ferme le lecteur. Un autre lecteur configuré peut avoir d’autres commandes. Si la page ou man manque dans une installation minimale, utilisez l’aide disponible et la documentation officielle adaptée à la version ; ce message ne prouve pas que ls lui-même est absent.
cd est normalement une commande intégrée à Bash. Vérifiez son interprétation, puis ouvrez son aide :
type cd
help cd
type peut annoncer une commande intégrée, un alias, une fonction ou un fichier exécutable selon le nom et la session. Il reconnaît aussi les mots réservés du shell. Une définition personnelle peut modifier le résultat attendu. Les commandes intégrées décrites par GNU Bash précisent le fonctionnement de help et type.
Les guides consacrés à man et aux pages de manuel, à help pour Bash et à type pour identifier une commande donnent des exemples supplémentaires lorsque vous en avez besoin.
Faire un exercice complet sans modifier le système
L’exercice réunit l’identification, la lecture de l’aide et une commande dont le résultat est prévisible. Il ne crée aucun fichier et ne nécessite pas sudo.
- Exécutez type printf et relevez le type reconnu dans votre session.
- Lisez help printf : trouvez la distinction entre le format et les arguments.
- Affichez Linux practice comme un argument contenant un espace, puis comparez le résultat à la ligne attendue.
type printf
help printf
printf '%s\n' 'Linux practice'
Dans une session Bash ordinaire sans redéfinition, printf est une commande intégrée. Les deux premières lignes produisent leur propre texte d’information. La dernière doit produire :
Linux practice
Si le résultat diffère, vérifiez d’abord les apostrophes, les espaces et le shell utilisé. Pour command not found, contrôlez le nom et la disponibilité de la commande. Pour invalid option, relisez la forme prise en charge dans l’aide. Cette démarche — identifier, consulter, exécuter, vérifier — permet de progresser sans transformer chaque difficulté en une opération d’administration.




