Aller au contenu

Commandes de base Linux

De Wiki Pat-Informatik
🏠 Accueil 📚 Index 🐧 Linux 🌐 Réseau 🔒 Cybersécurité 🖥️ Virtualisation ✅ Checklists d'intervention 📚 Tutoriels 🤝 Services

🐧 COMMANDES DE BASE LINUX

Le guide pratique du terminal Linux


Le terminal Linux permet de gérer les fichiers, administrer le système, installer des logiciels, surveiller les ressources et configurer les services.

Ce guide rassemble les commandes essentielles pour débuter sous Linux, notamment sur Ubuntu Server et Debian.

Objectif : apprendre à utiliser les principales commandes Linux, comprendre leur rôle et savoir les adapter à ses besoins.

1. Comprendre le terminal Linux

Le terminal est une interface dans laquelle on saisit des commandes pour demander au système d'effectuer des opérations.

Une commande Linux peut contenir :

  • Le nom du programme à exécuter.
  • Des options qui modifient son comportement.
  • Des arguments, comme un fichier ou un répertoire.
  • Éventuellement, des privilèges administratifs.

Exemple :

ls -lah /var/log

Dans cet exemple :

  • `ls` affiche le contenu d'un répertoire.
  • `-l` demande un affichage détaillé.
  • `-a` affiche également les fichiers cachés.
  • `-h` présente les tailles dans un format lisible.
  • `/var/log` indique le répertoire à afficher.

Les commandes avec sudo

`sudo` permet à un utilisateur autorisé d'exécuter une commande avec des privilèges élevés.

Exemple :

sudo apt update

Le mot de passe demandé est généralement celui de l'utilisateur courant, et non celui du compte `root`.

Attention : une commande exécutée avec `sudo` peut modifier le système. Lis toujours la commande avant de la valider, particulièrement lorsqu'elle supprime des fichiers ou modifie le réseau.

2. Se déplacer dans les répertoires

Ces commandes permettent de naviguer dans l'arborescence Linux.

Commande Fonction Exemple
`pwd` Affiche le répertoire courant. `pwd`
`ls` Liste les fichiers et répertoires. `ls`
`ls -l` Affiche les détails des fichiers. `ls -l`
`ls -lah` Affiche les fichiers cachés et les tailles lisibles. `ls -lah`
`cd` Accède au répertoire personnel. `cd`
`cd /etc` Accède à un répertoire précis. `cd /etc`
`cd ..` Remonte d'un niveau. `cd ..`
`cd -` Revient au répertoire précédent. `cd -`

Exemple pratique

pwd
ls -lah
cd /var
pwd
cd ..

Comprendre les chemins

| Chemin | Signification | |- | `/` | Racine du système. | `~` | Répertoire personnel de l'utilisateur. | `.` | Répertoire courant. | `..` | Répertoire parent. | `/etc` | Répertoire des configurations système. | `/home` | Répertoires personnels des utilisateurs. | `/var/log` | Répertoire courant de nombreux journaux système et applicatifs.

3. Créer, copier, déplacer et supprimer des fichiers

Commande Fonction Exemple
`touch` Crée un fichier vide s'il n'existe pas. `touch test.txt`
`mkdir` Crée un répertoire. `mkdir documents`
`mkdir -p` Crée un répertoire et ses parents si nécessaire. `mkdir -p projets/linux`
`cp` Copie un fichier. `cp source.txt copie.txt`
`cp -r` Copie un répertoire et son contenu. `cp -r dossier sauvegarde`
`mv` Déplace ou renomme un fichier. `mv ancien.txt nouveau.txt`
`rm` Supprime un fichier. `rm test.txt`
`rmdir` Supprime un répertoire vide. `rmdir vide`
`file` Identifie le type d'un fichier. `file document.pdf`

Exemple pratique

mkdir -p ~/exercices/linux
cd ~/exercices/linux
touch test.txt
cp test.txt copie.txt
mv copie.txt sauvegarde.txt
ls -l

Supprimer un répertoire

La commande suivante supprime un répertoire et son contenu :

rm -r dossier

Danger : `rm -r` peut supprimer de nombreux fichiers. Vérifie toujours le chemin avant de valider. Évite d'utiliser des commandes de suppression avec des chemins larges ou des jokers que tu n'as pas vérifiés.

4. Lire et modifier le contenu des fichiers

Commande Fonction Exemple
`cat` Affiche le contenu d'un fichier. `cat fichier.txt`
`less` Consulte un fichier page par page. `less /var/log/syslog`
`head` Affiche le début d'un fichier. `head fichier.txt`
`head -n 20` Affiche les 20 premières lignes. `head -n 20 fichier.txt`
`tail` Affiche les dernières lignes. `tail fichier.txt`
`tail -f` Suit les nouvelles lignes ajoutées à un fichier. `tail -f journal.log`
`nano` Ouvre un éditeur de texte dans le terminal. `nano fichier.txt`
`wc -l` Compte les lignes. `wc -l fichier.txt`

Modifier un fichier avec nano

nano notes.txt

Dans Nano, les raccourcis courants sont :

  • `Ctrl + O` : enregistrer.
  • `Entrée` : confirmer le nom du fichier.
  • `Ctrl + X` : quitter.
  • `Ctrl + W` : rechercher du texte.

Lire un journal en direct

sudo tail -f /var/log/syslog

Cette commande est utile pour observer les nouveaux messages ajoutés au journal, si ce fichier est utilisé par la distribution et la configuration installées.

Pour arrêter l'affichage, appuie sur `Ctrl + C`.

5. Rechercher des fichiers et du texte

Commande Fonction Exemple
`find` Recherche des fichiers selon des critères. `find /home -name "*.txt"`
`grep` Recherche du texte correspondant à un motif. `grep "erreur" journal.log`
`grep -i` Recherche sans tenir compte de la casse. `grep -i "erreur" journal.log`
`grep -n` Affiche les numéros des lignes correspondantes. `grep -n "Listen" fichier.conf`
`which` Recherche une commande dans le PATH. `which python3`
`whereis` Recherche certains emplacements associés à un programme. `whereis apache2`

Exemple : rechercher un fichier

find ~/Documents -name "*.pdf"

Exemple : rechercher une ligne dans un fichier

grep -n "ServerName" /etc/apache2/apache2.conf

Pour rechercher un texte dans plusieurs fichiers de configuration, il est également possible d'utiliser `grep -R`, en limitant la recherche aux répertoires utiles.

6. Gérer les utilisateurs et les groupes

Commande Fonction
`whoami` Affiche le nom de l'utilisateur courant.
`id` Affiche l'identifiant et les groupes de l'utilisateur.
`who` Affiche les utilisateurs connectés.
`w` Affiche les connexions et certaines informations d'activité.
`groups` Affiche les groupes de l'utilisateur.
`passwd` Modifie le mot de passe de l'utilisateur courant.
`sudo adduser nom` Crée un utilisateur sur Ubuntu et Debian.
`sudo deluser nom` Supprime un utilisateur selon les options utilisées.

Exemples

Afficher l'utilisateur courant :

whoami

Afficher les groupes de l'utilisateur :

id
groups

Créer un compte utilisateur :

sudo adduser pierre

Modifier son mot de passe :

passwd

La création et la suppression de comptes doivent être réalisées avec prudence sur un serveur en production.

7. Gérer les permissions et les propriétaires

Linux associe des permissions aux fichiers et répertoires.

Les trois permissions principales sont :

  • `r` : lecture.
  • `w` : écriture.
  • `x` : exécution, ou traversée pour un répertoire.

Les droits sont définis pour le propriétaire, le groupe et les autres utilisateurs.

Commande Fonction
`ls -l` Affiche les permissions et le propriétaire.
`chmod` Modifie les permissions.
`chown` Modifie le propriétaire.
`chgrp` Modifie le groupe propriétaire.

Exemples

Afficher les droits :

ls -l fichier.txt

Attribuer des permissions `640` :

chmod 640 fichier.txt

Modifier le propriétaire :

sudo chown pierre:pierre fichier.txt

Comprendre chmod 640

| Valeur | Droits | Signification | |- | `6` | `rw-` | Le propriétaire peut lire et écrire. | `4` | `r--` | Le groupe peut lire. | `0` | `---` | Les autres n'ont aucun droit.

Les permissions doivent être adaptées à l'utilisation du fichier. Pour un site Web ou un service, il faut aussi tenir compte de l'utilisateur sous lequel le service s'exécute.

8. Installer et mettre à jour les logiciels

Sur Ubuntu et Debian, APT permet de gérer les paquets logiciels.

Commande Fonction
`sudo apt update` Actualise la liste des paquets disponibles.
`sudo apt upgrade` Installe les mises à jour proposées.
`sudo apt install nom` Installe un paquet.
`sudo apt remove nom` Supprime un paquet.
`sudo apt purge nom` Supprime un paquet et ses configurations gérées par APT.
`sudo apt autoremove` Supprime certains paquets devenus inutiles.
`apt search mot` Recherche des paquets.
`apt show nom` Affiche des informations sur un paquet.

Exemple : installer curl

sudo apt update
sudo apt install curl

Vérifier la version installée :

curl --version

Conseil : sur un serveur de production, lis les opérations proposées par APT et planifie les mises à jour susceptibles d'affecter des services importants.

9. Surveiller le système et les ressources

Commande Fonction
`top` Affiche les processus et l'utilisation des ressources.
`ps aux` Liste les processus en cours.
`free -h` Affiche l'utilisation de la mémoire.
`df -h` Affiche l'espace disque des systèmes de fichiers.
`du -sh dossier` Affiche la taille totale d'un répertoire.
`uptime` Affiche le temps de fonctionnement et la charge système.
`lscpu` Affiche des informations sur le processeur.
`lsblk` Affiche les disques et les périphériques de blocs.
`vmstat` Affiche diverses statistiques système, si disponible.

Vérifier l'espace disque

df -h

Identifier les répertoires volumineux

sudo du -sh /var/log
sudo du -sh /var/cache/apt

Afficher les processus

ps aux

Pour rechercher un processus par son nom :

pgrep -a apache2

10. Gérer les services avec systemctl

De nombreux services Linux sont gérés par `systemd`.

Commande Fonction
`systemctl status nom` Affiche l'état d'un service.
`sudo systemctl start nom` Démarre un service.
`sudo systemctl stop nom` Arrête un service.
`sudo systemctl restart nom` Redémarre un service.
`sudo systemctl reload nom` Demande au service de recharger sa configuration, si cette opération est prise en charge.
`sudo systemctl enable nom` Active le démarrage automatique.
`sudo systemctl disable nom` Désactive le démarrage automatique.
`systemctl --failed` Liste les unités en échec.

Exemple avec Apache

sudo systemctl status apache2
sudo systemctl restart apache2

Avant de redémarrer un service important, vérifie la configuration et prévois les conséquences d'une interruption.

11. Réseau : commandes indispensables

Commande Fonction
`ip addr` Affiche les interfaces et les adresses IP.
`ip route` Affiche les routes réseau.
`ping adresse` Teste la connectivité ICMP vers une destination.
`ss -tulpn` Affiche les sockets en écoute et certaines informations de processus.
`hostname -I` Affiche les adresses IP associées à la machine.
`getent hosts nom` Recherche une adresse associée à un nom à l'aide des mécanismes système.
`curl -I URL` Affiche les en-têtes HTTP renvoyés par une URL.
`resolvectl status` Affiche l'état DNS avec systemd-resolved, si utilisé.

Afficher les adresses IP

ip addr
hostname -I

Afficher la passerelle et les routes

ip route

Tester la connectivité

ping -c 4 1.1.1.1

Cette commande envoie quatre requêtes ICMP. L'absence de réponse ne signifie pas toujours que la destination est inaccessible : certains réseaux filtrent ce trafic.

Vérifier les ports en écoute

sudo ss -tulpn

Cette commande aide à identifier les services qui écoutent sur le serveur.

12. Consulter les journaux système

Les journaux sont essentiels pour diagnostiquer les problèmes.

Commande Fonction
`journalctl -b` Affiche les journaux depuis le démarrage actuel.
`journalctl -p err` Affiche les messages de niveau erreur ou plus grave.
`journalctl -u apache2` Affiche les journaux associés au service Apache.
`journalctl -f` Suit les nouveaux messages en direct.
`dmesg` Affiche les messages du noyau, selon les permissions et la configuration.

Exemple : rechercher les erreurs

sudo journalctl -p err -b

Exemple : consulter Apache

sudo journalctl -u apache2 -n 50

Pour quitter un affichage en direct, utilise `Ctrl + C`.

13. Archiver et sauvegarder des fichiers

Commande Fonction
`tar -czf` Crée une archive compressée gzip.
`tar -xzf` Extrait une archive gzip.
`gzip` Compresse un fichier.
`gunzip` Décompresse un fichier gzip.
`rsync` Synchronise des fichiers et des répertoires.
`scp` Copie des fichiers via SSH.

Créer une archive

tar -czf documents.tar.gz documents/

Extraire une archive

tar -xzf documents.tar.gz

Copier un répertoire avec rsync

rsync -av documents/ sauvegarde-documents/

Copier un fichier vers un serveur distant

scp fichier.txt utilisateur@192.168.1.20:/home/utilisateur/

Important : une synchronisation n'est pas toujours une sauvegarde suffisante. Pour protéger les données, utilise une destination distincte, prévois plusieurs versions et teste la restauration.

14. Redirections et tubes

Linux permet de combiner les commandes et de rediriger leurs résultats.

Symbole Fonction Exemple
`>` Écrit la sortie dans un fichier en remplaçant son contenu. `ls > fichiers.txt`
`>>` Ajoute la sortie à la fin d'un fichier. `date >> journal.txt`
` Transmet la sortie d'une commande à une autre. less`
`2>` Redirige les messages d'erreur. `commande 2> erreurs.txt`
`&>` Redirige la sortie standard et les erreurs dans Bash. `commande &> resultat.txt`

Exemple : rechercher un processus

ps aux | grep apache2

Exemple : enregistrer un résultat

ip addr > reseau.txt

Attention : le symbole `>` remplace le contenu du fichier de destination. Vérifie le nom du fichier avant de l'utiliser.

15. Raccourcis utiles du terminal

Raccourci Fonction
`Tab` Complète un nom de fichier ou une commande lorsque c'est possible.
`Flèche haut` Rappelle une commande précédente.
`Ctrl + C` Interrompt généralement le programme au premier plan.
`Ctrl + D` Envoie généralement une fin de fichier ou termine un shell interactif.
`Ctrl + L` Efface l'affichage du terminal.
`Ctrl + R` Recherche dans l'historique des commandes avec les shells compatibles, notamment Bash.
`man commande` Affiche le manuel d'une commande.
`commande --help` Affiche une aide succincte si la commande prend cette option en charge.

Exemple : consulter le manuel

man ls

Pour quitter le manuel, appuie généralement sur `q`.

16. Variables et informations d'environnement

Les variables d'environnement donnent des informations au shell et aux programmes.

Commande Fonction
`echo $HOME` Affiche le répertoire personnel.
`echo $USER` Affiche le nom de l'utilisateur courant.
`echo $PATH` Affiche les répertoires de recherche des commandes.
`env` Affiche les variables d'environnement exportées.
`date` Affiche la date et l'heure système.
`history` Affiche l'historique des commandes du shell.

Exemple

echo $HOME
echo $USER
date

Évite de placer des mots de passe ou des secrets dans l'historique du shell ou dans des scripts accessibles à d'autres utilisateurs.

17. Arrêter ou redémarrer le système

Ces commandes doivent être utilisées avec précaution, particulièrement sur un serveur hébergeant des services accessibles à d'autres personnes.

Commande Fonction
`uptime` Vérifie le temps de fonctionnement.
`sudo reboot` Redémarre le système.
`sudo poweroff` Arrête le système.
`sudo shutdown -h now` Demande un arrêt immédiat.
`sudo shutdown -r now` Demande un redémarrage immédiat.

Avant d'arrêter un serveur, préviens les utilisateurs concernés, vérifie les tâches en cours et assure-toi de disposer d'un accès pour le redémarrer.

18. Les commandes à utiliser avec prudence

Commandes sensibles :

  • `rm -r` : supprime récursivement des fichiers et des répertoires.
  • `chmod -R` : modifie récursivement les permissions.
  • `chown -R` : modifie récursivement le propriétaire et éventuellement le groupe.
  • `mkfs` : crée un système de fichiers et peut rendre les données présentes inaccessibles.
  • `dd` : copie des données de bas niveau ; une mauvaise destination peut détruire des données.
  • `fdisk` et `parted` : permettent de modifier le partitionnement.
  • `sudo` : peut autoriser des opérations administratives importantes.

Ne copie jamais une commande destructrice sans comprendre chaque argument et vérifier la cible.

19. Exercices pratiques

Ces exercices peuvent être réalisés dans un répertoire personnel, sans modifier les fichiers système.

Exercice 1 : créer une arborescence

Objectif : créer un répertoire de travail avec deux sous-répertoires.

mkdir -p ~/atelier/linux/fichiers
mkdir -p ~/atelier/linux/archives

Vérifier le résultat :

ls -lah ~/atelier/linux

Exercice 2 : créer et copier un fichier

cd ~/atelier/linux/fichiers
touch exemple.txt
cp exemple.txt exemple-copie.txt
ls -l

Exercice 3 : créer une archive

cd ~/atelier/linux
tar -czf archives/fichiers.tar.gz fichiers/

Vérifier le contenu de l'archive :

tar -tzf archives/fichiers.tar.gz

Exercice 4 : observer le système

whoami
hostname
free -h
df -h
ip addr

Ces commandes permettent d'identifier l'utilisateur, la machine, les ressources et les interfaces réseau.

20. Tableau récapitulatif

Besoin Commande à retenir
Afficher le dossier courant `pwd`
Lister les fichiers `ls -lah`
Changer de répertoire `cd`
Créer un répertoire `mkdir`
Copier un fichier `cp`
Déplacer ou renommer `mv`
Supprimer un fichier `rm`
Lire un fichier `cat` ou `less`
Modifier un texte `nano`
Rechercher un fichier `find`
Rechercher du texte `grep`
Connaître l'utilisateur `whoami`
Voir les permissions `ls -l`
Mettre à jour la liste des paquets `sudo apt update`
Installer un logiciel `sudo apt install nom`
Vérifier la mémoire `free -h`
Vérifier le disque `df -h`
Voir les adresses IP `ip addr`
Voir les ports en écoute `sudo ss -tulpn`
Vérifier un service `systemctl status nom`
Consulter les journaux `journalctl`
Afficher l'aide `man commande`

21. Ressources et documentation

22. Pages associées