Table des matières


Introduction

Pour saisir des instructions Linux et les faire exécuter par le système, il faut préalablement ouvrir une ligne de commande (CLI). Il s’agit en effet d’un terminal qui permet aux utilisateurs d’écrire les commandes pour dicter à la machine les actions à réaliser.

Dans la barre de recherche des applications, vous pouvez facilement trouver un interpréteur de commande avec le mot clé « terminal ». Différents raccourcis permettent également de directement ouvrir une ligne de commande. Essayez « Ctrl + Alt + t » sur Ubuntu par exemple. Ce programme est aussi accessible dans la section Utilitaires sur toutes les distributions Linux.

Le premier message qui s’affiche au lancement de la console est appelé invite de commande. Avec une fonction claire, il donne des indications sur :

  • Le nom de l’utilisateur ;
  • Le nom de la machine ;
  • La nature du dossier courant (personnel ou étranger) ;
  • Le mode de connexion (simple utilisateur ou super utilisateur).

Une fois le terminal ouvert, vous pourrez utiliser l’une des nombreuses commandes Linux pour réaliser diverses actions. Pour la plupart, elles acceptent des paramètres (ou arguments) qui sont précédés d’un simple espace dans la syntaxe de la ligne de commande.

Ces paramètres sont majoritairement des chemins d’accès vers des dossiers ou fichiers. Les commandes Linux utilisent également des flags qui sont quant à eux précédés d’un (-) ou deux tirets (–). Ils spécifient certaines options sur ces instructions.

Dans la suite de ce document, vous retrouverez une liste des commandes linux de base que vous devez connaître, rangée par catégories. Vous pouvez utiliser la table des matières pour naviguer directement vers une commande où une catégorie.

pwd

Description

La commande pwd est utilisée pour afficher le dossier de travail en cours d’utilisation. Elle s’utilise comme ceci :

Tip

pwd

ls

Description

La commande ls est utilisée pour lister le contenu d’un dossier. ça donne des informations sur les dossiers et les fichiers, comme leur noms, leur permissions, qui le possède, etc…

Important

  • -l : format long
  • -a : inclus les fichiers cachés
  • -h : tailles lisibles par l’humain
  • -r : ordre inverse
  • -R : récursif

Vous pouvez spécifier plusieurs options dans une seule commande en utilisant toutes les lettres correspondant aux options voulues.

Tip

ls -lah

la sortie de cette commande peut se faire en couleur avec l’instruction “ls –color=auto”.

cd

Description

La commande cd est utilisée pour naviguer dans une arborescence de dossiers.

Important

  • cd ~ or cd : Navigue vers le dossier d’accueil de l’utilisateur courant

  • cd ~nom_utilisateur : Navigue vers le dossier d’accueil de l’utilisateur spécifié

  • cd / : Navigue vers le dossier racine

  • cd .. : Navigue vers le dossier parent du dossier actuel

  • cd - : Navigue vers le dossier précédent

  • cd nom_dossier : Navigue vers le dossier enfant spécifié

  • cd chemin/vers/dossier : Le chemin spécifié est ajouté au dossier en cours, naviguant plus profondément dans l’arborescence

  • cd /chemin/complet/vers/dossier : Remplace le chemin en cours par le chemin absolu spécifié Symboles spéciaux :

    • . : Référence le dossier actuel
    • ..: Référence le dossier parent
    • ~ : Représente le dossier d’accueil
    • - : Référence le dossier précédent

Tip

  • Utilises "Nom Dossier" ou Nom\ Dossier pour naviguer vers un dossier contenant un espace
  • Utilises la touche Tab pour auto-compléter les noms de dossiers

./

Description

La notation ./ n’est pas vraiment une commande, mais elle permet d’exécuter un fichier.

Tip

./script.sh

Warning

Vous pourrez potentiellement avoir besoin de modifier les permissions d’exécution de votre fichier


Recherche et Documentation

man

Description

La commande man est utilisée pour afficher la documentation de n’importe quelle commande.

Tip

man ls

Tip

La plupart des commandes supportent aussi l’option --help pour un résumé rapide des options

ls --help
pwd --help

grep

Description

La commande grep est un outil puissant utilisé pour effectuer des recherches de motifs dans des fichiers.

Important

  • -i : Ignore la casse
  • -v : Recherche les lignes sans le motif
  • -n : Ajoute le numéro de ligne avant chaque motif correspondant
  • -c : Compte les lignes
  • -r : Recherche récursive
  • -l : Affiche seulement le nom du fichier possédant le pattern

Tip

grep "ERROR" app.log
grep -ri "password" .

locate

Description

La commande locate est utilisée pour rechercher des fichiers et des dossiers.

Important

  • -i : Ignore la casse

Tip

locate example.txt

Gestion des dossiers et fichiers

mkdir

Description

La commande mkdir est utilisée pour créer des nouveaux dossiers. Vous pouvez créer un ou plusieurs dossiers à la fois.

Important

  • -p Crée des dossiers parents

Tip

mkdir logs
mkdir -p projects/linux/basics

touch

Description

La commande touch est un outil versatile utilisé pour créer de nouveaux fichiers ou mettre à jour l’horodatage de fichiers existants.

Important

  • -a: Mettre à jour la date d’accès au fichier
  • -m: Mettre à jour la date de modification du fichier
  • -d or -t: Définit les dates et heures d’accès et de modification à la date et à l’heure spécifiées
  • -c or -f: Crée le fichier s’il n’existe pas, sans afficher de message d’erreur

Tip

touch -m file.txt

cp

Description

La commande cp est utilisée pour copier des fichiers et des dossiers d’un endroit à un autre.

Important

  • -r copie récursive
  • -v verbeux

Tip

cp file.txt backup.txt
cp -rv src/ backup_src/

mv

Description

La commande mv est utilisée pour déplacer ou renommer des fichiers ou des dossiers.

Important

  • -i: Mode intéractif
  • -f: Mode forcé
  • -v: Mode verbeux

Tip

mv old.txt new.txt
mv file.txt /tmp/

rm

Caution

Toute suppression est permanante.

Description

La commande rm est un outil puissant, mais il doit être utilisé avec précaution car elle supprime les dossiers et les fichiers de manière permanante.

Important

  • -f: Force la suppression sans demande de confirmation.
  • -r: Supprime les dossiers et leur contenu de manière récursive
  • -i: Demande la confirmation avant de supprimer chaque dossier et fichier.

Tip

rm file1.txt file2.txt
rm -rf build/

cat

Description

La commande cat est utilisée pour visualiser le contenu d’un fichier sans ouvrir d’éditeur de texte.

Important

  • -n: Affiche les numéros de lignes
  • -E: Affiche le caractère $ à la fin de chaque ligne
  • -s: Regroupe plusieurs lignes vides adjacentes en une seule

Tip

cat file1.txt file2.txt

Permissions et Possessions

Contexte

Dans Linux, chaque dossier et fichier possède trois principales catégorie de permission :

  1. Propriétaire: L’utilisateur qui à crée le dossier ou le fichier.
  2. Groupe: Le groupe auquel le propriétaire appartient.
  3. Autres: Tous les autres utilisateurs du système.

Chacune de ces catégories possède trois types de permissions :

  1. Lire (r): Autorise l’utilisateur à voir le contenu du fichier ou à lister les fichiers dans son dossier parent.
  2. Écrire (w): Autorise l’utilisateur à modifier le contenu du fichier ou à créer / supprimer les fichiers dans un dossier.
  3. Executer (x): Autorise l’utilisateur à exécuter le fichier comme un programme ou accéder au contenu d’un dossier.

Vous pouvez voir les permissions d’un dossier ou d’un fichier en utilisant la commande ls -l. La sortie vous montrera les permissions au format suivant :

Tip

-rw-r--r-- 1 labex labex 0 Apr 24 12:34 example.txt

Les 10 premiers caractères représentent les permissions du dossier ou du fichier :

  • Le 1er caractère indique son type (- pour un fichier, d pour un dossier).
  • Les 3 caractères suivants représentent les permissions du propriétaire.
  • Les 3 caractères d’après représentent les permissions du groupe.
  • Les 3 derniers caractères représentent les permissions des autres.

sudo

Description

La commande sudo est essentielle pour administrer des tâches, car cela permet à l’utilisateur de faire des actions demandant des privilèges importants, comme installer un logiciel, modifier une configuration système, ou accéder à des ressources protégées.

Tip

sudo apt update
sudo rm /protected/file

chmod

Description

La commande chmod permet de modifier les permissions de lecture, d’écriture et d’éxecution pour le propriétaire, le groupe, et les autres.

Important

Mode symbolique :

  • u représente le propriétaire

  • g représente le groupe

  • o represente les autres

  • a représente tout (propriétaire, groupe et autres)

  • + ajoute les permissions spécifiées

  • - supprime les permissions spécifiées

  • = applique les permissions spécifiées Mode numérique :

  • Chaque permission (lire, écrire et exécuter) est représentée par un chiffre : 4 pour lire, 2 pour écrire et 1 pour exécuter. Il faut ajouter ces chiffres pour obtenir les permissions souhaitées.

  • Les permissions du propriétaire, du groupe et des autres sont représentées par un nombre à 3 chiffres, correspondant chacun à l’addition des permissions évoquées précédemment.

Tip

chmod 755 exemple.txt
chmod +x exemple.txt
chmod u=rw,g=r,o-rwx exemple.txt

chown

Description

La commande chown est utilisée pour changer le propriétaire et le groupe d’un fichier.

Tip

sudo chown user file.txt
sudo chown user:group file.txt

Editeurs de texte

nano

Description:

La commande nano ouvrira l’éditeur de texte nano, qui est un éditeur de texte sur terminal adapté aux débutants. Il est possible qu’elle ne soit pas installée par défaut, il faudra alors l’installer par vous même (notamment via la commande apt)

Important

  • Ctrl + O sauvegarder
  • Ctrl + X quitter

Tip

nano file.txt

vi

Description

La commande vi ouvrira l’éditeur de texte vi, qui est un éditeur de texte disponible sur presque tous les systèmes Unix.

Important

  • Esc : Mode de commande
    • :wq : sauvegarder et quitter
    • :q! : quitter sans sauvegarder
    • arrows : déplace le curseur OU h pour le déplacer vers la gauche, j pour le déplacer vers le bas, k pour le déplacer vers le haut, et l to le déplacer vers la droite.
    • w : déplacer le curseur au début du prochain mot.
    • b : déplacer le curseur au début du mot précédent.
    • 0 : déplacer le curseur au début de la ligne.
    • $ : déplacer le curseur à la fin de la ligne.
  • i : Mode d’insertion
    • x : supprimer le caractère sous le curseur.
    • dd : supprime la ligne entière.
    • yy : copie la ligne.
    • p : colle le texte copié.

Tip

vi exemple.txt

Gestion de process et de systèmes

top / htop

Description

La commande top affiche de nombreuses informations du système, incluant :

  • Up: Le temps depuis que le système à été démarré.
  • Tasks: Le nombre total de processus, en cours (running), dormants (sleeping), arrêtés (stopped), et zombies (zombie - processus terminé, mais pas entièrement retiré de la mémoire.)
  • %Cpu(s): Le pourcentage de temps de CPU passé dans le mode utilisateur (us), mode système (sy), mode sympa (ni), mode inactif (id), mode d’attente (wa), en interruption matérielle (hi), en interruption logicielle (si), et en mode volé (st - utile pour les machines virtuelles)
  • Mib Mem: La mémoire totale (total), libre (free), utilisée (used) et en cache (buff/cache).
  • Mib Swap: L’utilisation totale, libre (free) et utilisée (used) du swap.
  • Process list: Une liste des processus les plus gourmands, trié par utilisation mémoire ou CPU.
top - 14:22:37 up 1 day, 12:34, 0 users, load average: 0.00, 0.01, 0.05
Tasks: 101 total, 1 running, 99 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1992.0 total, 1537.0 free, 235.0 used, 220.0 buff/cache
MiB Swap: 2047.9 total, 2047.9 free, 0.0 used. 1555.3 avail Mem
 
	PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
	1   root      20   0    8788   5688   3828 S   0.0   0.3   0:02.14 systemd 
    2   root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd 
    3   root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_gp 
    4   root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp 
    5   root      20   0       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq

Important

  • -h: Affiche le menu d’aide.
  • -1: Bascule entre l’utilisation par CPU et l’utilisation globale du CPU.
  • -f: Gère les colonnes affichées.
  • -o: Personnalise l’ordre de tri.
  • -u: Filtre les processus par utilisateur spécifique.

Quand top affiche une liste statique qui est actualisée périodiquement, htop offre une expérience interactive moderne. Vous pouvez naviguer à l’aide des touches fléchées ou de la souris, filtrer en temps réel, trier par n’importe quelle colonne et agir directement sur les processus sans quitter l’interface.

pourquoi htop est-il meilleur ?

Navigation visuelle: Au lieu de taper des commandes, vous naviguez à l’aide des touches fléchées et effectuez des actions à l’aide des touches de fonction. Couleurs significatives : chaque couleur a une signification (vert = processus utilisateur, rouge = noyau, bleu = faible priorité).

Filtrage instantané: Tapez F4 puis un nom, et seuls les processus correspondants s’affichent.

Actions groupées : Sélectionnez plusieurs processus avec la barre d’espace, puis supprimez les tous en même temps avec F9.

Remarque: Alors que top est installé par défaut sur toutes les machines, ce n’est pas le cas de htop. Vous devrez utiliser deux commandes pour l’installer :

Important

sudo apt update
sudo apt install htop

Tip

top
htop

kill

Description

La commande kill sert à terminer ou à envoyer des signaux aux processus en cours d’exécution. Pour arrêter un processus, vous devez saisir soit son nom, soit son nom binaire.

Important

  • -9 forcer le kill

Tip

kill 5339436
kill -9 firefox

Accès à distance et tests réseau

ssh

Description

La commande ssh est utilisée pour se connecter en toute sécurité à des serveurs Linux distants et transférer des fichiers entre des hôtes locaux et distants.

Important

Pour quitter la session SSH, tapez Ctrl+C puis Entrer.

Tip

ssh user@ip_adress
ssh user@domain_name

ping

Description

La commande ping est un outil de diagnostic réseau utilisé pour tester la connectivité entre un hôte local et un hôte distant. Elle envoie des paquets de requête d’écho ICMP (Internet Control Message Protocol) à l’hôte cible et attend la réponse d’écho ICMP.

Tip

ping google.com

Les bonnes astuces à utiliser sur un terminal Linux

Lorsque vous exécutez des commandes Linux, il est assez courant de se retrouver avec une console visuellement chargée. Vous pouvez utiliser la commande « clear » pour vider les messages à l’écran du terminal.

Linux propose aussi des suggestions ou auto complétions pertinentes avec la touche tabulation « Tab » du clavier. Par ailleurs, comme raccourcis clavier, vous pouvez utiliser :

Tip

  • Ctrl + A : Aller au début de la ligne ;
  • Ctrl + E : Aller à la fin de la ligne ;
  • Ctrl + Z : Mettre une commande en cours d’exécution en pause ;
  • Ctrl + C : Arrêter une commande en cours d’exécution ;
  • Ctrl + E : Aller à la fin de la ligne ;
  • Ctrl + S : Bloquer le terminal ;
  • Ctrl + Q : Débloquer le terminal.

Par ailleurs, plutôt que d’exécuter des commandes Linux les unes après les autres, vous pouvez les exécuter en une seule ligne en les séparant par des « ; ». Utilisez plutôt « && » si vous souhaitez que la commande suivante s’exécute à condition que la précédente ait abouti.


Conclusion

Si l’apprentissage des principales commandes Linux peut prendre un certain temps, le processus est relativement simple et assez agréable.

En effet, vous parviendrez vite à maîtriser les commandes et les principaux outils Linux. Toutefois, vous ne cesserez jamais d’apprendre et de découvrir de nouvelles choses avec ce puissant système d’exploitation.

En attendant, connaître et maîtriser les principales commandes Linux devrait grandement améliorer votre productivité et être d’une grande utilité.


Ressources

Voici un lien vers une cheat sheet des commandes Linux (certaines pages ne sont pas traduites en français):