Chapitre 12 Utiliser un terminal
Durée : Quinze à trente minutes.
Souvent, on utilise un ordinateur personnel en cliquant sur des menus et des icônes. Cependant, il existe une autre façon de lui « parler » : en tapant des bouts de texte que l’on appelle des « commandes ». Ce qui permet de taper ces commandes s’appelle « le terminal », « le shell » ou encore « la ligne de commande ».
Ce guide cherche le plus souvent possible à contourner l’utilisation de cet outil, qui est assez déroutant lorsque l’on n’y est pas habituée. Cependant, son usage s’est parfois avéré indispensable.
12.1 Qu’est-ce qu’un terminal ?
Une explication détaillée sur l’usage de lignes de commandes n’est pas l’objet de ce guide, et Internet regorge de tutoriels et de cours assurant très bien ce rôle149. Il semblait cependant nécessaire de poser quelques bases sur la manière de s’en servir.
Alors on va tout simplement commencer par ouvrir un terminal : sur un bureau
GNOME 3, il faut ouvrir la vue d’ensemble des Activités en appuyant sur la touche
(⌘ sur un Mac),
puis taper term
et cliquer sur Terminal. Apparaît alors une fenêtre
qui indique :
IDENTIFIANT@LE-NOM-DE-LA-MACHINE:~$
À la fin se trouve un carré, appelé « curseur », qui correspond à l’endroit où inscrire le texte de la commande. Concrètement, avec l’identifiant rabouane sur une machine nommée debian, on aura sous les yeux :
rabouane@debian:~$ █
C’est à partir de cet état, appelé « invite de commande », que l’on peut taper directement les commandes que l’on veut faire exécuter à l’ordinateur.
L’effet final de ces commandes est souvent le même que celui qu’on peut obtenir en cliquant au bon endroit dans une interface graphique.
Par exemple, si dans le terminal qu’on vient d’ouvrir, on écrit firefox
puis qu’on tape sur Entrée (↲ ou return), le résultat
est qu’on ouvre le navigateur web Firefox. Par contre, on
ne pourra pas entrer de nouvelle commande dans notre terminal tant que l’on
n’aura pas quitté le navigateur.
On aurait pu faire exactement la même chose avec l’interface graphique en appuyant sur la touche
(⌘
sur un Mac) et en tapant navig
puis en cliquant sur Firefox ESR.
Dans le cadre de ce guide, l’intérêt du terminal est surtout qu’il permet d’effectuer des actions qu’aucune interface graphique ne propose pour le moment.
12.2 À propos des commandes
Les commandes sont comme des ordres qu’on donne à l’ordinateur par le biais du terminal. Ces « lignes de commande » ont leur propre langage, avec leurs mots, leurs lettres, et leur syntaxe. Quelques remarques à ce sujet sont donc utiles.
12.2.1 Syntaxe
Prenons par exemple cette commande, sfill
, qui permet à peu près les mêmes
opérations que nautilus-wipe
, un outil graphique qui sera présenté plus
tard :
sfill -l -v /home
↑ ↑ ↑ ↑
commande option option argument
Dans cette ligne de commande, on peut voir, dans l’ordre :
- la commande que l’on appelle est
sfill
. La commande est en général un programme installé sur le système ; - deux options,
-l
et-v
qui modifient le comportement du programmesfill
. Ces dernières peuvent être facultatives selon le programme (et commencent par un ou deux tirets pour qu’on les distingue) ; - un argument
/home
qui précise ce sur quoi va travailler la commande. Il peut y en avoir plusieurs, ou aucun, tout dépend de la commande.
Chacun de ces éléments doit être séparé des autres par une (ou plusieurs) espace(s). Il y a donc une espace entre la commande et la première option, entre la première option et la suivante, entre la dernière option et le premier argument, entre le premier argument et les suivants, etc.
Pour connaître les options et les arguments d’une commande, pas de mystère :
chacune dispose normalement d’une page de manuel. Pour y accéder, il suffit de
taper dans le Terminal man
suivi du nom de la commande, puis d’appuyer sur
la touche Entrée (↲ ou return). Ces dernières peuvent
toutefois être difficiles à
comprendre par leur aspect technique, et ne sont parfois disponibles qu’en
anglais.
12.2.2 Insertion du chemin d’un fichier
Lors de l’utilisation d’un terminal, on a souvent besoin d’indiquer des
dossiers et des fichiers. On parle de « chemin » car on décrit généralement
dans quel dossier et sous-dossier un fichier se trouve. Pour séparer un dossier
de ce qu’il contient, on utilise le caractère /
(qui se prononce « slash »).
Pour donner un exemple, voici le chemin du document recette.txt
qui se
trouve dans le dossier Documents
du dossier personnel du compte alligator
:
/home/alligator/Documents/recette.txt
Comme beaucoup de commandes attendent des noms de fichiers comme arguments, cela devient vite fastidieux de taper leurs chemins complets à la main. Il y a cependant un moyen plus simple d’insérer un chemin : quand on attrape avec la souris l’icône d’un fichier, et qu’on le déplace pour le lâcher sur le terminal, son chemin s’écrit là où se trouve le curseur.
Cela ne marche cependant qu’avec les « vrais » fichiers ou dossiers. On obtiendra un nom bizarre qui ne fonctionnera pas, par exemple, pour les fichiers mis à la corbeille, l’icône du Dossier personnel sur le bureau ou avec les icônes de clés USB.
12.2.3 Exécution
Une fois que l’on a tapé une commande, on demande à l’ordinateur de l’« exécuter » en appuyant sur la touche Entrée (↲ ou return).
12.2.4 Fin ou interruption de la commande
L’exécution de la commande prend plus ou moins de temps. Lorsqu’elle est terminée, le terminal retourne toujours à l’état où il était avant qu’on lance la commande, l’« invite de commande » :
rabouane@debian:~$ █
On dit alors que le terminal « rend la main ».
Si on souhaite interrompre l’exécution d’une commande avant qu’elle soit terminée, on peut appuyer sur la touche Ctrl, et tout en laissant cette touche enfoncée appuyer sur la touche C. On arrête alors la commande immédiatement, un peu comme quand on ferme la fenêtre d’un programme.
12.2.5 Typographie
La plupart des symboles utilisés pour entrer les commandes complètes sont des
symboles courants. Lorsqu’une commande emploie le symbole « -
», il s’agit
du « tiret » qu’on peut obtenir en tapant (sur un clavier français) la
touche 6. Pour un « '
» (apostrophe droite), c’est la touche
4.
D’autres symboles sont rarement utilisés en dehors du terminal, mais sont disponibles sur les claviers standards. Ils sont même indiqués sur le clavier, et accessibles à l’aide de la touche Alt de droite, notée Alt Gr. Voici, en se basant sur un clavier de PC français standard, la correspondance de quelques touches avec les symboles qu’elles écrivent, et leur nom (bien peu seront en fait utilisées dans ce guide) :
Touches | Résultat | Nom du symbole |
---|---|---|
Alt Gr + 2 | ~ |
tilde |
Alt Gr + 3 | # |
dièse |
Alt Gr + 4 | { |
accolade gauche |
Alt Gr + 5 | [ |
crochet gauche |
Alt Gr + 6 | | |
pipe |
Alt Gr + 8 | \ |
antislash |
Alt Gr + 0 | @ |
arobase |
Alt Gr + ) | ] |
crochet droit |
Alt Gr + = | } |
accolade droite |
12.2.6 Noms à remplacer
Parfois, on précise que l’on va nommer quelque chose que l’on a trouvé pour le
réutiliser plus tard. Par exemple, on dira que l’identifiant est LOGIN
.
Mettons qu’on travaille sous l’identifiant paquerette
. Lorsqu’on écrira
« taper LOGIN
en remplaçant LOGIN
par l’identifiant de son compte », il
faudra taper en réalité paquerette
.
12.3 Privilèges d’administration
Certaines commandes qui viennent modifier le système nécessitent des droits d’administration. Elles pourront alors accéder à l’intégralité du système sans restriction, avec les risques que cela comporte.
Pour exécuter une commande avec les droits d’administration, il faut mettre
pkexec
avant le nom de la commande. Une fenêtre demande alors un mot de passe
avant d’exécuter la commande.
12.4 Mise en garde
Plus encore que pour les recettes dont on parlait plus haut, les commandes doivent être tapées très précisément. Oublier un espace, omettre une option, se tromper de symbole, être imprécis dans un argument, c’est changer le sens de la commande.
Et comme l’ordinateur effectue exactement ce qui est demandé, si on change la commande, il fera exactement autre chose…
12.5 Un exercice
On va créer un fichier vide nommé « essai », qu’on va ensuite supprimer (sans recouvrir son contenu).
Dans un terminal, entrer la commande :
touch essai
Et taper sur Entrée (↲ ou return) pour que l’ordinateur l’exécute.
La commande touch
donne l’ordre de créer un fichier vide ; l’argument
essai
donne le nom de ce fichier. Aucune option n’est utilisée.
On peut alors vérifier que ce fichier a été créé en lançant la commande ls
(qui signifie « lister ») :
ls
Une fois la commande lancée, l’ordinateur répond avec une liste. Sur celui utilisé pour les tests, cela donne :
Bureau
essai
Bureau
est le nom d’un dossier qui existait déjà avant, et essai
le nom du
fichier qu’on vient de créer. Un autre ordinateur aurait pu répondre avec de
nombreux autres fichiers en plus de Bureau
et de essai
.
Ce que répond la commande ls
n’est qu’une autre manière de voir ce que l’on
peut obtenir par ailleurs. En cliquant sur l’icône du Dossier
personnel sur le bureau, on pourra noter dans le navigateur de fichiers l’apparition
d’une nouvelle icône représentant le fichier essai
que l’on vient juste de créer.
On va maintenant supprimer ce fichier. La ligne de commande pour le faire a pour syntaxe générale :
rm [options] NOM-DU-FICHIER-A-SUPPRIMER
On va utiliser l’option -v
qui, dans le cadre de cette commande, demande à
l’ordinateur d’être « bavard » (on parle de « mode verbeux ») sur les actions
qu’il va effectuer.
Pour insérer le nom du fichier à supprimer, on va utiliser l’astuce donnée précédemment pour indiquer le chemin du fichier. On va donc :
- taper
rm -v
dans notre terminal, - taper une espace afin de séparer l’option
-v
de la suite, - dans la fenêtre du Dossier personnel, on va prendre avec la souris
l’icône du fichier
essai
et la déposer dans le terminal.
À la fin de cette opération, on doit obtenir quelque chose comme :
rm -v '/home/LOGIN/essai'
On peut alors appuyer sur la touche Entrée (↲ ou return) et constater que l’ordinateur répond :
« /home/LOGIN/essai » supprimé
Cela indique qu’il a bien supprimé le fichier demandé. On peut encore vérifier
son absence en lançant un nouveau ls
:
ls
On constate l’absence de essai
dans la liste que nous renvoie la commande.
Sur le même ordinateur que tout à l’heure, cela donne maintenant :
Bureau
Et l’icône doit également avoir disparu dans le navigateur de fichiers. Apparemment, le fichier a donc été supprimé, même si, comme expliqué dans la première partie, son contenu existe encore sur le disque. Comme c’était un fichier vide nommé « essai », on peut se dire que ce n’est pas bien grave.
12.6 Attention aux traces !
La plupart des shells enregistrent automatiquement les lignes de commande que l’on a tapées dans un fichier « d’historique ». C’est bien pratique pour retrouver plus tard des commandes que l’on a pu utiliser, mais cela laisse également sur le disque une trace de nos activités.
Le shell standard dans Debian s’appelle bash
. Avec ce dernier, pour
désactiver temporairement l’enregistrement de l’historique dans le terminal que
l’on utilise, il suffit de faire :
unset HISTFILE
Par ailleurs, les commandes sont enregistrées dans le fichier caché
.bash_history
(qui se trouve dans le Dossier personnel). On peut donc avoir
envie de le
nettoyer de temps
en temps.
12.7 Pour aller plus loin
Cette première expérience avec cette fenêtre pleine de petits caractères pourrait être le début d’une longue passion. Pour l’entretenir, rien de mieux que de prendre le temps de lire le tutoriel « Linux en mode texte : consolez-vous ! » du livre Linux aux petits oignons ou la partie « La console, ça se mange ? » du tutoriel Reprenez le contrôle à l’aide de Linux !.
Entre autres, une page sur ubuntu-fr.org qui se termine elle-même par d’autres liens.↩︎