Les distributions GNU/Linux actuelles n’ont plus grand-chose à envier à Windows et MacOS. Que ce soit Ubuntu, OpenMandriva ou Garuda, les nombreuses déclinaisons de Linux ont de quoi séduire un large panel d’utilisateurs, même les gamers. L’usage de la ligne de commande semble d’ailleurs appartenir au passé tant les environnements graphiques ont pris en maturité ces dernières années. Et pourtant, il peut être avisé de connaître l’usage du terminal, cet outil apportant un gain de temps et de confort non négligeable quand on sait le manipuler correctement !
Il n’y a pas si longtemps encore, Linux souffrait d’une image peu attrayante d’usine à gaz, accessible uniquement aux geeks adeptes de la ligne de commandes. Des préjugés qui tendent – heureusement ! - à disparaître avec le temps qui passe. Les concepteurs de distributions GNU/Linux ont bien compris que le succès résidait dans la simplicité d’accès.
C’est donc avec une certaines nostalgie que les vieux briscards se souviendront des longues heures à paramétrer les pilotes Wi-Fi avec la ligne de commandes ou des compilations à s’arracher les cheveux pour faire fonctionner un logiciel spécifique. Tout ceci appartient néanmoins au passé.
Tout ? Pas forcément. En effet, la ligne de commandes reste un outil primordial pour qui veut pleinement s’approprier un système GNU/Linux. Bien qu’austère dans son approche visuelle, le Terminal est un allié précieux pour la maintenance de votre distribution préférée. De la mise à jour de vos logiciels à la gestion des droits utilisateurs en passant par la navigation dans l’arborescence des fichiers, ce dossier vous donnera toutes les clés pour bien aborder vos premières sessions avec la ligne de commande sur GNU/Linux. Promis, après avoir essayé, vous ne pourrez plus vous en passer !
Sur le même sujet : Comment bien débuter avec le Terminal de macOS ?
Introduction au shell
Avant de passer à la pratique, un peu de théorie s’impose. Lors de votre exploration de GNU/Linux, vous croiserez probablement le terme anglais « shell », qui se traduit littéralement par « coquille ».
Le shell est le lien entre vous et le noyau Linux. Il sert à interpréter les commandes – on parle « d’interpréteur shell » - que vous donnez au système via la ligne de commandes afin qu’elle soient comprises par le noyau. Ce dernier vous renvoit la réponse qui sera alors à nouveau interprétée de façon compréhensible par le shell. Voyez ça comme un traducteur entre vous qui parlez « humain » et le PC qui parle en binaire.
Il existe plusieurs formes de shell : bash, mksh, sh, zsh, csh… Ce sont des variantes, chacune avec ses spécificités. Inutile d’entrer dans les détails à notre niveau, cela ne changera rien à l’utilisation que nous allons faire de la ligne de commandes. Sachez juste que le shell le plus répandu est le bash.
Quelques mots sur le Terminal
Parlons maintenant du Terminal. Si le shell sert à transmettre vos commandes au noyau, le Terminal fait office d’interface graphique entre vous et le shell. Quel que soit le système d’exploitation que vous utilisiez, vous avez sûrement déjà eu à faire à lui : une fenêtre noire avec des lignes en anglais, dans un style graphique souvent très « old-school ».
On vous l’accorde, l’aspect visuel du Terminal est loin d’être attractif. C’est pourtant un outil très puissant qui permet en une simple ligne de réaliser autant de choses qu’en naviguant dans plusieurs menus au sein d’une interface graphique.
Aussi appelé « console », cet outil peut varier d’un environnement de bureau à un autre. Sur KDE, on a ainsi la Konsole. Sur Gnome Shell, il s’appelle Gnome Terminal. Et ainsi de suite… En dehors de l’aspect graphique de la fenêtre et de quelques fonctionnalités qui varient légèrement, l’usage du terminal reste le même d’une distro à une autre. Nous allons maintenant voir comment l’exploiter pour accomplir diverses tâches au sein du système.
Les raccourcis de base pour simplifier l’usage du Terminal GNU/Linux
Il est temps de rentrer dans le vif du sujet. Avant toutes choses, nous allons vous présenter quelques astuces qui vous simplifierons la vie lors de l’utilisation de la console. Vous n’êtes pas obligés de les utiliser, mais elles peuvent vous faire gagner un temps précieux !
Auto-complétion
La ligne de commandes consiste à taper du texte, souvent en anglais. Vous serez aussi amené à chercher des noms de fichiers parfois très longs. Une petite erreur de frappe et la commande échouera. C’est là qu’entre en jeu l’auto-complétion.
Ce petit système très pratique rentre en branle quand vous commencez à taper une commande et que vous appuyez sur la touche de Tabulation. Il s’agit des deux flèches tète-bêche placées au-dessus de la touche Verrouillage majuscule. Quand vous appuyez sur cette touche, elle va tenter d’afficher le résultat le plus adapté à ce que vous avez déjà indiqué au shell. Si jamais plusieurs résultats concordent, alors vous aurez un affichage des diverses commandes possibles. Il ne vous restera plus qu’à entrer celle que vous voulez.
Prenons un exemple. Vous voulez mettre à jour vos logiciels. Vous commencez à entrer la commande suivante :
sudo apt upg
En appuyant sur Tabulation, le shell va compléter la ligne pour obtenir la commande complète :
sudo apt upgrade
L’auto-complétion est très pratique pour gagner du temps, surtout quand vous devez rentrer sans erreur des noms de fichiers très longs.
A noter : Linux est sensible à la casse, donc il est important de vérifier le bon usage des majuscules et des minuscules lorsque vous utilisez le Terminal pour manipuler vos fichiers !
Symboles utiles
Connaître les symboles vous sera très utile au quotidien. Il s’agit de caractères qui donnent une grande souplesse aux commandes.
En voici une liste non exhaustive mais qui vous permettra déjà de faire l’essentiel :
« * » : ce symbole joker permet d’effectuer une recherche élargie en indiquant au shell d’inclure tout nom qui correspond aux caractères accolés à « * ». Par exemple, une recherche sur les termes « *.tar » affichera tous les fichiers possédant l’extension tar, peu importe leur nom.
« ? » : très proche de « * », le point d’interrogation remplace un seul caractère d’une chaîne. Par exemple, si vous possédez deux fichiers « clubic.txt » et « cluboc.txt », une recherche sur le nom « club?c.txt » vous sortira les deux résultats.
« && » : voici le top pour exécuter plusieurs commandes à la suite. Chaque commande sera réalisée dans l’ordre dans laquelle elle a été incluse dans la ligne. Par exemple, tapez la commande suivante dans le Terminal pour mettre à jour la liste des miroirs puis ensuite mettre à jour les logiciels de votre distributions :
sudo apt update && sudo apt upgrade
« I » : la commande pipe est l’une des plus puissantes du shell. Elle permet d’envoyer la sortie d’une commande en entrée d’une autre. À titre d’exemple, vous pouvez chercher un passage particulier dans un fichier texte et envoyer le résultat dans un autre fichier, le tout avec une seule ligne d’ordres.
Les commandes pour y voir plus clair
Après avoir rentré plusieurs lignes de commandes et obtenu leurs retours parfois très longs, votre fenêtre de Terminal risque d’être bien encombrée. Pour y voir plus clair, il existe une commande bien pratique :
clear
Une fois entrée et validée, elle va effacer le contenu de la fenêtre, sans pour autant annuler tout ce que vous y aviez fait auparavant. C’est très pratique pour faire le vide rapidement !
Si vous utilisez plusieurs consoles ou même plusieurs onglets au sein d’une même fenêtre du Terminal, la commande exit pourra aussi vous faciliter la vie. Cette dernière vient tout simplement fermer l’onglet ou la fenêtre où a été tapée la commande.
RTFM !
Si vous avez déjà arpenté les forums linuxiens, il ne fait aucun doute que vous avez probablement croisé le terme « RTFM ! », parfois utilisé avec un peu trop de facilité – et/ou d’arrogance - par les utilisateurs les plus accomplis du monde Linux. Il s’agit de l’abréviation de Read The Fucking Manual, ou dans la langue de Molière : lis ce foutu manuel !
Cette interjection fait référence à la commande man, indispensable à tout utilisateur débutant. Si vous avez un trou de mémoire ou ne savez pas comment utiliser une nouvelle commande, alors man vous sauvera la vie (tout en vous évitant de vous faire jeter des forums un peu trop tatillons) !
Son utilisation est très simple, il suffit de rentrer dans le terminal la ligne suivante :
man nom-de-la-commande
Par exemple :
man mkdir ou man ls
Une fois validée, la commande vous donnera accès aux pages du manuel qui décortiquent l’usage de la commande passée en argument. Une petite connaissance en anglais sera nécessaire pour vous y retrouver, mais il n’y a en général rien de bien méchant à comprendre, toutes les commandes fonctionnant sur le même principe : commande [options][argument 1] [argument 2] etc…
Une alternative consiste à utiliser -h après une commande, ce qui donnera accès à une page d’aide. man reste cependant plus fouillée dans la plupart des cas, n’hésitez donc pas l’essayer régulièrement lors de votre voyage initiatique au sein des arcanes du Terminal !
su et sudo : il n’y a pas que Superman, il y a aussi Super-user
Parlons maintenant des utilisateurs et de leurs droits. Linux est un système qui se veut très prudent : vous ne pouvez pas tenter d’action jugée « dangereuse » sans être administrateur. L’administrateur – ou super user – est différent de l’utilisateur lambda qui n’a que des droits limités sur le système.
Par défaut, vous vous identifiez sur votre distribution préférée en tant qu’utilisateur lambda. Sans l’identifiant et le mot de passe admin, vous ne pourrez donc pas installer de mise à jour, de nouveau logiciel ou effacer un fichier hors de votre espace /home. Il en va de même quand vous utilisez le Terminal.
Vous pouvez vérifier votre statut en observant le prompt, cette ligne qui apparait en début de commande. Elle est composée de votre nom d’utilisateur, du nom de la machine, du répertoire courant et d’un symbole $ ou #. Un usager lambda s’affiche avec le $ alors que l’administrateur est identifié avec le symbole #.
Mais alors, comment faire quand vous avez besoin d’installer un logiciel ou faire une mise à jour depuis le Terminal ? Il suffit de changer de statut. On observe alors deux cas : soit en devenant administrateur via la commande su, soit en appliquant les droits super-user sur une seule commande à la fois avec la commande sudo.
Si vous utilisez su, vous devrez rentrer votre mot de passe administrateur. Selon vos choix lors de l’installation du système, il est identique à votre mot de passe personnel ou différent. Une fois le bon mot de passe validé, vous aurez tout pouvoir sur le système. Faites donc attention aux commandes que vous rentrez !
La meilleure alternative – à notre sens – reste de passer par la commande sudo. En la plaçant devant une autre commande, vous indiquez au système que vous désirez acquérir les droits du super-utilisateur temporairement, juste le temps d’exécuter votre commande. Une fois fait, le Terminal vous considérera à nouveau comme un utilisateur lambda. L’exemple le plus concret est la mise à jour du système que vous pouvez effectuer avec la ligne :
sudo apt upgrade
En règle générale, Linux reste prudent même si vous avez les droits d’administration. L’OS vous demandera toujours de valider les opérations critiques avant de les exécuter.
chmod : gérez facilement les droits sur vos fichiers
Puisque nous sommes dans la gestion des droits utilisateurs, il est de bon aloi de parler de la commande chmod, l’une des plus utiles du monde Linux. Grâce à elle, vous pourrez facilement gérer qui peut lire/écrire/exécuter un fichier.
Cette commande utilise plusieurs arguments, dont le premier est le type d’utilisateur qui sera impacté par son exécution :
- -u pour user, soit le propriétaire du fichier
- -g concerne le groupe à qui appartient l’utilisateur (group)
- -o définit les personnes n’appartenant pas au groupe de l’utilisateur (other)
- -a concerne tout les utilisateurs (all)
Vient ensuite l’argument qui va modifier les droits du fichier concerné par la commande chmod :
- -r pour read, la lecture
- -w pour write, l’écriture
- -x pour execute, l’exécution
Pour vous simplifier l’usage des droits, il est possible de placer les symboles « + » et « - » dans la commande pour signifier l’ajout ou le retrait de droits.
Sachez qu’il est aussi possible d’utiliser une base binaire pour modifier les droits des fichiers. Ce n’est toutefois pas le plus simple, surtout si vous n’êtes pas à l’aise avec les maths !
Nous resterons donc sur le format plus classique avec les lettres. La commande chmod s’utilisera ainsi de cette façon :
chmod a +rw clubic.txt
Nous signifions au système que nous donnons l’accès en lecture et en écriture au fichier nommé clubic.txt.
Autre exemple :
chmod o -w clubic.txt
Avec cette ligne, aucun utilisateur hors du groupe de l’utilisateur actuel ne pourra modifier le contenu du fichier clubic.txt. Notez que chmod fonctionne aussi pour gérer les droits sur les dossiers, pas uniquement sur les fichiers.
Gérer les paquets et les mises à jour Linux
Parlons maintenant de la maintenance du système, en particulier la gestion des paquets. Sous GNU/Linux, les « paquets » désignent des ensembles fichiers qui constituent les logiciels et les divers composants du système. Il y a des paquets pour gérer le Wi-Fi, le Bluetooth ainsi que vos logiciels préférés. Quelle que soit votre distribution, il convient de maintenir ces paquets à jour pour bénéficier d’un maximum de sécurité et des dernières fonctionnalités à la mode.
Pour gérer les paquets, qu’ils soient au format .DEB ou .RPM, vous pouvez passer par une interface graphique ou par la ligne de commandes. Croyez-le ou non, mais l’utilisation de cette dernière est bien plus rapide malgré son aspect austère au premier abord !
Ubuntu (et dérivées)
Commençons par la distribution la plus répandue : Ubuntu. Celle-ci utilise des paquets au format .DEB. Son gestionnaire de paquets se nomme Aptitude et utilise indifféremment la commande apt ou aptitude. Selon les arguments que vous lui passerez, de nombreuses actions sont possibles, allant de la mise à jour à l’effacement en passant par le nettoyage automatique des paquets.
Voici quelques exemples concrets :
sudo apt update : mettre à jour la base de données des paquets
sudo apt upgrade : mettre à jour la totalité des paquets qui peuvent l’être
sudo apt install nom-du-paquet : installer un paquet spécifique
sudo apt remove nom-du-paquet : effacer un paquet spécifique
sudo apt autoremove : effacer les paquets qui ne sont plus nécessaires au système
Pour vous simplifier la vie, vous pouvez utiliser le symbole « && » entre plusieurs commandes, par exemple pour lancer la mise à jour de la base de données puis passer aussitôt à l’installation des nouveaux paquets. Avec l’habitude, vous constaterez que vous économiserez un temps précieux sur la maintenance du système en passant par la console.
Arch, Manjaro, Garuda…
Comme toute distribution GNU/Linux, Arch – et ses dérivées - utilise des dépôts qui contiennent tous les paquets nécessaires pour installer vos logiciels préférés. C’est l’utilitaire Pacman, intégré dans toutes les distros Arch qui s’occupe de faire le travail grâce à la ligne de commandes.
L’utilisation est aussi simple qu’ailleurs, il faut juste faire attention à la casse lors du passage des arguments. N’oubliez pas non plus de vous accorder les droits d’administration avec su ou sudo :
sudo pacman -S nom-du-paquet : installer le paquet de votre choix
sudo pacman -R nom-du-paquet : supprimer un paquet
sudo pacman -Rsn nom-du-paquet : supprimer un paquet, ses dépendances et ses fichiers de configuration
sudo pacman -Syy : rafraîchir les dépôts
sudo pacman -Syu : mettre à jour tous les paquets qui le nécessitent
Fedora
Fedora utilise des paquets .RPM, contrairement à Ubuntu/Debian qui font usage des paquets .DEB. Dans l’absolu, ça ne changera pas grand-chose pour vous, les commandes de la console ne changent pas des masses par rapport aux autres distros. Pour ça, il suffit d’utiliser l’utilitaire DNF, avec bien entendu les droits du super-utilisateur :
sudo dnf upgrade : mettre à jour les paquets installés
sudo dnf install nom-du-paquet : installer le paquet désiré
sudo dnf remove nom-du-paquet : supprimer le paquet désiré
Se déplacer au sein de l’arborescence
Nous allons maintenant attaquer l’un des plus gros morceaux de ce dossier : le déplacement au sein des dossiers du système grâce à la ligne de commandes. Les commandes qui vont suivre sont indispensables pour savoir comment naviguer avec aisance d’un dossier à un autre, manipuler les fichiers, créer des dossiers… En bref, la base !
Sur les système Linux, le chemin d’accès reste proche de celui de Windows, sauf qu’on utilise le caractère « / » - appelé slash - plutôt que « \ » - l’anti-slash – pour désigner l’emplacement d’un dossier ou d’un fichier. Ainsi, le chemin d’accès /home/Jo/Documents/clubic.txt indique que le fichier clubic.txt est situé dans le répertoire Documents, lui-même placé dans le dossier home de l’utilisateur Jo. Pour information, le home est votre répertoire personnel, chaque utilisateur du système possède le sien.
En temps normal, le Terminal vous indique dans le prompt dans quel dossier vous vous trouvez actuellement. Mais si jamais vous êtes perdu, la commande pwd vous sauvera la vie en vous donnant le chemin d’accès complet du dossier que vous consultez actuellement au sein de votre Terminal.
Maintenant, voyons comment faire pour passer d’un endroit à l’autre en quelques secondes. Pour ça, il suffit d’utiliser la commande cd, abréviation de change directory. Son utilisation se veut très simple, mettant en œuvre divers symboles qui vous faciliteront grandement la vie :
cd ou cd / : cette commande vous mènera à la racine du système
cd .. : remonter d’un niveau dans l’arborescence
cd /home/Jo/Documents : se déplacer jusqu’au dossier Documents
Créer ou supprimer des répertoires, des fichiers
Maintenant que vous savez vous déplacer n’importe où dans le système, voyons comment créer et supprimer des dossiers et fichiers. Nous vous recommandons de faire particulièrement attention à ce que vous faites sur votre distribution, en particulier lorsque vous aurez les droit root. Une mauvaise manipulation peut signer la fin de votre système avec un beau plantage !
Commençons d’abord par la création d’un répertoire. Pour se faire, il faut utiliser la commande mkdir :
mkdir /home/Jo/Documents/Dossiers : cette commande indique au système que nous créons un répertoire nommé Dossiers au chemin indiqué.
Maintenant, voyons la suppression. Celle-ci se fait avec les commandes rm – pour les fichiers – et rmdir – pour les dossiers :
rm /home/Jo/Musique/Thunderstruck.mp3 : ceci va supprimer le fichier MP3 cité dans le chemin d’accès.
rmdir -r /home/Jo/Téléchargements/Temporaire : ici, nous demandons la suppression du répertoire nommé Temporaire. L’option -r va effacer tous les sous-dossiers ainsi que le contenu de Temporaire par la même occasion.
Copier ou coller vos fichiers
Outre la création et la suppression, la ligne de commandes permet aussi de gérer les déplacements de vos fichiers et dossiers.
Pour faire une copie d’un élément, il faut utiliser la commande cp. Vous devrez juste lui indiquer quel fichier copier et vers quelle destination, sur le modèle suivant :
cp /home/Jo/Documents/clubic.txt /home/Jo/Téléchargements/
Dans notre exemple, le fichier clubic.txt est copié dans le répertoire Téléchargements de notre home. Pour faire un « couper » du fichier et donc le déplacer, il faut passer par la commande mv :
mv /home/Jo/Documents/clubic.txt /home/Jo/Téléchargements/
Ces deux commandes peuvent se voir adjoindre certaines options :
- -i : forcer le système à demander une confirmation avant l’opération de copie ou de mouvement.
- -r : forcer le système à copier le dossier visé et tout son contenu
- -u : copier ou déplacer les fichiers les plus récents par rapport à ceux du chemin de destination
Petit bonus, la commande mv permet aussi de renommer un fichier ou un dossier, en utilisant simplement la forme mv nouveau-nom ancien-nom.
Rechercher vos fichiers au sein de l’arborescence
Vous êtes un peu perdu dans vos fichiers ? Pas de panique, Linux a la solution ! La ligne de commandes met à votre disposition plusieurs outils très puissants, capables de dénicher n’importe quel fichier en quelques instants.
La première commande indispensable est locate. Comme son nom le laisse entendre, elle permet de localiser n’importe quel fichier. Contrairement à find, elle parcourt tout le système et pas juste un dossier. Il est cependant avisé de mettre à jour la base de données d’indexation avec la commande updatedb avant d’utiliser locate.
Jetons maintenant un œil à la commande find. Celle-ci permet aussi de retrouver des fichiers, mais elle n’opère que sur les répertoires que vous donnerez en argument :
find /home/Jo/Documents/ -name «*.txt» : le résultat donnera tous les fichiers avec les caractère « .txt » contenus dans le répertoire Documents de notre home.
find . -type -d : ici, nous demandons à la commande de retrouver tous les dossiers contenus dans le répertoire courant. L’option -type peut afficher les fichiers avec -f, les dossiers avec -d et les liens symboliques avec -l.
Et pour afficher le contenu d’un répertoire ? C’est dans ce cas à la commande ls qu’il faut faire appel. Celle-ci peut utiliser diverses options que voici :
ls -a : lister tous les dossiers et fichiers du répertoire courant, même ceux qui sont cachés (leur nom commence par un « . »).
ls -l : donne tous les détails des fichiers et répertoires comme les droits, la date de création, le propriétaire…
ls -R : affiche le contenu du répertoire courant ainsi que celui des sous-dossiers qu’il contient.
Compression/décompression de fichiers
Vous savez maintenant comment vous déplacer dans le système et gérer facilement vos fichiers. Il est temps de voir comment effectuer les opérations de compression/décompression, toujours utiles à notre époque où les fichiers sont de plus en plus imposants.
Linux met à disposition de ses utilisateurs une commande fort pratique, nommée tar. Son utilisation est on ne peut plus simple :
tar -cf Archive.tar.gz /home/Jo/Documents/ : ceci va créer une archive compressée qui contient l’intégralité du contenu du dossier Documents. L’option -c permet de créer une archive.
tar -xf /home/Jo/Documents/ /home/Jo/Sauvegarde/documents.tar : cette commande va décompresser l’archive nommée « documents.tar » située dans le répertoire Sauvegarde du home au sein du répertoire Documents. L’options -f indique que nous désirons donner le chemin d’accès pour la décompression.
D’autres utilitaires existent pour GNU/Linux, comme zip et unzip. Comme leur nom l’indique, ils permettent de manipuler les archives au format .ZIP plutôt que celles au format .TAR.
Soyez au top avec votre matériel
Pour terminer ce dossier, nous allons voir comment garder un œil sur le matériel et les processus en cours sur votre session. Essayez sans tarder la commande top, elle regorge d’informations utiles : processus actifs, quantité de mémoire utilisée, charge processeur de chaque processus… Si votre PC rame, la commande top vous donnera immédiatement des pistes sur le programme qui accapare les ressources de votre ordinateur. Vous pourrez même mettre fin à l’importun en le « tuant ». On vous rassure, il ne sentira rien !
Si vous observez le résultat de la commande top, vous verrez dans la première colonne un chiffre nommé « PID ». Celui-ci est propre à chaque processus. Pour mettre fin à un programme, il vous suffit dès lors de rentrer la commande suivante :
sudo kill -9 numéro-de-PID
Faites bien attention en utilisant cette commande, ne fermez pas les processus à tort et à travers, vous risquez de planter votre système. La commande kill avec l’option -9 ne doit être utilisée qu’en cas d’absolue nécessité. C’est un peu l’ordre 66 de GNU/Linux !
Notez aussi qu’il est possible de télécharger l’utilitaire htop, une version évoluée de top avec plus d’options et une interface plus sexy. Il se lance avec la commande htop tout simplement et fait ensuite appel à divers raccourcis claviers pour gérer les options depuis le Terminal.
Vous rencontrez un souci avec votre matériel ? Un bon début pour dégoter la panne consiste à afficher la liste des composants reconnus par votre distribution. Voici les commandes adéquates :
lsusb : lister les périphériques USB connectés au système
lshw : afficher tous les composants détectés sur l’ordinateur
ifconfig et iwconfig : lister les cartes réseau avec et sans-fil
Vous avez maintenant toutes les clés en main pour manier le Terminal, un outil qui se révèle incontournable même à notre époque !