DREAL Nouvelle-Aquitaine · Formation à distance

Linux.

Administration

3 jours · 21 h4 chapitres23 notions
stagiaire@dreal:~$ _

TechnoWide

Avec Glodie Tshimini

Juin 2026

Programme

Ce que nous allons couvrir

01

Architecture système

  • Déterminer et configurer les paramètres du matériel
  • Démarrage du système
  • Niveaux d'exécution, arrêt et redémarrage
02

Installation de Linux et gestion de paquetages

  • Concevoir un schéma de partitionnement du disque dur
  • Installer un gestionnaire de démarrage
  • Gérer les bibliothèques partagées
  • Gestionnaire de paquetage Debian
  • Gestionnaire de paquetage RPM et YUM
03

Commandes GNU et Unix

  • Travail en ligne de commande
  • Traitement de flux de type texte par des filtres
  • Effectuer une gestion de base sur les fichiers
  • Flux, tubes (pipes) et redirections
  • Création, surveillance et destruction de processus
  • Modification des priorités des processus
  • Recherche dans des fichiers texte avec les expressions rationnelles
  • Édition de fichiers texte avec vi
04

Disques, systèmes de fichiers, arborescence standard

  • Création de partitions et systèmes de fichiers
  • Maintenir l'intégrité des systèmes de fichiers
  • Contrôle du montage et du démontage
  • Gestion des quotas de disque
  • Gérer les permissions et les propriétaires des fichiers
  • Créer et changer les liens symboliques et physiques
  • Recherche de fichiers et placement aux endroits adéquats
Avant de commencer

Installation

Le logiciel VirtualBox et 2 images iso
Avant de commencer le chapitre 1

Quelles sont vos connaissances sur le système Linux ?

Chapitre 01

Architecture système

3 notions
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/materiel$

Déterminer et configurer les paramètres du matériel

Comprendre 1 / 3

Linux découvre le matériel via le noyau et ses modules (pilotes), puis l'expose dans les pseudo-systèmes de fichiers /proc et /sys, alimentés en continu par le gestionnaire de périphériques udev.

  • Le noyau charge un module pour chaque matériel détecté
  • /proc : informations sur le système et les processus en temps réel
  • /sys : représentation des périphériques et de leurs attributs
  • udev : crée les nœuds de périphériques dans /dev
Doc officielle · man7.org · lspci(8)
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/materiel$

Déterminer et configurer les paramètres du matériel

Inspecter le matériel 2 / 3
# Bus PCI et USB
lspci
lsusb

# CPU et mémoire
lscpu
free -h
cat /proc/cpuinfo
cat /proc/meminfo

# Disques et périphériques bloc
lsblk
lshw -short        # vue d'ensemble (root)
Doc officielle · man7.org · lspci(8)
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/materiel$

Déterminer et configurer les paramètres du matériel

Modules & messages noyau 3 / 3
# Modules chargés et détails
lsmod # lit le fichier /proc/modules pour afficher les modules actifs du noyau et leurs dépendances
modinfo e1000e

# Charger / décharger un pilote
modprobe e1000e
modprobe -r e1000e

# Détection matérielle au fil de l'eau
dmesg | less
dmesg | grep -i usb

Configuration persistante : /etc/modules-load.d/*.conf (chargement) et /etc/modprobe.d/*.conf (options).

Doc officielle · man7.org · lspci(8)
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/demarrage$

Démarrage du système

La séquence de boot 1 / 3

Du bouton d'alimentation à l'invite de connexion, le démarrage suit toujours les mêmes étapes :

BIOS / UEFI (Unified Extensible FirmWare Interface)GRUBNoyau LinuxsystemdLogin
  • BIOS/UEFI : test matériel (POST), puis cherche un disque amorçable
  • GRUB : charge le noyau et l'initramfs (initial RAM filesystem) dont le rôle est de fournir les pilotes et scripts pour monter le système de fichiers racine
  • Noyau : initialise le matériel et monte la racine
  • systemd (PID 1) : lance les services jusqu'à la cible voulue. Le pilotage ce processus s'effectue à travers sytemctl
Doc officielle · freedesktop · bootup(7)
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/demarrage$

Démarrage du système

BIOS vs UEFI 2 / 3
BIOSUEFI
ÉpoqueAncien (1975)Moderne
PartitionnementMBRGPT
Taille disque max2 To≈ 9,4 Zo (zettaoctet)
Secure BootNonOui
Doc officielle · freedesktop · bootup(7)
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/demarrage$

Démarrage du système

Diagnostiquer le boot 3 / 3
# Messages du noyau
dmesg

# Journaux de démarrage
journalctl -b            # boot courant
journalctl -b -1         # boot précédent
journalctl -p err -b     # erreurs uniquement

# Temps de démarrage
systemd-analyze
systemd-analyze blame    # services les plus lents
Doc officielle · freedesktop · bootup(7)
Exercice

Atelier 1.1

Installation du système
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/runlevels$

Niveaux d'exécution, arrêt et redémarrage

Runlevels & targets 1 / 3

Les anciens runlevels SysVinit (ancien système d'initialisation via des scripts dans /etc/init.d) sont remplacés par les targets de systemd.

RunlevelTarget systemdRôle
0poweroff.targetArrêt
1rescue.targetMono-utilisateur root pour le dépannage
3multi-user.targetMulti-utilisateur (texte)
5graphical.targetMulti-utilisateur (graphique)
6reboot.targetRedémarrage
Doc officielle · freedesktop · systemctl(1)
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/runlevels$

Niveaux d'exécution, arrêt et redémarrage

Changer de cible 2 / 3

# Cible par défaut au démarrage
systemctl get-default                       # obtenir la cible par défaut
systemctl set-default multi-user.target     # définir par défaut le mode texte
# État du système
systemctl is-system-running                 # running ou degraded => mode normal, maintenance => mode rescue
# Basculer de cible à chaud
systemctl isolate rescue.target             # mode maintenance
systemctl isolate graphical.target          # mode graphique
Doc officielle · freedesktop · systemctl(1)
Chapitre 01 · Architecture système
root@dreal:~/architecture-systeme/runlevels$

Niveaux d'exécution, arrêt et redémarrage

Arrêter / redémarrer 3 / 3

# Arrêt propre du système avec shutdown (broadcast à tous les utilisateurs connectées)
shutdown -h now                                   # arrêt immédiat
shutdown -r +10                                   # redémarrage dans 10 min
shutdown 22:30 "Maintenance prévue à 22h30"       # arrêt prévue à 22:30
shutdown -c                                       # annuler un arrêt programmé

# Arrêt "salle" sans prévenir
reboot
poweroff
halt

# Prévenir les utilisateurs connectés
wall "Arrêt du serveur dans 5 minutes" 
Doc officielle · freedesktop · systemctl(1)
Exercice

Atelier 1.2

Démarrage et arrêt du système
Avant de commencer le chapitre 2

Quelles sont vos connaissances sur l'installation de Linux et la gestion de paquetages ?

Chapitre 02

Installation de Linux et gestion de paquetages

5 notions
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/partitionnement$

Concevoir un schéma de partitionnement du disque dur

Pourquoi partitionner 1 / 3
  • Séparer le système des données utilisateur
  • Limiter l'impact d'un disque plein en isolant /var
  • Faciliter sauvegardes et réinstallations
  • Appliquer des options de montage spécifiques (noexec, nosuid)
Doc officielle · man7.org · fdisk(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/partitionnement$

Concevoir un schéma de partitionnement du disque dur

Schéma type 2 / 3
PartitionTailleRôle
/20–50 GoRacine du système
/boot512 Mo – 1 GoNoyau et bootloader
/homeVariableDonnées utilisateurs
/var10–20 GoLogs, bases de données
swap= RAMMémoire virtuelle
Doc officielle · man7.org · fdisk(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/partitionnement$

Concevoir un schéma de partitionnement du disque dur

Outils 3 / 3

Pour partionner un disque, il faut

  • Lister les disques avec lsblk ou fdisk -l ou ls -l /dev/sd*
  • Définir la taille de la partition avec un gestionnaire de partition (fdisk, gdisk, parted)
  • Formater la partition en installant un système de fichier (EXT4, NTFS, FAT32, etc.) avec les outils de formatage (mkfs, fstab)
  • Monter la partition dans un repertoire pour stocker des données avec les outils de montage (mount, umount(démontage))
    • Editer le fichier /etc/fstab pour effectuer le montage au démarrage
    • Monter toutes les partitions avec mount -a

#  Table de partition = annuaire du disque

# Lister disques et partitions
lsblk # ou fdisk -l

# Gestionnaires de partitions
##  mode MBR ancien standard Master Boot Record, supporte aussi GPT, 4 partitions primaires max
##  idéal pour les clés USB et disques ≤ 2 To
fdisk /dev/sdb

##  mode GPT nouveau standard UEFI/GPT pour les disques et installations modernes
##  jusqu'à 128 partitions
gdisk /dev/sdb

##  modes MBR et GPT : temps réel, tout est faisable en une ligne de commande
##  idéal pour des scripts automatisés
parted /dev/sdb
Doc officielle · man7.org · fdisk(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/grub$

Installer un gestionnaire de démarrage

Le rôle de GRUB 1 / 3
  • GRUB (GRand Unified Bootloader) : le standard actuel
  • Permet de choisir le noyau ou l'OS au démarrage
  • Configuration générée : /boot/grub/grub.cfg (ne pas éditer à la main)
  • Fichier de configuration : /etc/default/grub

Historique : LILO (Linux Loader), aujourd'hui obsolète.

Doc officielle · GNU · manuel GRUB
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/grub$

Installer un gestionnaire de démarrage

Installer & configurer 2 / 3

# Installer GRUB sur un disque (BIOS)
grub-install /dev/sda

# Régénérer la configuration
update-grub                              # Debian / Ubuntu
grub-mkconfig -o /boot/grub/grub.cfg     # générique
Doc officielle · GNU · manuel GRUB
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/grub$

Installer un gestionnaire de démarrage

Régler le menu 3 / 3

# /etc/default/grub
## Options disponibles depuis /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

# Pour appliquer les modifications
update-grub

En UEFI, GRUB s'installe dans la partition EFI (/boot/efi).

Doc officielle · GNU · manuel GRUB
Exercice

Atelier 2.1

Partionnement disque et GRUB
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/bibliotheques$

Gérer les bibliothèques partagées

Comprendre 1 / 3

Les bibliothèques partagées (.so, shared objects) évitent de dupliquer le même code dans chaque programme : il est chargé une fois en mémoire et réutilisé.

  • Le chargeur dynamique ld.so résout les bibliothèques au lancement
  • Le cache /etc/ld.so.cache accélère leur localisation
  • Chemins de recherche : /etc/ld.so.conf et /etc/ld.so.conf.d/
Doc officielle · man7.org · ld.so(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/bibliotheques$

Gérer les bibliothèques partagées

En pratique 2 / 3
# Bibliothèques utilisées par un programme
ldd /usr/bin/ls

# Mettre à jour le cache
ldconfig
ldconfig -p            # afficher le cache

# Ajouter un répertoire (temporaire)
export LD_LIBRARY_PATH=/opt/mylib/lib
Doc officielle · man7.org · ld.so(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/bibliotheques$

Gérer les bibliothèques partagées

Bonnes pratiques 3 / 3
  • Préférer l'ajout d'un fichier dans /etc/ld.so.conf.d/ puis ldconfig plutôt que LD_LIBRARY_PATH
  • Une bibliothèque manquante se voit avec ldd (mention not found)
  • Le numéro de version (libfoo.so.1) gère la compatibilité binaire
Doc officielle · man7.org · ld.so(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/apt$

Gestionnaire de paquetage Debian

Deux niveaux 1 / 3

Sous Debian/Ubuntu, deux niveaux d'outils cohabitent :

  • apt (haut niveau) : gère les dépôts et résout les dépendances
  • dpkg (bas niveau) : installe un fichier .deb unique

Dépôts : /etc/apt/sources.list et /etc/apt/sources.list.d/

Doc officielle · Debian · apt(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/apt$

Gestionnaire de paquetage Debian

apt — haut niveau 2 / 3
apt update              # rafraîchir l'index des dépôts
apt upgrade             # mettre à jour les paquets
apt install nginx       # installation du paquet
apt remove nginx        # suppression du paquet
apt purge nginx         # suppression du paquet + fichiers de config
apt-cache search nginx  # recherche de tous les paquets avec le nom nginx
apt show nginx
Doc officielle · Debian · apt(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/apt$

Gestionnaire de paquetage Debian

dpkg — bas niveau 3 / 3
dpkg -i paquet.deb      # installer un .deb
dpkg -r paquet          # supprimer
dpkg -l                 # lister les paquets
dpkg -L nginx           # fichiers d'un paquet
dpkg -S /etc/nginx/nginx.conf   # paquet d'un fichier
Doc officielle · Debian · apt(8)
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/rpm-yum$

Gestionnaire de paquetage RPM et YUM

Famille Red Hat 1 / 3

Sur RHEL, Rocky, Fedora… on retrouve la même logique à deux niveaux :

  • dnf (successeur de yum) : dépôts + dépendances
  • rpm : un paquet .rpm à la fois

Dépôts : /etc/yum.repos.d/*.repo

Doc officielle · rpm.org · documentation
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/rpm-yum$

Gestionnaire de paquetage RPM et YUM

dnf / yum 2 / 3
dnf check-update
dnf upgrade
dnf install httpd
dnf remove httpd
dnf search httpd
dnf info httpd
dnf list installed
Doc officielle · rpm.org · documentation
Chapitre 02 · Installation de Linux et gestion de paquetages
root@dreal:~/installation-paquetages/rpm-yum$

Gestionnaire de paquetage RPM et YUM

rpm — bas niveau 3 / 3
rpm -ivh paquet.rpm     # installer (verbeux)
rpm -e paquet           # supprimer
rpm -qa                 # lister tout
rpm -ql httpd           # fichiers d'un paquet
rpm -qf /etc/httpd/conf/httpd.conf   # paquet d'un fichier
Doc officielle · rpm.org · documentation
Exercice

Atelier 2.2

Gestion de paquetages, bibliothèques partagées et archives
Avant de commencer le chapitre 3

Quels commandes GNU/Linux connaissez-vous ?

Chapitre 03

Commandes GNU et Unix

8 notions
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/ligne-de-commande$

Travail en ligne de commande

Le shell 1 / 3

Le shell (Bash par défaut) interprète les commandes saisies.

  • Commande interne : intégrée au shell (cd, echo, pwd)
  • Commande externe : programme situé dans le $PATH
  • Alias : raccourci personnel pour une commande

#  Nature de la commande avec type
## builtin = commande intégrée au shell (commande interne)
## alias, function shell, file (exécutable), keyword (mot-clé réservé par le shell ex: if, then, for, case) 
type cd            # builtin
type ls            # /usr/bin/ls

which python3      # localiser un exécutable

alias ll='ls -la'   # création d'alias depuis le fichier .bashrc
Doc officielle · GNU · manuel Bash
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/ligne-de-commande$

Travail en ligne de commande

Variables & environnement 2 / 3
echo $HOME         # répertoire personnel
echo $USER         # utilisateur courant
echo $PATH         # chemins de recherche
echo $SHELL        # shell utilisé

MA_VAR="bonjour"
export MA_VAR      # visible aux sous-processus
env                # tout l'environnement
Doc officielle · GNU · manuel Bash
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/ligne-de-commande$

Travail en ligne de commande

Aide & historique 3 / 3
man ls             # manuel d'utilisation de la commande ls
man 5 passwd       # section 5 (formats de fichier)
ls --help          # aide rapide sur l'utilisation et les options de la commande ls


history            # historique des commandes
!!                 # rejouer la dernière
Ctrl + r           # recherche dans l'historique
Doc officielle · GNU · manuel Bash
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/filtres$

Traitement de flux de type texte par des filtres

Qu'est-ce qu'un filtre 1 / 3

Un filtre lit sur l'entrée standard, transforme le texte, et écrit sur la sortie standard. On les enchaîne avec des pipes.

CommandeRôle
cat / tacAfficher (endroit / envers)
head / tailDébut / fin de fichier
sortTrier
uniqDédoublonner (lignes adjacentes)
cutExtraire des colonnes
trConvertir / supprimer des caractères
wcCompter lignes, mots, octets
Doc officielle · GNU · coreutils
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/filtres$

Traitement de flux de type texte par des filtres

Exemples 2 / 3

head -n 5 /etc/passwd         # afficher les premières lignes
tail -f /var/log/syslog       # suivi en direct
wc -l fichier.txt             # nombre de lignes

sort fichier.txt | uniq       # tri et suprression des doublons
sort -n nombres.txt           # tri numérique
cut -d: -f1,7 /etc/passwd     # colonnes 1 et 7
echo "linux" | tr 'a-z' 'A-Z' # -> LINUX
Doc officielle · GNU · coreutils
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/filtres$

Traitement de flux de type texte par des filtres

Chaînage utile 3 / 3

Combinés, les filtres répondent à des questions concrètes :

# Top 10 des IP dans un log d'accès
cut -d' ' -f1 access.log | sort | uniq -c | sort -rn | head

# Écrire à l'écran ET dans un fichier
ls /etc | tee liste.txt
Doc officielle · GNU · coreutils
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/gestion-fichiers$

Effectuer une gestion de base sur les fichiers

Naviguer & lister 1 / 3
pwd                # où suis-je ?
cd /etc ; cd .. ; cd ~  # se déplacer dans le dossier /etc, revenir dans le dossier parent

ls -l              # détaillé
ls -la             # + fichiers cachés
ls -lh             # tailles plus facilement lisibles pour nous (humains)
ls -lt             # tri par date
Doc officielle · GNU · coreutils
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/gestion-fichiers$

Effectuer une gestion de base sur les fichiers

Créer, copier, déplacer 2 / 3
mkdir -p projet/src       # création des dossiers projet et projet/src
touch fichier.txt         # créer le fichier.txt
cp fichier.txt copie.txt  # copier et le renommer le fichier
cp -r dossier/ sauvegarde/  # copier les dossiers et leurs contenus (sous-dossiers et fichiers)  
mv ancien.txt nouveau.txt # renommer ou déplacer, ici le renommage
mv nouveau.txt /tmp # déplacer le fichier
rm fichier.txt # supprimer le fichier
rm -r dossier/            # suppression récursive du dossier et de son contenu
Doc officielle · GNU · coreutils
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/gestion-fichiers$

Effectuer une gestion de base sur les fichiers

Inspecter & jokers 3 / 3
file image.png            # type réel d'un fichier
stat fichier.txt          # métadonnées détaillées

ls *.txt                  # joker : tout ce qui finit en .txt
ls fichier.jpe?g           # ? = un seul caractère faculative 0 ou 1 occurrence
ls [abc]*.log             # classe de caractères, contient a, b ou c

Le « globbing » (expansion des motifs) est résolu par le shell avant l'exécution de la commande.

Doc officielle · GNU · coreutils
Exercice

Atelier 3.1

Commandes GNU/UNIX
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/redirections$

Flux, tubes (pipes) et redirections

Les trois flux 1 / 3

Chaque commande dispose de trois flux standard :

FluxNuméroRôle
stdin0Entrée standard
stdout1Sortie standard
stderr2Sortie d'erreur
commande|commande|commande

Le pipe | branche le stdout d'une commande sur le stdin de la suivante.

Doc officielle · GNU · Bash — Redirections
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/redirections$

Flux, tubes (pipes) et redirections

Redirections 2 / 3
ls /etc > liste.txt          # écrase le contenu du fichier liste.txt
echo "ligne" >> liste.txt    # ajoute à la fin (conserve le contenu du fichier)
ls /inexistant 2> erreurs.txt  # rediriger stderr
commande > sortie.txt 2>&1   # stdout et stderr
wc -l < liste.txt            # entrée depuis un fichier
Doc officielle · GNU · Bash — Redirections
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/redirections$

Flux, tubes (pipes) et redirections

Pipes 3 / 3
ls /etc | wc -l              # compter les fichiers
ps aux | grep nginx          # filtrer une liste
cat f.txt | sort | uniq      # chaîner plusieurs filtres
ls -la /etc | less           # paginer un résultat long
Doc officielle · GNU · Bash — Redirections
Exercice

Atelier 3.2

Gestion des flux
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/processus$

Création, surveillance et destruction de processus

Notion de processus 1 / 3
  • Chaque programme lancé est un processus
  • Identifié par un PID (Process ID)
  • Rattaché à un parent par son PPID
  • systemd (PID 1) est l'ancêtre de tous les processus
systemd (1)sshdbashvim
Doc officielle · man7.org · ps(1)
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/processus$

Création, surveillance et destruction de processus

Surveiller 2 / 3

ps aux             # tous les processus
ps -ef             # format complet
ps -p 1088 -o ppid,pid,stat,%cpu,%mem # affichage du processus 1088 avec quelques colonnes
pstree             # arborescence (processus sous forme d'arbre)
top                # temps réel
htop               # version améliorée du temps réel
free -h            # mémoire
Doc officielle · man7.org · ps(1)
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/processus$

Création, surveillance et destruction de processus

Lancer & détruire 3 / 3
./script.sh &      # lancer le script en arrière-plan
Ctrl + Z           # suspendre
jobs               # lister les jobs
bg %1 ; fg %1      # arrière-plan / premier plan
nohup ./script.sh &  # survit à la déconnexion

kill 1234          # SIGTERM (propre)
kill -9 1234       # SIGKILL (forcé)
killall nginx ; pkill -f script.sh
Doc officielle · man7.org · ps(1)
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/priorites$

Modification des priorités des processus

La valeur de courtoisie 1 / 3

La priorité d'ordonnancement se règle via la niceness (NI), de −20 (prioritaire) à +19 (peu prioritaire). Défaut : 0.

−20 · haute0 · défaut+19 · basse

Plus la valeur est élévée, plus le processus est gentil car il laisse la place aux autres d'utiliser les ressources.

Tous les utilisateurs peuvent modifier à la baisse, seul root peut modifier à la hausse

Doc officielle · man7.org · nice(1)
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/priorites$

Modification des priorités des processus

nice & renice 2 / 3
# Lancer avec une priorité donnée
nice -n 10 ./traitement_lourd.sh

# Modifier un processus existant
renice -n 5 -p 1234
renice -n -5 -p 1234     # plus prioritaire (root)

# Voir la colonne NI
ps -o pid,ni,cmd -p 1234
Doc officielle · man7.org · nice(1)
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/priorites$

Modification des priorités des processus

Bon à savoir 3 / 3
  • Seul root peut attribuer une valeur négative
  • Une priorité basse libère du CPU pour les tâches interactives
  • top permet de modifier la niceness à chaud (touche r)
  • À ne pas confondre avec la priorité temps réel (chrt)
Doc officielle · man7.org · nice(1)
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/regex$

Recherche dans des fichiers texte avec les expressions rationnelles

Les métacaractères 1 / 3

grep recherche les lignes correspondant à un motif (expression rationnelle).

MotifSignification
.N'importe quel caractère
^ / $Début / fin de ligne
*0, 1 ou plus
+ / ?1+ (au moins 1) / 0 ou 1 (étendu)
[abc]Un caractère parmi a, b, c
[^abc]Tout sauf a, b, c
{n,m}Entre n et m répétitions
Doc officielle · GNU · manuel grep
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/regex$

Recherche dans des fichiers texte avec les expressions rationnelles

grep en pratique 2 / 3
grep "root" /etc/passwd
grep -i "error" syslog      # insensible à la casse
grep -n "TODO" main.c       # numéros de ligne
grep -r "clé" ./src         # récursif
grep -v "^#" sshd_config    # exclure les commentaires
grep -c "404" access.log    # compter
Doc officielle · GNU · manuel grep
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/regex$

Recherche dans des fichiers texte avec les expressions rationnelles

Regex étendues 3 / 3
# -E active +, ?, |, {} sans échappement
grep -E "^[a-z]+@[a-z]+\.[a-z]{2,}$" emails.txt

grep -E "warn|error|fatal" app.log
grep -Eo "[0-9]{1,3}(\.[0-9]{1,3}){3}" access.log  # IPv4

-o n'affiche que la partie qui correspond ; egrep équivaut à grep -E.

Doc officielle · GNU · manuel grep
Exercice

Atelier 3.3

Processus
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/vi$

Édition de fichiers texte avec vi

Pourquoi vi 1 / 3
  • Présent sur toutes les distributions
  • Fonctionne en terminal, sans interface graphique
  • Incontournable pour éditer un fichier de config sur un serveur
NORMALi →INSERTIONÉchap →NORMAL: →COMMANDE
Doc officielle · vim.org · documentation
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/vi$

Édition de fichiers texte avec vi

Les 3 modes 2 / 3
ModeRôleY entrer
NormalNaviguer, copier, supprimerÉchap
InsertionÉcrire du textei / a
CommandeSauver, quitter, remplacer:
Doc officielle · vim.org · documentation
Chapitre 03 · Commandes GNU et Unix
root@dreal:~/commandes-gnu-unix/vi$

Édition de fichiers texte avec vi

Commandes vitales 3 / 3
:w        enregistrer
:q        quitter
:wq       enregistrer + quitter
:q!       quitter sans enregistrer

dd        supprimer une ligne
yy / p    copier / coller une ligne
/motif    rechercher
:%s/a/b/g  remplacer partout
u         annuler
Doc officielle · vim.org · documentation
Exercice

Atelier 3.4

Éditeur VI
Avant de commencer le chapitre 4

Quelles sont vos connaissances sur les systèmes de fichier ?

Chapitre 04

Disques, systèmes de fichiers, arborescence standard

7 notions
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/creation-fs$

Création de partitions et systèmes de fichiers

Partition vs système de fichiers 1 / 3

Une partition est une zone du disque ; un système de fichiers est la structure qui y organise les données.

FSPoints forts
ext4Polyvalent, robuste, par défaut
xfsGros volumes, hautes performances
btrfsSnapshots, sous-volumes
vfatCompatibilité (clés USB, EFI)
Doc officielle · man7.org · mkfs(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/creation-fs$

Création de partitions et systèmes de fichiers

Créer 2 / 3
lsblk ; fdisk -l           # voir les disques

fdisk /dev/sdb             # créer une partition (MBR)
gdisk /dev/sdb             # GPT

mkfs.ext4 /dev/sdb1        # formater en ext4
mkfs.xfs  /dev/sdb2        # ou en xfs
mkswap /dev/sdb3 ; swapon /dev/sdb3
Doc officielle · man7.org · mkfs(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/creation-fs$

Création de partitions et systèmes de fichiers

Vérifier 3 / 3
blkid                      # UUID et type de FS
lsblk -f                   # arbre disques + FS
df -hT                     # FS montés + type

L'UUID identifie une partition de façon stable, indépendamment de l'ordre des disques.

Doc officielle · man7.org · mkfs(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/integrite$

Maintenir l'intégrité des systèmes de fichiers

Surveiller l'espace 1 / 3
df -h              # espace par système de fichiers
df -i              # inodes (nombre de fichiers)
du -sh /var        # taille d'un répertoire
du -sh * | sort -h # classer les sous-dossiers
Doc officielle · man7.org · fsck(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/integrite$

Maintenir l'intégrité des systèmes de fichiers

Vérifier & réparer 2 / 3
# TOUJOURS sur un FS démonté
umount /dev/sdb1
fsck /dev/sdb1
e2fsck -f /dev/sdb1     # forcer (ext2/3/4)

Ne jamais lancer fsck sur un système de fichiers monté et actif : risque de corruption.

Doc officielle · man7.org · fsck(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/integrite$

Maintenir l'intégrité des systèmes de fichiers

Paramètres ext4 3 / 3
tune2fs -l /dev/sdb1    # paramètres du FS
dumpe2fs /dev/sdb1      # détails du superbloc

# Forcer une vérification au prochain boot
tune2fs -c 30 /dev/sdb1 # tous les 30 montages
Doc officielle · man7.org · fsck(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/montage$

Contrôle du montage et du démontage

Le principe 1 / 3

Sous Linux, un système de fichiers n'a pas de lettre de lecteur : il est monté dans un répertoire (point de montage) de l'arborescence unique.

/dev/sdb1mount →/mnt/data
Doc officielle · man7.org · mount(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/montage$

Contrôle du montage et du démontage

Monter / démonter 2 / 3
mount /dev/sdb1 /mnt/data   # monter
mount                       # voir les montages
umount /mnt/data            # démonter
umount /dev/sdb1            # par périphérique
Doc officielle · man7.org · mount(8)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/montage$

Contrôle du montage et du démontage

Montage permanent — /etc/fstab 3 / 3
# <FS>           <point>   <type> <options>  <dump> <pass>
UUID=xxxx-xxxx   /mnt/data  ext4   defaults   0      2

mount -a           # monter tout ce qui est dans fstab

Référencer par UUID (obtenu via blkid) évite les erreurs si l'ordre des disques change.

Le caractère de séparation dans le fichier de montage /etc/fstab est un espace ou une tabulation entre les différents paramètres

Doc officielle · man7.org · mount(8)
Exercice

Atelier 4.1

Montage systèmes fichiers
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/quotas$

Gestion des quotas de disque

À quoi ça sert 1 / 3

Les quotas limitent, par utilisateur ou par groupe, l'espace (blocs) et le nombre de fichiers (inodes) sur un système de fichiers.

  • Empêche un utilisateur de saturer /home
  • Distingue limite souple (avertissement) et dure (blocage)
Doc officielle · man7.org · quota(1)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/quotas$

Gestion des quotas de disque

Activer 2 / 3
# /etc/fstab : ajouter les options de quotas
/dev/sdb1  /home  ext4  defaults,usrquota,grpquota  0 2

mount -o remount /home
quotacheck -cug /home    # initialiser
quotaon /home            # activer
Doc officielle · man7.org · quota(1)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/quotas$

Gestion des quotas de disque

Attribuer & contrôler 3 / 3
edquota jean        # éditer les quotas d'un utilisateur
setquota -u jean 500M 1G 0 0 /home

repquota /home      # rapport global
quota -u jean       # quota d'un utilisateur
Doc officielle · man7.org · quota(1)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/permissions$

Gérer les permissions et les propriétaires des fichiers

Lire les permissions 1 / 3
ls -l fichier.txt
-rw-r--r-- 1 user group 1024 fichier.txt
Cibler (4)w (2)x (1)
Propriétairelireécrireexécuter
Groupelire
Autreslire

Ici : rw-r--r-- = 644.

Doc officielle · GNU · chmod
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/permissions$

Gérer les permissions et les propriétaires des fichiers

Modifier 2 / 3
chmod 755 script.sh     # rwxr-xr-x (octal)
chmod u+x script.sh     # symbolique : +exec owner
chmod g-w fichier       # retirer écriture au groupe
chmod -R 750 dossier/   # récursif

chown user:group fichier
chown -R user:group dossier/
umask                   # masque par défaut (0022)
Doc officielle · GNU · chmod
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/permissions$

Gérer les permissions et les propriétaires des fichiers

Permissions spéciales 3 / 3
BitOctalEffet
SUID4Exécution avec les droits du propriétaire (passwd)
SGID2Héritage du groupe sur un répertoire
Sticky1Suppression réservée au propriétaire (/tmp)
chmod 4755 /usr/bin/prog   # SUID
chmod 2775 /partage        # SGID
chmod 1777 /tmp            # sticky bit
Doc officielle · GNU · chmod
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/liens$

Créer et changer les liens symboliques et physiques

Deux types de liens 1 / 3
SymboliquePhysique (hard)
Pointe versun chemin (nom)l'inode (les données)
Traverse les FSOuiNon
Si la cible est suppriméeLien casséDonnées conservées
Doc officielle · man7.org · ln(1)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/liens$

Créer et changer les liens symboliques et physiques

Créer 2 / 3
# Lien symbolique (raccourci)
ln -s /chemin/vers/cible lien_symbo

# Lien physique
ln fichier.txt lien_dur

ls -l            # un symlink s'affiche  lien -> cible
ls -i fichier    # voir le numéro d'inode
Doc officielle · man7.org · ln(1)
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/liens$

Créer et changer les liens symboliques et physiques

Cas d'usage 3 / 3
  • Symlink : exposer une version (python -> python3.11)
  • Symlink : activer un service web (sites-enabled/sites-available/)
  • Hard link : sauvegardes économes (mêmes données, plusieurs noms)
Doc officielle · man7.org · ln(1)
Exercice

Atelier 4.2

Gestion des permissions
Exercice

Atelier 4.3

Les liens symboliques
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/recherche-fhs$

Recherche de fichiers et placement aux endroits adéquats

Rechercher 1 / 3
# find : recherche en temps réel, très puissante
find /etc -name "*.conf"
find /home -type f -size +100M
find /var/log -mtime +30 -delete
find . -type f -perm 644

# locate : base indexée, très rapide
updatedb            # mettre à jour l'index (root)
locate sshd_config
Doc officielle · GNU · findutils
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/recherche-fhs$

Recherche de fichiers et placement aux endroits adéquats

Localiser une commande 2 / 3
which python3       # exécutable dans le PATH
whereis ls          # binaire + sources + man
type cd             # interne ou externe ?
Doc officielle · GNU · findutils
Chapitre 04 · Disques, systèmes de fichiers, arborescence standard
root@dreal:~/disques-fs-arborescence/recherche-fhs$

Recherche de fichiers et placement aux endroits adéquats

Placement — le standard FHS 3 / 3
RépertoireContenu
/bin, /usr/binCommandes
/sbinCommandes d'administration
/etcFichiers de configuration
/homeDonnées utilisateurs
/varLogs, caches, données variables
/usr/libBibliothèques
/tmpFichiers temporaires

Le FHS (Filesystem Hierarchy Standard) dit placer chaque type de fichier.

FHS maintenu par la fondation Linux et normalise les répertoires dans toutes les distributions

FHS Fondation Linux
Fin

Merci.

Vous savez installer, configurer et administrer un système Linux.

root@dreal:~$ logout _

Avec Glodie Tshimini

← → pour naviguer