Bienvenue sur l'espace de ressources et tutoriels des Conseillers Numériques de la Labomedia !
Vous pouvez également nous retrouver dans le monde non-numérique, les mercredis de 13H à 19H, au 108 rue de Bourgogne.
Skip to main content

Quelles sont les bases du terminal sous Linux ?

Le terminal est un outil qui peut faire peur au début. Mais pas de panique ! Dans tous les cas, c’est un outil tellement polyvalent qu’il serait inhumain de le maîtriser entièrement ! Alors comme nous serons toujours novices, faisons sans crainte nos premiers pas dans son utilisation.

Vous trouverez en fin de page un tableau récapitulatif des commandes les plus utiles.

À l’origine, le terminal s’appelle ainsi car c’était le point terminal de l’ordinateur, celui par lequel l’humain y accède. Nous parlons là d’une époque révolue où la notion d’interface graphique était inexistante. Il fallait écrire les commandes que nous souhaitions faire effectuer à l’ordinateur plutôt que de cliquer sur des icônes et des boutons à l’écran.

On parle de ici de deux concepts opposé : GUI et de CLI.

GUI, acronyme anglais de Graphical User Interface, ou Interface Graphique est un mode d’interaction simplifié avec l’ordinateur. Le but est de gagner en aisance et en rapidité principalement par le biais de boutons sur lesquels on clique avec la souris, et qui effectueront des actions préprogrammées.

CLI, acronyme anglais de Command Line Interface, ou Interface en Ligne de Commande est un mode d’interaction avec l’ordinateur. Il se caractérise par le fait de taper des suites de mots correspondant à des actions préprogrammés avant de demander à l’ordinateur de les exécuter.

Voici une opération que vous aurez, je pense, déjà réalisée : j’ai ouvert mon navigateur de fichiers, double cliqué sur un dossier et paf, son contenu s’est affiché :

FolderDisplay.png

Voici maintenant comment réaliser la même opération via le terminal :

cdls.png

Ok, pas si vite ! Que s’est-il passé ? Revenons au point de départ, au moment où j’avais uniquement ouvert mon terminal :

VirginTerminal.png

Pour des questions de clarté, j’ai retiré la bordure de la fenêtre pour ne garder que l’essentiel. Trois informations sont pour l’instant affichées.

La première, avant le @, est le nom de l’utilisateur connecté au terminal. Ici, c’est ‘simon‘. C’est moi !

Nous avons ensuite, après le @, le nom de l’ordinateur auquel le terminal est connecté. Mon ordinateur se nomme donc ‘moustache‘.

Enfin, après le ~ se trouve l’emplacement actuel où nous nous situons dans l’arborescence de fichier. $ signifie que nous sommes dans le dossier racine de l’utilisateur, autrement dit son point de départ.

La première commande que j’ai entrée dans le terminal était ‘cd nom_de_mon_dossier/‘. cd est le raccourci de change directory, qui signifie changer de dossier.

cd.png

Celle-ci permet de rentrer dans un dossier. Ici, vous pouvez voir que nous ne sommes plus dans ‘$‘, mais dans le dossier ‘/FabuleuxDossier‘.

Pour revenir en arrière, il faut utiliser la commande ‘cd ..‘. .. fait référence au dossier parent du dossier actuel :

cdback.png

La seconde commande que j’avais utilisé était ls, qui permet de lister les dossiers et fichiers présents dans le dossier actuel :

cdls.png

Cette suite de commande est donc équivalente à afficher des fichiers dans le navigateur de fichiers. Il faut cependant reconnaître que celui-ci est tout de même plus adapté car plus rapide et plus joli, de surcroît, on peut double-cliquer sur les icônes pour
ouvrir les fichiers ! Mais continuons un peu notre exploration du terminal avec l’énigme suivante :

lsa.png

Que s'est-il passé ?

En ajoutant du texte après la commande ls, j’obtiens un résultat différent ! La commande -a est une option qui s’utilise après ls, pour en modifier le comportement. Ici, ls -a affiche tous les fichiers, y compris les fichiers cachés. Trois nouveaux fichiers sont présents :

.. , comme indiqué précédemment, fait référence au dossier parent.

. , lui est une référence au dossier lui-même. Assez étrangement, chaque dossier contient une référence à lui-même.

.FabuleuxFichierCaché.txt est un fichier caché à des fins didactiques. Sous Linux, un fichier commençant par « . » est considéré comme un fichier caché. Pour activer ou désactiver l’affichage de fichiers cachés dans le navigateur de fichiers, utilisez la commande ctrl + H .

 

Quelles options sont disponibles pour une commande donnée ? Une commande fort utile permet, entre autres, de répondre à cette question : man . man nom_d’une_commande affiche le manuel d’utilisation de cette commande, présentant entre autres sa fonction
et ses options. En guise d’exemple, man ls :

manls.png

Les options des commandes peuvent s’additionner. Par exemple, ls -a liste tous les fichiers à l’intérieur d’un dossier, tandis que ls -l liste les fichiers visibles dans un dossier sous format long. Ainsi, ls -la liste donc tous les fichiers d’un dossier sous format long :

lsla.png

Dernier outil fort utile du terminal : l’auto-complétion. Le terminal est doté d’un dispositif lui permettant de prédire les commandes valides que l’on essaye de taper. Dans l’exemple suivant, j’ai modifié le contenu du dossier pour qu’il contienne trois sous-
dossiers : Articles, Audio et Photos :

completion1.png

Vous pourriez croire que j’ai ensuite tapé cd Photos/ . En fait, je n’ai tapé qu’une partie de la commande : cd P . J’ai ensuite utilisé l’auto-complétion en appuyant sur la touche Tabulation. Le reste de la commande s’est affiché automatiquement ! Pourquoi ?

La commande cd permet d’accéder à un dossier. Or, avec le P que j’ai ensuite indiqué, il n’y avait qu’un résultat possible : Photos/ . Le terminal a donc compris que c’était la commande que je souhaitais et l’a complétée automatiquement.

Dans certains cas, plusieurs commandes différentes sont valides. Dans ces cas-là, appuyer une fois sur Tabulation n’a pas d’effet immédiat. Cependant, appuyer une deuxième fois sur Tabulation liste les commandes valides disponibles :

completion2.png

Il s’agit d’un excellent outil qui permet à la fois de gagner du temps et d’explorer rapidement le terminal. Par exemple pour lister toutes les commandes disponibles commençant par fi :

findfi.png

 


Trêve de bavardages ! Voici la meilleure commande de tout Linux, en deux lignes :

sudo apt-get update

sudo apt-get install nom_du_logiciel

La première ligne met à jour la base de données de logiciels de Linux. Le mot sudo, présent également à la ligne suivante, indique que l’action nécessite les privilèges de l’administrateur. Il vous sera demandé de taper votre mot de passe.

La seconde permet de récupérer un des logiciels présent sous forme de paquet dans votre distribution. Par exemple, installer GIMP se fait comme cela :

sudo apt-get install gimp

La configuration du logiciel est ensuite automatique. Une fois celle-ci terminée, vous pouvez utiliser le logiciel comme bon vous semble. N’hésitez pas à explorer la liste de logiciels disponibles, par exemple en utilisant l’auto-complétion :

completiongimp.png

Petite note sur les paquets : un paquet n’est pas nécessairement une application. En fait, c’est rarement le cas. Vous pouvez voir ci-dessus qu’en dessous du paquet gimp se trouvent de nombreux paquets commençant par gimp- . Ces paquets sont des librairies qui eux-mêmes constituent l’application. Le paquet gimp nécessite par exemple le paquet gimp-data pour fonctionner, celui-ci sera d'ailleurs installé lors de l’installation de gimp, mais ne sera pas utilisable directement. D’autres paquets, par exemple gimp-data-extras ou gimp-plugin-registry sont des paquets optionnels rajoutant des fonctionnalités au logiciel.

 


Commandes utiles

 

Commande Effet
cd dossier/ rentrer dans le dossier
cd .. revenir en arrière dans l’arborescence
cd ../.. revenir deux fois en arrière dans l’arborescence
cd revenir à la racine de l’arborescence ( $ )
ls lister les fichiers et dossiers de l’emplacement actuel
ls -a lister tous les fichiers et dossiers de l’emplacement actuel
man nom_de_commande afficher le manuel de la commande indiquée
sudo apt-get update mettre à jour la liste des paquets
sudo apt-get install nom_de_paquet installer le paquet indiqué
sudo apt-get upgrade mettre à jour les applications
sudo apt-get remove nom_de_paquet désinstaller le paquet indiqué
sudo apt-get autoremove supprimer les paquets inutiles
sudo dpkg -i fichier_de_paquet installer un paquet depuis un fichier
mkdir nom_de_dossier créer un nouveau dossier à l’emplacement actuel
rm nom_de_fichier supprimer le fichier indiqué
rm -R nom_de_dossier supprimer le dossier indiqué et l’ensemble de son contenu
mv nom_de_fichier nouveau_nom_de_fichier modifier le nom du fichier indiqué selon le nouveau nom indiqué
cp nom_de_fichier nouveau_nom_de_fichier copier le fichier sous l’appellation indiquée
file nom_de_fichier trouver le type du fichier indiqué
locate nom_de_fichier trouver toutes les occurrences du fichier indiqué à partir de l’emplacement actuel
locate *.extension trouver toutes les occurrences d’un type de fichier à partir de l’emplacement actuel
cat nom_de_fichier_texte afficher le contenu du fichier dans le terminal
more nom_de_fichier_texte afficher le contenu du fichier dans le terminal sur des pages séparées
less nom_de_fichier_texte afficher le contenu du fichier dans le terminal sur une page
nano nom_de_fichier_texte ouvrir le fichier indiqué dans l’éditeur de texte nano. Le fichier est créé s’il n’existe pas
sudo chmod +x 755 nom_de_fichier changer les permissions d’un fichier. Modifier la balise numérique en fonction des besoins
clear effacer le contenu du terminal
killall nom_de_processus forcer l’arrêt de tous les processus liés au nom indiqué
xkill permet de cliquer sur la fenêtre d’un processus pour en forcer l’arrêt
tar -xzf nom_d'archive décompresser une archive à l’emplacement actuel
sudo fdisk -l lister les périphériques de stockage et leur spécificités
sudo dd if=image_disque.iso of=/dev/sdx && sync copier l’image disque indiquée sur le périphérique indiqué
sudo systemctl start nom_de_service démarrer le service indiqué
sudo systemctl stop nom_de_service arrêter le service indiqué
sudo systemctl restart nom_de_service redémarrer le service indiqué
sudo arp-scan --local lister les appareils connectés au réseau
ssh utilisateur@adresse_ip se connecter à un ordinateur distant en SSH
sudo scp utilisateur@adresse_ip:/chemin/du/fichier nom_de_la_copie copier localement un fichier distant en SSH
cd && cd ../.. && sudo rm -R * Effacer la totalité du contenu de l’ordinateur. À éviter.