Linux
| 🏠 Accueil | 📚 Index | 🐧 Linux | 🌐 Réseau | 🔒 Cybersécurité | 🖥️ Virtualisation | ✅ Checklists d'intervention | 📚 Tutoriels | 🤝 Services |
|---|
Objectif de cette page
Découvrir Linux, comprendre son fonctionnement et apprendre à utiliser les principales commandes pour administrer un ordinateur ou un serveur. Ce guide s'adresse aux débutants comme aux utilisateurs qui souhaitent approfondir leurs connaissances.
1. Qu'est-ce que Linux ?
Linux est un système de type Unix construit autour du noyau Linux. Il gère les ressources matérielles de l'ordinateur, les processus, la mémoire, les périphériques et les communications avec le matériel.
Dans le langage courant, le terme Linux désigne généralement un système complet associant le noyau Linux, des outils système, des bibliothèques, des logiciels et éventuellement un environnement graphique.
Linux est utilisé sur de nombreux équipements :
- Ordinateurs personnels.
- Serveurs web et serveurs de messagerie.
- Serveurs de fichiers et de bases de données.
- Routeurs, équipements réseau et systèmes embarqués.
- Machines virtuelles et infrastructures cloud.
- Supercalculateurs.
Les avantages de Linux
- Système largement disponible gratuitement.
- Code source du noyau accessible publiquement.
- Grande souplesse de configuration.
- Nombreux outils d'administration en ligne de commande.
- Gestion avancée des utilisateurs et des permissions.
- Automatisation des tâches grâce aux scripts.
- Large choix de distributions adaptées aux différents besoins.
À retenir : Linux n'est pas une distribution unique. Ubuntu, Debian, Fedora et Linux Mint sont des exemples de distributions qui utilisent le noyau Linux.
2. Les principales distributions Linux
Une distribution Linux regroupe le noyau, les logiciels système, un gestionnaire de paquets et des outils de configuration.
| Distribution | Utilisation principale | Gestionnaire de paquets |
|---|---|---|
| Ubuntu | Ordinateurs personnels et serveurs | APT / dpkg |
| Debian | Serveurs et postes de travail | APT / dpkg |
| Installation de Linux Mint | Ordinateurs personnels et découverte de Linux | APT / dpkg |
| Fedora | Poste de travail, développement et expérimentation | DNF / RPM |
| Rocky Linux | Serveurs et environnements professionnels | DNF / RPM |
| Arch Linux | Utilisateurs avancés souhaitant personnaliser leur système | pacman |
| 🚀 Projets et technologies à découvrir | |||
|---|---|---|---|
|
Ubuntu et Ubuntu Server
Ubuntu est une distribution basée sur Debian. Elle existe notamment en version de bureau et en version serveur.
Ubuntu Server est particulièrement adapté à l'hébergement de services tels que :
- Serveur web Apache.
- Serveur SSH.
- Serveur de messagerie.
- Serveur de fichiers.
- Applications web et bases de données.
Pour approfondir, consulter Ubuntu Server.
3. Les éditions et environnements Linux
Linux peut être utilisé avec ou sans interface graphique.
| Type | Description |
|---|---|
| Distribution de bureau | Inclut généralement une interface graphique, des applications et des outils multimédias |
| Distribution serveur | Peut être installée sans environnement graphique afin de privilégier les services et l'administration à distance |
| Distribution spécialisée | Adaptée à des usages particuliers : sécurité, réseau, embarqué ou récupération système |
Environnements de bureau
Plusieurs environnements graphiques sont disponibles :
- GNOME.
- KDE Plasma.
- Xfce.
- Cinnamon.
- MATE.
Ils permettent de gérer les fenêtres, les applications, les fichiers et les paramètres du système.
4. Le terminal Linux
Le terminal permet d'exécuter des commandes pour consulter le système, gérer les fichiers, installer des logiciels et administrer les services.
Le shell interprète les commandes saisies. Bash est l'un des shells les plus courants.
Ouvrir un terminal
Sur un ordinateur de bureau, le terminal est généralement accessible depuis le menu des applications.
Sur un serveur, l'administration peut être réalisée directement en console ou à distance avec SSH.
Comprendre une commande
Une commande comporte généralement un nom, des options et éventuellement des arguments.
Exemple :
ls -l /home
- `ls` : affiche le contenu d'un répertoire.
- `-l` : demande un affichage détaillé.
- `/home` : indique le répertoire à examiner.
Les options et leur syntaxe peuvent varier selon les commandes. La documentation locale permet de vérifier leur fonctionnement.
Obtenir de l'aide
commande --help man commande
Exemples :
ls --help man ls
Pour quitter une page `man`, appuyer sur la touche `q`.
5. Les commandes Linux indispensables
Se repérer dans les répertoires
| Commande | Fonction | Exemple |
|---|---|---|
| `pwd` | Affiche le répertoire courant | `pwd` |
| `ls` | Liste les fichiers | `ls` |
| `ls -la` | Affiche aussi les fichiers cachés, avec détails | `ls -la` |
| `cd` | Change de répertoire | `cd /home` |
| `cd ..` | Remonte au répertoire parent | `cd ..` |
| `cd ~` | Retourne au répertoire personnel | `cd ~` |
Créer, copier, déplacer et supprimer
| Commande | Fonction | Exemple |
|---|---|---|
| `mkdir` | Crée un répertoire | `mkdir Documents` |
| `touch` | Crée un fichier vide s'il n'existe pas | `touch test.txt` |
| `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 ancien_dossier` |
Attention : la suppression avec `rm` ne passe généralement pas par une corbeille. Vérifie toujours le chemin avant d'exécuter une commande destructive. N'utilise pas de commande de suppression récursive ou forcée sans en comprendre les conséquences.
Lire et rechercher dans les fichiers
| Commande | Fonction |
|---|---|
| `cat fichier.txt` | Affiche le contenu d'un fichier |
| `less fichier.txt` | Consulte un fichier page par page |
| `head fichier.txt` | Affiche les premières lignes |
| `tail fichier.txt` | Affiche les dernières lignes |
| `tail -f fichier.log` | Suit les nouvelles lignes ajoutées à un journal |
| `grep "erreur" fichier.log` | Recherche un texte dans un fichier |
| `find /home -name "*.txt"` | Recherche des fichiers selon leur nom |
Afficher la date et l'identité de la machine
date hostname whoami uname -a
Ces commandes permettent respectivement d'afficher la date, le nom de la machine, l'utilisateur courant et des informations sur le noyau.
Pour approfondir les commandes de base, consulter Commandes de base Linux.
6. Comprendre l'arborescence Linux
Contrairement à Windows, Linux organise les fichiers dans une arborescence unique qui commence à la racine `/`.
| Répertoire | Rôle |
|---|---|
| `/` | Racine de l'arborescence |
| `/home` | Répertoires personnels des utilisateurs |
| `/root` | Répertoire personnel du superutilisateur root |
| `/etc` | Fichiers de configuration système |
| `/var` | Données variables, journaux et files d'attente |
| `/var/log` | Journaux système et applicatifs |
| `/tmp` | Fichiers temporaires |
| `/usr` | Applications, bibliothèques et ressources système |
| `/bin` | Commandes essentielles, parfois liées à `/usr/bin` |
| `/sbin` | Outils d'administration, parfois liés à `/usr/sbin` |
| `/dev` | Fichiers représentant des périphériques |
| `/proc` | Informations virtuelles sur les processus et le noyau |
| `/sys` | Informations sur le matériel et le noyau |
| `/mnt` | Point de montage temporaire couramment utilisé |
| `/media` | Point de montage fréquent pour les supports amovibles |
| `/boot` | Fichiers nécessaires au démarrage |
| `/opt` | Logiciels complémentaires selon leur mode d'installation |
Les détails peuvent varier selon la distribution et sa configuration.
7. Utilisateurs et groupes
Linux est un système multiutilisateur. Chaque utilisateur possède une identité et des droits qui déterminent les opérations qu'il peut effectuer.
Connaître l'utilisateur courant
whoami id groups
- `whoami` affiche le nom de l'utilisateur courant.
- `id` affiche notamment son UID, son GID et ses groupes.
- `groups` affiche les groupes auxquels il appartient.
Afficher les utilisateurs
getent passwd
Cette commande consulte la base des comptes connue du système. Elle ne signifie pas que tous les comptes affichés correspondent à des personnes pouvant se connecter interactivement.
Créer un utilisateur sur Ubuntu ou Debian
sudo adduser nouvelutilisateur
La commande interactive demande généralement des informations, notamment un mot de passe.
Pour supprimer un compte :
sudo deluser nouvelutilisateur
La suppression du compte ne supprime pas nécessairement son répertoire personnel. Vérifie les données à conserver avant toute suppression.
Comprendre sudo
`sudo` permet à un utilisateur autorisé d'exécuter une commande avec des privilèges élevés.
Exemple :
sudo apt update
N'exécute pas systématiquement toutes les commandes avec `sudo`. Les privilèges administrateur doivent être réservés aux opérations qui les nécessitent.
8. Permissions et propriétaires
Chaque fichier ou répertoire possède un propriétaire, un groupe et des permissions.
Signification des permissions
- `r` : lecture.
- `w` : écriture.
- `x` : exécution ou traversée d'un répertoire.
Exemple d'affichage :
-rw-r--r-- 1 pat pat 1200 oct. 19 09:00 exemple.txt
Dans cet exemple, le propriétaire peut lire et modifier le fichier, tandis que le groupe et les autres utilisateurs disposent uniquement de la lecture.
Modifier les permissions
chmod 644 exemple.txt chmod 755 script.sh
- `644` : lecture et écriture pour le propriétaire, lecture pour les autres.
- `755` : lecture, écriture et exécution pour le propriétaire, lecture et exécution pour les autres.
Modifier le propriétaire
sudo chown utilisateur:groupe exemple.txt
Pour appliquer une modification à un répertoire et à son contenu, des options récursives existent. Il faut les utiliser avec prudence, car une erreur peut empêcher des services de fonctionner.
Conseil : évite de donner des permissions excessives, notamment avec `chmod 777`. Il vaut mieux déterminer précisément quel utilisateur ou service doit accéder au fichier.
9. Installer et mettre à jour les logiciels
Chaque famille de distributions utilise son gestionnaire de paquets.
Ubuntu et Debian : APT
Mettre à jour la liste des paquets :
sudo apt update
Installer les mises à jour disponibles :
sudo apt upgrade
Installer un logiciel :
sudo apt install nom-du-paquet
Rechercher un paquet :
apt search nom-du-paquet
Supprimer un logiciel :
sudo apt remove nom-du-paquet
Nettoyer les dépendances devenues inutiles :
sudo apt autoremove
La commande `apt update` actualise les informations des dépôts ; elle ne met pas à elle seule les logiciels à niveau.
Autres distributions
| Famille | Gestionnaire | Exemple d'installation |
|---|---|---|
| Fedora / Rocky Linux | DNF | `sudo dnf install nom-du-paquet` |
| Arch Linux | pacman | `sudo pacman -S nom-du-paquet` |
Il faut adapter les commandes à la distribution réellement installée.
10. Processus et performances
Un processus est une instance d'un programme en cours d'exécution.
Afficher les processus
ps aux top
- `ps aux` affiche une liste de processus.
- `top` présente une vue actualisée des processus et de l'utilisation des ressources.
Sur les systèmes où il est installé, `htop` propose également une interface interactive.
Arrêter un processus
Pour demander l'arrêt d'un processus identifié par son PID :
kill PID
Remplace `PID` par l'identifiant réel du processus.
Si le processus ne répond pas, des signaux plus forts existent, mais ils doivent rester un dernier recours. Identifier le programme avant de l'arrêter, particulièrement sur un serveur.
Vérifier la charge et la mémoire
uptime free -h
- `uptime` affiche notamment la durée de fonctionnement et la charge moyenne.
- `free -h` présente l'utilisation de la mémoire avec des unités lisibles.
11. Disques et espace de stockage
Vérifier l'espace disque
df -h
Cette commande affiche l'espace utilisé et disponible sur les systèmes de fichiers montés.
Vérifier la taille des répertoires
du -sh /var/log du -sh /home
Ces commandes indiquent la taille totale des répertoires indiqués, dans un format lisible.
Afficher les disques et partitions
lsblk
Pour afficher davantage d'informations sur les systèmes de fichiers :
lsblk -f
Ces commandes aident à identifier les disques, les partitions, les volumes et les points de montage.
Attention : le formatage, le repartitionnement et les modifications de volumes peuvent détruire des données. Vérifie les identifiants des disques et effectue une sauvegarde avant toute intervention.
12. Services et démarrage avec systemd
De nombreuses distributions Linux modernes utilisent systemd pour gérer les services et le démarrage.
Vérifier l'état d'un service
systemctl status nom-du-service
Démarrer ou arrêter un service
sudo systemctl start nom-du-service sudo systemctl stop nom-du-service
Redémarrer un service
sudo systemctl restart nom-du-service
Activer un service au démarrage
sudo systemctl enable nom-du-service
Pour désactiver son lancement automatique :
sudo systemctl disable nom-du-service
Ces commandes sont des exemples génériques. Remplace `nom-du-service` par le nom réel du service.
Pour consulter les services en échec :
systemctl --failed
13. Journaux et diagnostic
Les journaux permettent de comprendre les événements du système et les erreurs des services.
Consulter les journaux système
Sur un système utilisant systemd :
journalctl
Afficher les événements du démarrage en cours :
journalctl -b
Afficher les dernières lignes :
journalctl -n 100
Suivre les nouveaux événements :
journalctl -f
Consulter les journaux d'un service
journalctl -u ssh
Selon la distribution, le service SSH peut porter un nom différent, par exemple `ssh` ou `sshd`.
Consulter les fichiers de logs
ls -lh /var/log
Les fichiers présents dépendent des services installés et de la configuration de journalisation.
14. Réseau sous Linux
Linux propose de nombreux outils pour diagnostiquer une connexion réseau.
Afficher les interfaces réseau
ip addr
Afficher les routes :
ip route
Afficher les connexions et ports en écoute :
ss -tulpn
Certaines informations sur les processus peuvent nécessiter des privilèges administrateur.
Tester la connexion
ping -c 4 192.168.1.1
Remplace l'adresse par celle de ta passerelle réseau.
Tester la résolution DNS :
getent hosts example.com
Si l'outil `curl` est installé, il est également possible de tester l'accès HTTP ou HTTPS :
curl -I https://example.com
Un échec de ping ne signifie pas toujours que la machine est inaccessible : certains équipements bloquent ce type de requête.
Configuration réseau
Sur Ubuntu Server, la configuration réseau peut notamment dépendre de Netplan, de systemd-networkd ou de NetworkManager.
Avant de modifier la configuration réseau d'un serveur distant, prévoir une solution de retour arrière pour éviter de perdre la connexion.
Pour approfondir, consulter Réseau, Wi-Fi et Routeur.
15. Se connecter à distance avec SSH
SSH permet d'administrer une machine à distance de manière chiffrée.
Se connecter à un serveur
ssh utilisateur@adresse-ip
Exemple :
ssh pat@192.168.1.20
L'adresse IP et le nom d'utilisateur doivent correspondre à la machine cible.
Vérifier le service SSH sur Ubuntu Server
sudo systemctl status ssh
Sur Ubuntu, le serveur OpenSSH peut être installé avec :
sudo apt install openssh-server
L'ouverture du port SSH dans le pare-feu doit être limitée aux accès nécessaires. Pour une administration depuis Internet, une configuration sécurisée est particulièrement importante.
Bonnes pratiques SSH
- Utiliser des mots de passe robustes ou des clés SSH.
- Protéger la clé privée et ne jamais la partager.
- Limiter les comptes autorisés à se connecter.
- Maintenir le serveur à jour.
- Vérifier les règles du pare-feu.
- Conserver un accès de secours lors d'une modification de configuration.
Voir également SSH.
16. Héberger un site web avec Apache
Linux est fréquemment utilisé pour héberger des sites web.
Sur Ubuntu Server, Apache peut être installé à l'aide d'APT :
sudo apt update sudo apt install apache2
Vérifier le service :
sudo systemctl status apache2
Contrôler la syntaxe de la configuration :
sudo apache2ctl configtest
Après une modification de configuration validée, le service peut généralement être rechargé :
sudo systemctl reload apache2
Les fichiers de configuration Apache se trouvent généralement dans `/etc/apache2/` sous Ubuntu et Debian.
Les journaux se trouvent habituellement dans `/var/log/apache2/`.
Important : avant de modifier les fichiers de configuration d'un serveur en production, conserver une copie de sauvegarde et vérifier la syntaxe.
Voir Apache et Serveur Web.
17. Sécurité et bonnes pratiques
La sécurité d'un système Linux repose sur plusieurs éléments : mises à jour, permissions, comptes, services, pare-feu, sauvegardes et surveillance.
Recommandations essentielles
- Installer régulièrement les mises à jour de sécurité.
- Utiliser `sudo` uniquement lorsque nécessaire.
- Supprimer ou désactiver les comptes inutilisés.
- Limiter les services exposés sur le réseau.
- Configurer un pare-feu adapté.
- Protéger les accès SSH.
- Vérifier les journaux en cas d'anomalie.
- Sauvegarder les données et tester leur restauration.
- Télécharger les logiciels depuis des dépôts fiables.
- Protéger les secrets, clés privées et mots de passe.
Pare-feu avec UFW
Sur Ubuntu, UFW fournit une interface simplifiée de gestion du pare-feu.
Vérifier son état :
sudo ufw status
Autoriser SSH avant d'activer le pare-feu sur un serveur administré à distance :
sudo ufw allow OpenSSH
Puis, si les règles sont adaptées à la machine :
sudo ufw enable
Attention : l'activation d'un pare-feu mal configuré peut couper les connexions à distance. Sur un serveur accessible par SSH, vérifier les règles et conserver un moyen d'accès alternatif avant toute modification.
Pour approfondir, consulter Sécurité.
18. Archives et compression
Les archives permettent de regrouper plusieurs fichiers et éventuellement de les compresser.
Créer une archive tar
tar -cvf archive.tar dossier/
Créer une archive compressée gzip
tar -czvf archive.tar.gz dossier/
Extraire une archive tar.gz
tar -xzvf archive.tar.gz
Créer une archive ZIP
Si l'utilitaire ZIP est installé :
zip -r archive.zip dossier/
Extraire une archive ZIP :
unzip archive.zip
Avant d'extraire une archive provenant d'une source inconnue, vérifier son contenu et éviter d'écraser des fichiers importants.
19. Sauvegardes sous Linux
Une sauvegarde doit permettre de récupérer les fichiers après une suppression accidentelle, une panne ou un incident de sécurité.
Copier des fichiers avec cp
cp document.txt document.txt.bak
Cette méthode est adaptée à une copie simple, mais ne constitue pas à elle seule une stratégie de sauvegarde complète.
Synchroniser des répertoires avec rsync
rsync -av dossier_source/ dossier_destination/
Cette commande synchronise les fichiers selon les options utilisées. La destination doit être choisie avec soin.
Attention : certaines options de synchronisation, notamment `--delete`, peuvent supprimer des fichiers à destination. Toujours vérifier la commande avant de l'exécuter.
Principes d'une bonne sauvegarde
- Conserver plusieurs versions des données importantes.
- Utiliser une destination distincte de la machine sauvegardée.
- Conserver si possible une copie hors ligne ou immuable.
- Tester régulièrement la restauration.
- Protéger les sauvegardes contenant des données confidentielles.
Voir Sauvegarde.
20. Automatiser les tâches avec cron
Cron permet de programmer l'exécution périodique de commandes sur les systèmes qui disposent de ce service.
Afficher la crontab de l'utilisateur :
crontab -l
Modifier sa crontab :
crontab -e
Une entrée cron comporte généralement cinq champs temporels suivis de la commande.
| Champ | Signification |
|---|---|
| 1 | Minute |
| 2 | Heure |
| 3 | Jour du mois |
| 4 | Mois |
| 5 | Jour de la semaine |
Exemple de planification quotidienne à 2 h 30 :
30 2 * * * /chemin/vers/script.sh
Le script doit exister, être adapté au contexte et disposer des permissions nécessaires. Les tâches planifiées doivent être testées et leurs erreurs consignées pour faciliter le dépannage.
21. Dépannage : problèmes fréquents
| Problème | Vérifications |
|---|---|
| Espace disque insuffisant | `df -h`, puis `du -sh` sur les répertoires concernés |
| Service arrêté | `systemctl status nom-du-service` |
| Service en échec | `journalctl -u nom-du-service` |
| Pas de connexion réseau | `ip addr`, `ip route`, puis tester la passerelle |
| Résolution DNS en panne | `getent hosts example.com` |
| Permission refusée | Vérifier le propriétaire, le groupe et les droits avec `ls -l` |
| Logiciel introuvable | Actualiser la liste des paquets et vérifier le nom du paquet |
| Charge système élevée | `uptime`, `top` et `free -h` |
| SSH inaccessible | Vérifier le service, le pare-feu, l'adresse IP et les identifiants |
Méthode de diagnostic
- Reproduire le problème et noter le message d'erreur exact.
- Vérifier l'état du service ou du matériel concerné.
- Consulter les journaux.
- Examiner les changements récents.
- Tester une correction à la fois.
- Vérifier que le service fonctionne après intervention.
- Documenter la cause et la solution.
Cette méthode permet d'éviter les modifications inutiles et facilite les futures interventions.
22. Virtualisation et serveurs Linux
Linux peut fonctionner directement sur un ordinateur physique ou dans une machine virtuelle.
La virtualisation permet de créer plusieurs machines indépendantes sur un même hôte physique, selon les ressources disponibles.
Exemples d'usages :
- Tester une distribution Linux.
- Mettre en place un serveur web.
- Héberger un serveur de fichiers.
- Créer un environnement de développement.
- Tester des scripts et des configurations réseau.
Avant d'utiliser une machine virtuelle en production, vérifier les ressources mémoire, processeur, stockage et réseau, ainsi que la stratégie de sauvegarde.
Voir Virtualisation.
23. Comparaison entre Linux et Windows
| Critère | Linux | Windows |
|---|---|---|
| Modèle de distribution | Nombreuses distributions utilisant le noyau Linux | Système édité par Microsoft avec différentes éditions |
| Administration | Terminal, outils graphiques et scripts | Interface graphique, PowerShell, CMD et outils d'administration |
| Logiciels | Dépôts, gestionnaires de paquets et autres sources compatibles | Microsoft Store, installateurs et autres sources compatibles |
| Serveurs | Très utilisé pour l'hébergement et les services réseau | Également utilisé pour les serveurs et les services d'entreprise |
| Personnalisation | Très variable selon la distribution et l'environnement | Variable selon l'édition et les outils disponibles |
Le choix dépend des logiciels nécessaires, des compétences disponibles, de la compatibilité matérielle, des besoins de sécurité et des contraintes d'exploitation.
Voir Windows et Windows 11.
24. Glossaire Linux
| Terme | Définition |
|---|---|
| APT | Gestionnaire de paquets utilisé notamment par Debian et Ubuntu |
| Bash | Shell permettant d'interpréter des commandes et d'exécuter des scripts |
| Distribution | Ensemble cohérent de logiciels basé sur le noyau Linux |
| Kernel / noyau | Composant central qui gère les ressources et communique avec le matériel |
| Paquet | Archive contenant un logiciel et ses informations d'installation |
| PID | Identifiant d'un processus |
| Root | Superutilisateur disposant de privilèges très élevés |
| Shell | Programme qui interprète les commandes |
| SSH | Protocole sécurisé d'accès distant |
| sudo | Outil permettant à un utilisateur autorisé d'exécuter une commande avec des privilèges élevés |
| Terminal | Interface permettant de saisir des commandes |
| systemd | Système d'initialisation et de gestion de services utilisé par de nombreuses distributions |
25. Ressources et documentation
- Site officiel du noyau Linux
- Documentation officielle Ubuntu Server
- Documentation Debian
- Pages de manuel Linux
- Manuel officiel de Bash
- Documentation OpenSSH
26. Pages associées du Wiki Pat-Informatik