Utilisation avancée de la ligne de commande : « In the Beginning there was Shell »

Le système de fichiers Linux

Savoir explorer le système de fichiers constitue une part importante de la compréhension de Linux.

Linux est configuré à l’aide de fichiers stockés dans certains répertoires (/etc), les binaires des programmes sont situés dans des répertoires (/usr/bin etc.), et même l’accès à des périphériques comme les disques durs, les adaptateurs réseaux etc. est fourni par des objets semblables à des fichiers dans un répertoire (/dev). Linux partage cette caractéristique avec la plupart des systèmes d’exploitation similaire à UNIX.

Un aperçu des répertoires que vous êtes susceptible d’utiliser est fourni par la liste suivante :

  • /home : comme son nom l’indique, c’est ici que résident votre configuration et vos fichiers utilisateur. Les données que vous stockez ici sont dans un sous-répertoire qui porte normalement le même nom que votre identifiant, tel que /home/myuser.

  • Chaque utilisateur possède son propre sous-répertoire dans /home. Les permissions de ces répertoires personnels sur Fedora sont définies de telle sorte qu’aucun utilisateur ne peut regarder les données d’autres utilisateurs (exceptés les utilisateurs avec des droits d’administrateur qui ont accès à tous les répertoires).

  • /etc : votre configuration globale du système est stockée ici. Nous parlons ici de configuration réseau, de la manière dont les disques durs sont « montés » dans le système de fichiers, du nom de votre ordinateur et bien plus encore.

Bien que Fedora KDE Plasma vous aide à paramétrer votre ordinateur via l’interface graphique de la configuration du système, vous pouvez choisir de modifier la configuration dans /etc manuellement en utilisant un éditeur de texte.

Pour en apprendre plus sur le système de fichiers Linux, jetez un œil au Filesystem Hierarchy Standard émis par The Linux Foundation. Il liste les répertoires du système présents sur votre ordinateur et explique leur raison d’être.

Le shell et l’émulateur de terminal

La ligne de commande côtoie les interfaces graphique des environnements de bureau. Pour permettra l’affichage et l’utilisation appropriée de la ligne de commande dans un environnement de bureau, deux composants sont nécessaires :

  • Un émulateur de terminal : un programme qui vous permet d’interagir avec…

  • Shell: the command processor for the command line.

L’émulateur de terminal traite vos entrées au clavier vers le shell, mais aussi les sorties que le shell génère en les affichant correctement dans une fenêtre de programme.

En utilisant le shell, vous débloquez toute la palette et la puissance des commandes Linux.

Les commandes shell permettent de :

  • naviguer dans le système de fichiers

  • copier, déplacer et supprimer des fichiers

  • modifier des fichiers

  • configurer votre ordinateur

  • afficher des informations

  • installer et supprimer des logiciels

  • se connecter à d’autres ordinateurs

Pour utiliser le shell, ouvrez le lanceur d’applications, naviguez jusqu’à « Système » et cliquez sur « Konsole ». Konsole est l’émulateur de terminal standard fourni avec KDE Plasma.

La commande man permet d’en savoir plus sur d’autres commandes. Elle vous permet d’afficher des « manpages » (pages de manuel) pour la plupart des commandes disponibles. Pour ouvrir la manpage de la commande ls, vous pouvez appeler la commande suivante :

$ man ls

Allez-y, exécutez cette commande et apprenez-en davantage sur ce que fait la commande ls (ou au moins sur les options que vous pouvez appeler avec ls).

Vous pouvez faire défiler la page de manuel avec la molette de souris, les touches directionnelles ou les touches de défilement Page précédente / Page suivante. Pour quitter la visualisation de la page de manuel, appuyez sur q.

Bash est le shell par défaut sur Fedora. Cependant, il existe également bien d’autres shells.

Voici une liste de commandes que nous vous encourageons d’explorer. Elles vous aideront à vous déplacer dans le système de fichiers de votre ordinateur :

  • ls

  • cd

  • cp

  • mv

  • rm (Prudence !)

  • cat

  • less

Lisez la page de manuel de chaque commande avant de l’utiliser !

Il existe deux éditeurs principaux que la plupart des personnes utilisent :

Les sites Web de chaque éditeur disposent de sections de documentation, et nous vous suggérons de vous familiariser avec l’un d’entre eux pour pouvoir modifier des fichiers dans le terminal.

Le shell EST un outil puissant. Vous avez le contrôle total sur votre système. Ceci comprend la capacité à supprimer vos fichiers ou casser votre système.

Mais n’ayez pas peur, soyez attentif.

Understand what a command does before using it. Don’t copy and paste instructions from the internet or AIs without knowing what they will do. Being able to work in the terminal is essential to tackle advanced workflows.

Si vous souhaitez tester des commandes shell mais que vous n’êtes pas sûr de vous, mettez la main sur le lecteur USB que vous avez utilisé pour installer Fedora, démarrez le système Live et explorez, ou alors visitez l’adresse [webminal]. Vous n’endommagerez pas votre installation tant que le disque dur ne sera pas monté (via la commande mount) sur votre système. Exécutez la commande man mount si vous voulez savoir de quoi il s’agit .

Qu’est-ce que sudo ?

sudo signifie en anglais « substitute user and do » (« se substituer à l’utilisateur pour faire »). De façon anecdotique, il peut aussi signifier « superuser do » (« faire en tant que super-utilisateur »).

L’appel de n’importe quelle commande précédée de sudo sera effectué en tant que superutilisateur, aussi connu comme « utilisateur root ». Seuls les administrateurs peuvent exécuter sudo. Ceci empêche des utilisateurs normaux de lancer des commandes qui pourraient endommager le système.

Commands that can permanently change the system usually require sudo. If you run a command, and the shell tells you "this command must be run as root", you need to prefix it with 'sudo' to actually use it. Before you do, think about what you are doing.

Soyez attentif lorsque vous copiez-collez des commandes précédées de sudo depuis Internet ou une IA. Il est possible que du code malveillant vienne s’ajouter à votre système Linux. Ne copiez pas du code que vous ne comprenez pas.

Référez-vous à la commande man sudo pour en apprendre davantage.

Gestion de paquets en lignes de commande

Pour vous montrer comment installer de nouveaux logiciels via la ligne de commande, nous vous donnerons les mêmes instructions que celles que l’on a utilisées pour installer les jeux cités dans la section Jeux ci-dessus. En revanche cette fois-ci, nous n’utiliserons pas Discover, mais la ligne de commande dans Konsole.

Puisque l’installation des paquets est une opération système qui peut être exécutée uniquement par des administrateurs, vous utiliserez la commande sudo.

Introduction à dnf

dnf signifie « dandified yum ». Ne demandez pas pourquoi . yum est le plus ancien gestionnaire de paquets pour une autre distribution Linux, Red Hat.

Un gestionnaire de paquets est un logiciel qui installe, gère, met à jour et supprime des logiciels.

Les commandes essentielles de dnf sont :

  • install

  • upgrade

  • remove

If you would like a deep-dive into dnf, DNF Commands is quite advanced.

Installation de logiciels via la ligne de commande

$ sudo dnf install <nom_du_logiciel>
  1. ex. pour installer :

$ sudo dnf install xeyes

and to remove e.g.:

$ sudo dnf remove xeyes

Installation de jeux en ligne de commande

Supertuxkart :

$ sudo dnf install supertuxkart

Oad :

$ sudo dnf install 0ad

Luanti :

$ sudo dnf install luanti

Xonotic :

$ sudo dnf install xonotic

Mise à jour de Fedora via la ligne de commande

$ sudo dnf upgrade

Visualisation des processus dans le shell

Chaque programme ou script en cours d’exécution sur Linux est appelé un processus. Un processus possède un certain nombre de propriétés, parmi lesquelles :

  • un identifiant de processus, le PID (« process ID »)

  • an owner

Lorsque le système démarre, le premier processus à être produit est « systemd ». Par conséquent, il a pour valeur de PID « 1 ». Tous les processus sont engendrés par un processus parent. Vous remarquerez plus tard que la plupart des processus système qui contribuent à faire fonctionner votre ordinateur ont comme processus parent le PID « 1 » (systemd).

Pour voir quels processus sont en cours d’exécution, saisissez la commande ps dans le shell après avoir lu sa page de manuel. Une manière courante d’appeler la commande ps est :

$ ps -elf

ce qui affichera des informations détaillées sur les processus.

Une autre commande utile pour voir les processus avec leurs statistiques respectives est la commande top. Elle vous affichera l’utilisation de la mémoire et du CPU, ainsi que les propriétaires et noms de processus, et leurs PID associés. Une version plus moderne de top est btop qui nécessite d’être installée en saisissant :

$ sudo dnf install btop

Exécutez btop dans Konsole et explorez les informations qui vous sont données.

Comment gérer les processus

Linux has its faults, so do programs. It can happen that programs crash and need to be terminated. You can do it by:

  • trouvant le PID via les commandes ps ou top

  • saisissant la commande kill

Malgré son nom, la commande kill n’est pas faite pour seulement tuer un processus. Elle envoie un dénommé signal à un processus. Imaginons que le programme de PID « 123 » ne réponde plus. Vous pouvez d’abord essayer de lui envoyer le signal SIGHUP pour y mettre fin :

$ kill -1 123

Notez que « -1 » est synonyme de « -SIGHUP ». Vérifiez à nouveau avec la commande ps : si le processus est toujours en cours d’exécution, il faut alors sortir l’artillerie lourde : SIGKILL :

$ kill -9 123