Guide d'autodéfense numérique

Mises à jour : les logiciels évoluent, c'est pourquoi il est vivement conseillé d'utiliser la version la plus à jour de cet outil, qui est disponible sur le site web https://guide.boum.org/.

Durée : 15 à 30 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 ». On appelle cette façon d’interagir avec un ordinateur « 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é. Cependant, son usage s’est parfois avéré indispensable.

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ôle1. 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 d'ouvrir la vue d'ensemble activités en appuyant sur la touche Logo (cette touche a un logo Windows sur un PC et un sigle 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 roger sur une machine nommée debian, on aura sous les yeux :

roger@debian:~$ █

C’est à partir de cet état, appelé « invite de commande », que l’on peut taper directement les commandes qu’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 juste gedit puis qu’on tape sur Entrée, le résultat est qu’on ouvre un éditeur de texte. On aurait pu faire exactement la même chose en appuyant sur la touche Logo et en tapant texte puis en cliquant sur gedit. Par contre, on ne pourra pas entrer de nouvelle commande dans notre terminal tant que l’on aura pas quitté l’éditeur de texte.

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.

À 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.

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
  ^^^^^        ^^         ^^      ^^^^^
programme    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 tiret 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 un (ou plusieurs) espace(s). Il y a donc un 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. Ces dernières peuvent toutefois être difficiles à comprendre par leur aspect technique, et ne sont parfois disponibles qu’en anglais.

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 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.

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.

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 »:

roger@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 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.

Typographie

La plupart des symboles utilisés pour entrer les commandes complètes sont des symboles courants. Lorsqu’une commande emploie le symbole « - », il ne s’agit que du « tiret » qu’on peut obtenir en tapant (sur un clavier français) la touche 6. Pour un « ' » (apostrophe droite), c’est le 4…

D’autres symboles sont rarement utilisés en dehors du terminal, mais sont disponibles avec les claviers standards. Ils sont mêmes indiqués sur le clavier, et accessibles à l’aide de la touche Alt de droite, notée AltGr. 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
AltGr + 2 ~ tilde
AltGr + 3 # dièse
AltGr + 4 { accolade gauche
AltGr + 5 [ crochet gauche
AltGr + 6 | pipe
AltGr + 8 \ antislash
AltGr + 0 @ arobase
AltGr + ) ] crochet droit
AltGr + = } accolade droite

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. Si l’on tape LOGIN, cela ne fonctionnera pas…

Privilèges d'administration

Certaines commandes qui viennent modifier le système nécéssitent des droits d'administration. Elles pourront alors accéder à l’intégralité du système, sans restriction… avec les risques que cela comporte, donc.

Pour executer 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'executer la commande.

Encore une 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

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 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 auraient 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 le bureau, sur l’icône du Dossier personnel, 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 ficher. On va donc :

  • taper rm -v dans notre terminal,
  • taper un 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 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 doit constater l’absence de essai dans la liste que nous répond la commande. Sur le même ordinateur que tout à l’heure, cela donne :

Bureau

Et l’icône doit également avoir disparu dans le navigateur de fichiers. Apparemment, il a é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.

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.

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 chapitre « Débuter en console » de la formation Debian ou celui baptisé « Linux en mode texte : consolez-vous ! » du livre Linux aux petits oignons.


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