Cours GNU/Linux en PDF (Intermédiaire)
GNU/Linux : Ce qu'il faut savoir. GNU/Linux désigne un système d'exploitation composé du noyau Linux et d'un ensemble d'outils GNU, conforme aux spécifications POSIX pour l'interopérabilité. Son adoption dans les serveurs, le cloud, l'embarqué et les postes de travail rend la maîtrise du shell, de l'arborescence et des scripts un atout opérationnel. Le support original est disponible en PDF gratuit et testé sur des distributions courantes. Il privilégie la pratique sur Debian et Ubuntu pour des exercices reproductibles.
🎯 Ce que vous allez apprendre
Philosophie UNIX et positionnement POSIX
Principes fondateurs : un outil = une tâche, flux de texte et composition par tuyaux. Application pratique : concevoir des chaînes de traitement composables, diagnostiquer des commandes complexes et favoriser des outils simples et réutilisables pour améliorer la maintenabilité des scripts.
Interface et ergonomie : GUI vs CLI, invites et conventions
Différences entre interface graphique et ligne de commande ; interprétation des prompts $ et #. Objectifs : naviguer efficacement en CLI, limiter les élévations de privilèges et exploiter les pages de manuel et l'aide intégrée pour résoudre rapidement un problème.
Système de fichiers et arborescence Unix/Linux
Compréhension des chemins absolus et relatifs, de la structure racine et des conventions d'emplacement des binaires et fichiers de configuration. But pratique : localiser services et fichiers système et construire des chemins robustes dans des scripts.
Gestion des fichiers et permissions
Lecture et modification des droits, impact des UID/GID et commandes de contrôle d'accès. Compétence visée : appliquer des permissions cohérentes, auditer l'accès aux données et utiliser chmod, chown et ACL lorsque nécessaire.
Édition et encodage de fichiers texte (vim, encodage)
Utiliser un éditeur en ligne de commande et résoudre les problèmes d'encodage afin de garantir l'intégrité des scripts et fichiers de configuration : éditer, sauvegarder et vérifier l'encodage avant déploiement pour éviter des erreurs d'exécution.
Scripting Bash : variables, substitutions, structures de contrôle
Manipulation des variables, substitutions et structures (tests, for, while, until), fonctions, IFS, redirections et évaluation arithmétique. But pratique : écrire des scripts robustes et portables pour automatiser des workflows opérationnels en production.
📑 Sommaire du document
- Présentation
- Notion de système d’exploitation
- Philosophie UNIX
- Manipuler sous Linux
- Structure d’une commande
- Manipuler des fichiers
- Automatiser des tâches
- Annexe 1 : Une liste de commandes de base
💡 Pourquoi choisir ce cours ?
Le support, signé Thierry Vaira, propose une progression pragmatique reliant concepts POSIX et bonnes pratiques d'écriture de scripts à des repères concrets d'administration. Le PDF privilégie la pratique : invites explicites, conventions ($/#), exemples d'usage et une annexe condensée des commandes essentielles pour une mise en application rapide.
Public cible
Administrateurs systèmes juniors, développeurs back-end et étudiants en informatique souhaitant consolider leurs compétences en ligne de commande et automatisation sous GNU/Linux.
Prérequis
Notions de système d'exploitation, familiarité avec la ligne de commande (saisie de commandes simples et navigation dans l'arborescence) et capacité à éditer un fichier texte en mode texte.
Exercices pratiques et travaux dirigés
Exercices conçus pour mettre en pratique les notions vues dans le tutoriel et tester la portabilité sur une distribution Linux. Les séances incluent des cas concrets, corrections guidées et fiches de résolution, adaptés à Ubuntu et à d'autres distributions. Ces travaux couvrent l'administration réseau de base, la gestion fine des droits et l'automatisation via bash, avec des exercices corrigés pour valider les acquis.
- Configuration réseau
- Gestion des droits utilisateurs
- Automatisation de tâches
Historique et philosophie du système UNIX
Origines : UNIX a été conçu pour la portabilité, la simplicité et la composition d'outils. Ces principes restent essentiels pour l'administration moderne et le scripting Bash, et justifient les choix de conception enseignés dans ce tutoriel.
Historique et évolution d'UNIX à Linux
Brève chronologie permettant de situer les concepts enseignés et leur héritage technique. Cette perspective renforce la compréhension des conventions POSIX utiles au tutoriel Linux Ubuntu, à l'administration système Linux et aux exercices corrigés Linux basés sur la ligne de commande Bash.
- années 1970 — Naissance d'UNIX et premières philosophies d'outils modulaires
- années 1980 — Standardisation POSIX, diffusion universitaire et industrielle
- années 1990 — Apparition et maturation du noyau Linux ; outils GNU largement adoptés
- années 2000–2020 — Diversification des distributions et adoption massive dans les serveurs et le cloud
Comparatif des distributions Linux
Les familles de distributions diffèrent par leurs cycles de publication, leurs gestionnaires de paquets et leur positionnement (communautaire vs entreprise). Debian et Ubuntu privilégient la stabilité et la large disponibilité de paquets, facilitant la reproduction des exercices proposés dans ce cours. En revanche, les familles RHEL/CentOS (et dérivés d'entreprise) mettent l'accent sur le support commercial et des cycles de maintenance prolongés ; leurs outils et politiques peuvent imposer des adaptations pour l'administration en production. Ce comparatif permet d'anticiper les ajustements nécessaires lors du déploiement de scripts et d'opérations d'administration.
Comparatif des distributions : tableau récapitulatif
| Famille | Gestionnaire de paquets | Positionnement | Remarques pour ce cours |
|---|---|---|---|
| Debian / Ubuntu | apt (deb) | Communautaire, axé sur la stabilité | Exercices reproducibles sur Debian/Ubuntu ; recommandé pour le tutoriel Linux Ubuntu. |
| RHEL / CentOS / Fedora | dnf / yum (rpm) | Entreprise (RHEL/CentOS) ou innovation (Fedora) | Adaptations possibles : commandes et chemins système différents ; tester les scripts avant production. |
| Autres (Arch, Alpine) | pacman, apk | Rolling release, minimalistes | Utiles pour usages spécifiques ; scripts peuvent nécessiter des ajustements. |
Distributions et compatibilité
Portée : le contenu du cours s'applique principalement à Debian et Ubuntu, ainsi qu'à la plupart des systèmes de type UNIX. La compatibilité des scripts Bash tient à la présence d'un interpréteur Bourne-compatible (/bin/sh ou /bin/bash) et à l'utilisation d'outils standards POSIX. Pour garantir la portabilité, éviter les extensions spécifiques à une distribution et tester les scripts sur plusieurs environnements avant déploiement en production.
- Debian — stabilité et conformité POSIX
- Ubuntu — large adoption sur postes et serveurs
- Systèmes de type UNIX — principes communs mais variations d'outils
Exemples de commandes abordées
Fragments de commandes fréquemment illustrées dans le PDF et destinées à faciliter la mise en pratique : listes, filtrage, recherches, gestion de processus et opérations sur les fichiers. Pour aller plus loin dans la pratique, consultez notre cours sur maîtriser les commandes et appels systèmes.
# listes et détails
ls -la /etc
# filtrer et rechercher
grep -R --line-number "motif" /var/www | head
# recherche de fichiers et actions
find /tmp -type f -mtime +7 -exec rm -v {} \;
# gestion des droits
chmod 640 /srv/app/config.yml
chown root:app /srv/app/config.yml
# surveillance réseau/processus
ss -tulpn
systemctl status nginx
# boucle simple en bash
for f in *.log; do gzip --best "$f"; done