Aller au contenu

Linux

De Wiki Pat-Informatik
🏠 Accueil 📚 Index 🐧 Linux 🌐 Réseau 🔒 Cybersécurité 🖥️ Virtualisation ✅ Checklists d'intervention 📚 Tutoriels 🤝 Services
🐧 Linux
Guide pratique du système d'exploitation Linux
Distributions • Terminal • Commandes • Administration • Réseau • Sécurité

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

Serveurs Web

Conteneurs et virtualisation

Cloud et services

Administration système

Supervision

Sécurité

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

  1. Reproduire le problème et noter le message d'erreur exact.
  2. Vérifier l'état du service ou du matériel concerné.
  3. Consulter les journaux.
  4. Examiner les changements récents.
  5. Tester une correction à la fois.
  6. Vérifier que le service fonctionne après intervention.
  7. 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

26. Pages associées du Wiki Pat-Informatik


⬆ Retour en haut