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éfinition : La 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.
Complément : Historique
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éthode : Utilité 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.
Exemple : La 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éfinition : Le 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ément : Une 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.