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 programme sfill. 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 !.


  1. Entre autres, une page sur ubuntu-fr.org qui se termine elle-même par d’autres liens.↩︎