Prendre en main le terminal sous Linux

Contexte

Durée : 1h

Environnement de travail : Environnement Linux en console (ordinateur ou serveur en SSH)

Pré-requis : Aucun

Lorsque l'on commence à utiliser Linux et son interface graphique, on se rend compte qu'il y a beaucoup de similitudes avec ce que l'on retrouve sur d'autres OS. Cependant il y a un élément que l'on ne retrouve pas forcément et qui s'avère particulièrement puissant : la console (ou terminal). Le console est cette interface textuelle que l'on voit souvent dans les films, qui donne l'impression d'être complexe, mais qui est en fait pas si dure à prendre en main et à laquelle on s'habitue très vite. Nous allons, dans ce cours, décrire rapidement pourquoi la console existe, à quoi elle sert, puis nous verrons comment elle fonctionne.

Qu'est-ce que la console ?

Objectifs

  • Comprendre ce qu'est la console

  • Comprendre pourquoi on a inventé la console

  • Comprendre l'intérêt de la console aujourd'hui

DéfinitionLa console

La console est une interface humain-machine textuelle qui permet d'écrire des commandes à exécuter sur la machine et de visualiser le résultat de ces commandes.

Une console

ComplémentHistorique

Aux débuts de l'informatique, les premiers ordinateurs étaient beaucoup moins puissants que ceux que l'on utilise aujourd'hui. Il était nécessaire de pouvoir piloter ces ordinateurs à l'aide d'une interface simple et peu gourmande en ressources, utiliser une interface graphique avec des millions de pixels de couleurs et un pointeur de souris n'était pas imaginable à l'époque.

C'est pourquoi la console a été inventée : une interface entièrement textuelle et en noir et blanc.

MéthodeUtilité de la console

On pourrait penser que, maintenant que les ordinateurs savent largement faire tourner une interface graphique, la console ne sert plus à rien.

C'est en réalité tout le contraire, la console s'avère utile dans de très nombreuses situations :

  • pour administrer un serveur à distance, qui n'a pas d'écran branché à lui

  • pour réaliser des tâches d'administration, par exemple qui relèvent du système d'exploitation, que n'ont pas une interface graphique dédiée

  • pour réaliser des opérations courantes qui sont parfois plus simple à faire qu'en utilisant l'interface graphique.

Pour ce dernier point, il faut savoir que la console permet d'utiliser plusieurs centaines ou milliers de commandes différentes et de les combiner entres elles. Les possibilités sont donc très importantes, et il est impossible de permettre de réaliser toutes les opérations avec une interface graphique aboutie.

ExempleLa console, plus rapide que l'interface graphique

Prenons l'exemple d'une opération classique qui est beaucoup plus simple à réaliser en console qu'à l'aide d'une interface graphique : compter le nombre d'image JPG qui se trouve dans un dossier, avec d'autres fichiers.

Avec l'interface graphique il faudra ouvrir son explorateur de fichier, se rendre dans le dossier en question, compter manuellement tout les fichiers en JPG (éventuellement en les triant par types), vérifier qu'on a pas fait une erreur, etc. C'est long et fastidieux.

Dans la console, ça se fait en une ligne de texte :

$ ls -l | grep -i ".jpg" | wc -l
386

Bien entendu pour le moment cela peut sembler incompréhensible tant que l'on ne connaît pas les commandes en question, mais ce sont ici en réalité des commandes très basiques (la première qui liste les fichiers, la seconde qui filtre les JPG, la troisième qui compte), que vous connaîtrez bientôt par cœur.

À retenir

La console existe historiquement car les premiers ordinateurs ne pouvaient pas avoir d'interface graphique complexe. Cette interface humain-machine s'est avérée tellement performante que l'on continue de l'utiliser au quotidien aujourd'hui. Ce n'est pas un outil réservé à une élite ou aux personnes qui "connaissent l'informatique", et elle s'avère très pratique pour réaliser certaines des tâches classiques sur un ordinateur.

Appliquer la notion

En cherchant un peu sur Wikipédia, de quelle année date le premier ordinateur ayant une interface graphique ?

La page sur les interfaces graphiques devrait vous aider.

La première interface graphique sur un ordinateur date de 1973, sur le Xerox Alto. Ce fut d'ailleurs aussi le premier ordinateur équipé d'une souris (bien que la souris soit mises au point 10 ans auparavant).

La console sous Linux

Objectifs

  • Savoir ouvrir une console sur sa machine

  • Savoir lire un prompt

Ouvrir un terminal

Sur Ubuntu, on utilise l'application "Terminal" pour ouvrir une console (le terme terminal est équivalent à console). Une fenêtre s'ouvre, nous somme dans la console.

Comme prévu, c'est minimaliste : du texte, un rectangle indiquant que l'on peut écrire au clavier, et rien de plus.

DéfinitionLe prompt

La première chose que l'on constate est ce qui s'appelle le prompt. C'est le texte qui se trouve à gauche de de la zone pour entrer la commande, et qui indique le contexte dans lequel on se trouve.

Le prompt se compose de en 3 parties principales :

  • le nom d'utilisateur

  • le nom de la machine

  • le dossier dans lequel on se trouve

Le nom d'utilisateur et le nom de la machine sont séparés par le caractère @, le caractère : permet de séparer le nom de la machine et le nom du dossier.

Exemple

Dans notre cas le prompt est :

kyane@europa:~$

Ce qui signifie donc que :

  • l'utilisateur est kyane

  • la machine se nomme europa

  • le dossier dans lequel on se trouve est ~ (c'est un raccourci pour dire que l'on est dans le répertoire de l'utilisateur)

Le symbole $ à la fin signifie simplement que l'utilisateur est "normal", par opposition à un super-utilisateur (ou administrateur) symbolisé par le caractère #.

ComplémentUne autre manière d'accéder à la console

En réalité, ouvrir l'application "Terminal" dans notre environnement graphique n'est pas la manière originelle d'utiliser la console. En effet, même si nous avons une interface textuelle, cela reste un outil qui fonctionne en mode graphique.

Linux (et en fait la plupart des OS basés sur Unix) propose aussi d'accéder à une "vraie" console, dans le sens où c'est uniquement une interface texte, en dehors de l'interface graphique. Pour cela il faut utiliser les touches CTRL + Alt + F1 (on peut utiliser aussi F2, F3, etc jusqu'à F6), qui bascule notre écran de l'interface graphique à une console. Pour revenir en arrière, on fait CTRL + Alt + F7.

Dans la pratique on utilise pas cette console sur un ordinateur de bureau, cela s'avère pratique pour des serveurs par exemple (qui n'ont souvent pas de logiciels pour gérer une interface graphique).

À retenir

Sur Ubuntu, on peut ouvrir très simplement une console avec l'application "Terminal". On se retrouve ainsi avec une interface textuelle dans la laquelle on pourra entrer des commandes. Mais avant cela, il est important de savoir déchiffrer le prompt, ce petit bout de texte dans le terminal qui nous permet de connaître le contexte dans lequel on se trouve.

Appliquer la notion

Après avoir ouvert un terminal, on se retrouve avec le prompt suivant.

sarah@neptune.picasoft.net:/etc/ssh$

Quel est le nom de la machine sur laquelle on se trouve ?

neptune.picasoft.net

Dans quel dossier se trouve notre console ?

Dans le dossier /etc/ssh

Quel est le compte utilisant l'ordinateur actuellement ?

Le nom d'utilisateur est sarah

Premières commandes en console

Objectifs

  • Savoir utiliser une première commande sous Linux

  • Savoir obtenir des informations sur une commande

Une première commande sous Linux

Maintenant que l'on sait ouvrir une console et décoder un prompt, on peut enfin utiliser la console. Pour cela entrons notre toute première commande :

kyane@europa:~$ ls
Documents  Musique  Images firefox.config

Cette commande ls a une fonction toute simple : lister les fichiers et dossiers du répertoire. On voit ici 4 résultats : Documents, Musique, Images et firefox.config

Les paramètres

À ce stade on ne sait pas si les résultats retournés sont les noms des fichiers ou ceux des dossiers. En effet la commande ls se contente de lister ce qui se trouve dans le dossier courant. Si l'on veut clairement identifier les dossiers des fichiers simples, on peut faire :

kyane@europa:~$ ls -p
Documents/  Musique/  Images/ firefox.config

L'ajout de -p ici permet d'ajouter un caractère / à la fin des noms de dossiers (ici donc seul firefox.config est un fichier). C'est ce que l'on appelle un paramètre. En effet la plupart des commandes acceptent des paramètres (on par aussi d'options) qui permettent de modifier légèrement le comportement de la commande. Ces paramètres sont généralement des lettres préfixées par un tiret (-p) ou parfois des mots entiers préfixés par deux tirets (--ignore).

Lire le manuel

Nous avons dit qu'il y avait plusieurs centaines, voire milliers, de commandes, et maintenant on apprends que les commandes peuvent avoir différents paramètres. À ce stade on pourrait se dire « ce n'est pas pour moi, je ne pourrais jamais retenir tout ça par cœur », mais ce sera une erreur. Personne ne connaît toutes les commandes qui existe, la plupart du temps on se sert de 20 ou 30 commandes différentes quotidiennement (cela devient donc une habitude) et de la même manière on apprends vite les paramètres les plus importants.

De plus, une pratique qui est très courante lorsque l'on se met à utiliser Linux est.... de lire le manuel ! En effet il existe une commande qui permet d'obtenir le manuel d'utilisation des autres commandes : man.

kyane@europa:~$ man ls

On peut ainsi naviguer dans le manuel de la commande ls à l'aide des touches du clavier, et sortir de celui-ci avec la touche Q

Exemple

En descendant un peu dans le manuel, on peut voir les informations sur le paramètre que l'on a utilisé.

-p, --indicator-style=slash
       append / indicator to directories

À retenir

On sait désormais utiliser une première commande dans la console, même si c'est encore rudimentaire. On a aussi compris comment consulter les informations sur les paramètres d'une commande avec man.

Appliquer la notion

On va entrer dans le terminal la commande suivante.

cat /etc/hostname

D'après le manuel, à quoi sert la commande cat ?

D'après le manuel :

cat - concatenate files and print on the standard output

Cette commande est donc un outil pour afficher dans la console le contenu d'un fichier.

Que retourne comme résultat la commande complète ci-dessus ?

La commande va retourner le contenu du fichier /etc/hostname de la machine. En l’occurrence, ce fichier contient simplement le nom de la machine.

Auto-évaluation

Exercice final

Quiz - intro console

La console est aujourd'hui complètement dépassée par rapport aux interfaces graphiques.

Vrai

Faux

Quelle sont les intérêts de la console par rapport à l'interface graphique ?

Elle nécessite moins de ressources

Elle propose une meilleure accessibilité

Elle permet de réaliser des actions, sur le système d'exploitation, qui ne sont pas disponibles dans l'interface graphique

Elle permet de faire certaines actions plus rapidement

Quiz - Console Linux

Dans le terminal, qu'est-ce que le prompt ?

L'ensemble des commandes qu'il est possible d'utiliser

Le texte en début de ligne indiquant le contexte dans lequel on se trouve

L'instruction qui permet de sortir du terminal

Sous Ubuntu, pour accéder à la console on peut

Utiliser l'application "Terminal" installée par défaut.

Choisir le mode console au démarrage de l'ordinateur (écran BIOS)

Utiliser les raccourcis CTRL + ALT + F1 à F6

Quelles sont les informations que l'on trouve par défaut dans le prompt ?

Le nom d'utilisateur

L'heure actuelle

Le nom de la machine

Le dossier dans lequel on se trouve

Le temps d’exécution de la précédente commande

Quel est l'utilisateur dans le prompt suivant : samy@fred:/jamy$

samy

fred

jamy

Quiz - Commandes

Pour obtenir de l'aide sur une commande, j'utilise la commande

help

manual

man

info

En général, comment est-ce que l'on ajoute un paramètre à une commande ?

À l'aide d'une lettre précédée d'un tiret (ex. COMMANDE -p)

À l'aide de un ou plusieurs mots précédés d'un double tiret (ex. COMMANDE --preserve)

À l'aide de mots écrits avant la commande dans le terminal (ex. preserve COMMANDE)

D'après le manuel que fait l'option -R de la commande ls ?

Elle ignore les fichiers qui commencent par la lettre R

Elle indique la taille utilisée par les fichiers sur le disque.

Elle liste aussi les fichiers présents dans les dossiers, ainsi que les sous-dossiers, etc. de manière récursive.

Quiz - intro console

La console est aujourd'hui complètement dépassée par rapport aux interfaces graphiques.

Vrai

Faux

La console est encore très utilisée aujourd'hui, dans de multiples contextes.

Quelle sont les intérêts de la console par rapport à l'interface graphique ?

Elle nécessite moins de ressources

Elle propose une meilleure accessibilité

Elle permet de réaliser des actions, sur le système d'exploitation, qui ne sont pas disponibles dans l'interface graphique

Elle permet de faire certaines actions plus rapidement

Quiz - Console Linux

Dans le terminal, qu'est-ce que le prompt ?

L'ensemble des commandes qu'il est possible d'utiliser

Le texte en début de ligne indiquant le contexte dans lequel on se trouve

L'instruction qui permet de sortir du terminal

Sous Ubuntu, pour accéder à la console on peut

Utiliser l'application "Terminal" installée par défaut.

Choisir le mode console au démarrage de l'ordinateur (écran BIOS)

Utiliser les raccourcis CTRL + ALT + F1 à F6

Quelles sont les informations que l'on trouve par défaut dans le prompt ?

Le nom d'utilisateur

L'heure actuelle

Le nom de la machine

Le dossier dans lequel on se trouve

Le temps d’exécution de la précédente commande

Quel est l'utilisateur dans le prompt suivant : samy@fred:/jamy$

samy

fred

jamy

L'utilisateur est bien samy. fred est le nom de la machine et jamy le nom du dossier dans lequel on se trouve.

Quiz - Commandes

Pour obtenir de l'aide sur une commande, j'utilise la commande

help

manual

man

info

C'est la commande man qui permet de consulter la manuel d'une autre commande.

En général, comment est-ce que l'on ajoute un paramètre à une commande ?

À l'aide d'une lettre précédée d'un tiret (ex. COMMANDE -p)

À l'aide de un ou plusieurs mots précédés d'un double tiret (ex. COMMANDE --preserve)

À l'aide de mots écrits avant la commande dans le terminal (ex. preserve COMMANDE)

D'après le manuel que fait l'option -R de la commande ls ?

Elle ignore les fichiers qui commencent par la lettre R

Elle indique la taille utilisée par les fichiers sur le disque.

Elle liste aussi les fichiers présents dans les dossiers, ainsi que les sous-dossiers, etc. de manière récursive.

ls -R permet en effet d'afficher les fichiers et dossiers, mais aussi tout ce qui se trouve dans les dossiers, dans les dossiers des dossiers, etc.

Défi

On souhaite afficher dans notre terminal des informations sur la version de Ubuntu que l'on utilise.

En cherchant sur le Web, quelle est la commande qui permet d'afficher les informations spécifiques à notre distribution Linux ?

La commande lsb_release permet d'afficher des informations liées à la distribution Linux que l'on utilise.

Lorsque l'on fait uniquement lsb_release on ne voit en réalité aucune informations. Comment faire ?

$ lsb_release
No LSB modules are available.

Il faut chercher dans les paramètres de la commande.

En faisant man lsb_release on constate qu'il faut passer un paramètre à la commande pour qu'elle affiche toutes les informations disponibles.

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

On ne veut maintenant afficher que le numéro de la version, c'est à dire afficher uniquement 20.04, comment est-ce possible ?

La commande lsb_release a un paramètre pour cela.

On utilise le paramètre -r pour n'afficher que le numéro de version (la release) et le paramètre -s pour afficher le résultat sous sa forme courte.

$ lsb_release -rs
20.04

Conclusion

Dans ce cours nous avons découvert ce qu'est la console sous Linux, et pourquoi elle est très utilisée. Pas à pas nous avons ouvert notre premier terminal et entré notre première commande. C'est un outil particulièrement puissant, qui semble parfois compliqué, mais qui s'avère plus pratique que l'interface graphique pour de nombreuses opérations. De plus il est indispensable de savoir utiliser cette interface lorsque l'on veut comprendre un peu mieux comment fonctionne son ordinateur.

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.