Aller au contenu
Linux : premiers pas

Linux : premiers pas

100 Comprendre ⏱ 14 h linuxbashubuntudebian

À la fin, vous saurez

  • Situer le noyau, l'espace utilisateur et la distribution, et choisir une distribution pour un serveur
  • Se repérer dans le shell, lire une commande et trouver l'aide d'une commande inconnue
  • Se déplacer dans l'arborescence et manipuler fichiers et répertoires sans rien perdre
  • Lire, filtrer et éditer du texte, et enchaîner des commandes par des tubes et des redirections
  • Comprendre l'environnement du shell et la variable PATH
  • Gérer utilisateurs, groupes, sudo et permissions, et diagnostiquer un « Permission denied »
  • Observer et arrêter des processus, piloter un service et lire ses journaux
  • Installer, mettre à jour et auditer des paquets en sécurité

Ce cours ouvre le chapitre Fondations. Il s'adresse aux personnes qui n'ont jamais administré de machine Linux, ou qui s'en servent en recopiant des commandes sans bien savoir ce qu'elles font : développeurs qui découvrent le serveur où tourne leur application, profils venus de Windows, étudiants. Il ne suppose rien, sinon de savoir ce qu'est un fichier et un dossier.

L'approche

Le cours ne présente pas un catalogue de commandes : il suit une situation. Vous arrivez dans l'équipe qui exploite Signalements, une petite API de signalement d'incidents de voirie, et l'on vous confie un accès au serveur Ubuntu où elle tourne. Il faut s'y repérer, lire ses journaux, comprendre pourquoi un fichier est illisible, arrêter un processus qui s'emballe, appliquer une mise à jour de sécurité. Chaque commande arrive au moment où l'on en a besoin, avec ce qu'elle fait réellement sous le capot.

Les exemples visent Ubuntu 24.04 LTS et Debian 13, les deux distributions que l'on rencontre le plus souvent sur les serveurs des clients de Lyneko et chez les hébergeurs français. Presque tout s'applique aux autres distributions ; les différences sont signalées.

Ce qu'il faut

Une machine Linux sur laquelle vous pouvez expérimenter sans risque, avec un compte qui a le droit d'utiliser sudo :

  • une machine virtuelle locale (VirtualBox, GNOME Boxes, ou Multipass qui crée une VM Ubuntu en une commande) ;
  • ou une petite instance chez un fournisseur de cloud, à supprimer ensuite (voir le cours Le cloud : les fondamentaux) ;
  • ou, sous Windows, WSL 2 avec Ubuntu, en sachant que les leçons sur les services (systemd) y demandent une configuration particulière.

N'utilisez pas un serveur de production pour apprendre : plusieurs exercices consistent précisément à casser quelque chose pour voir comment on le répare.

Les leçons

  1. Linux, le noyau et les distributions
  2. Le terminal et le shell
  3. L'arborescence et les chemins
  4. Manipuler fichiers et répertoires
  5. Lire et éditer du texte
  6. Redirections, tubes et codes de sortie
  7. L'environnement du shell
  8. Utilisateurs, groupes et sudo
  9. Les permissions
  10. Les processus et les signaux
  11. Services et journaux
  12. Les paquets et les mises à jour

Pour valider : le quiz (niveau 100) et le lab (niveau 200).

Plan du cours

  1. Linux, le noyau et les distributions 45 min 100 Comprendre
    Ce que l'on appelle « Linux » recouvre trois choses : un noyau, des outils de l'espace utilisateur, et une distribution qui assemble le tout et le maintient. Savoir les distinguer, lire la version de chacun, et choisir une distribution de serveur selon son cycle de vie.
  2. Le terminal et le shell 1 h 100 Comprendre
    Ce qui se passe entre la frappe d'une commande et son exécution : terminal, shell, anatomie d'une commande, commandes internes et externes, aide intégrée, historique, raccourcis et guillemets. Avec la preuve par strace que le shell crée un processus pour chaque programme.
  3. L'arborescence et les chemins 1 h 100 Comprendre
    Une seule arborescence, une racine, et une place pour chaque chose : la norme FHS, les répertoires d'un serveur, les chemins absolus et relatifs, ls lu colonne par colonne, les types de fichiers, les motifs du shell, et où vivent les fichiers d'une application comme Signalements.
  4. Manipuler fichiers et répertoires 1 h 15 100 Comprendre
    Créer, copier, déplacer et supprimer sans rien perdre : ce que font vraiment cp, mv et rm, les inodes et les liens, l'espace disque qui ne revient pas après une suppression, find pour agir en masse, et les archives tar, y compris celles qui veulent sortir de leur répertoire.
  5. Lire et éditer du texte 1 h 15 100 Comprendre
    Sous Linux, la configuration et les journaux sont du texte. Les lire sans s'y perdre (cat, less, head, tail -F), les résumer (wc, sort, uniq, cut, grep), comparer deux versions (diff -u), reconnaître un problème d'encodage ou de fin de ligne, et modifier un fichier de configuration avec nano, vim ou sudoedit sans casser le service.
  6. Redirections, tubes et codes de sortie 1 h 30 200 Pratiquer
    Ce que font vraiment >, 2>&1 et | : les trois flux standard, les descripteurs de fichiers, l'ordre des redirections, les tubes et leurs processus concurrents, les codes de sortie et leur lecture par &&, || et pipefail, avec une trace des appels système qui montre le shell au travail.
  7. L'environnement du shell 1 h 200 Pratiquer
    Variables de shell et variables d'environnement, héritage du parent vers l'enfant, la variable PATH et ses pièges, les fichiers de démarrage de Bash, et pourquoi une commande qui marche dans votre terminal échoue dans un service systemd ou sous sudo.
  8. Utilisateurs, groupes et sudo 1 h 15 200 Pratiquer
    Ce qu'est un utilisateur pour le noyau (un numéro), où vivent les comptes et les mots de passe, les comptes système, la création d'un compte de service, les groupes et leur piège classique, puis sudo : règles limitées, échappements vers un shell, journalisation et départ d'une personne.
  9. Les permissions 1 h 15 200 Pratiquer
    Lire et régler les droits d'un fichier et d'un répertoire sous Linux : propriétaire, groupe et autres, lecture, écriture et exécution, chmod, chown et umask, les bits setuid, setgid et sticky, une introduction aux ACL, et une méthode pour diagnostiquer un « Permission denied » sans jamais recourir à chmod 777.
  10. Les processus et les signaux 1 h 15 200 Pratiquer
    Ce qu'est un processus, comment le noyau les organise en arbre, comment les observer avec ps, top et /proc, et comment leur parler avec des signaux : arrêter proprement Signalements, comprendre un zombie, lire la charge moyenne sans contresens, et savoir qui écoute sur le port 8000.
  11. Services et journaux 1 h 15 200 Pratiquer
    Confier une application à systemd plutôt que la lancer à la main : unités, systemctl, fichier de service de Signalements, surcharges sans toucher aux fichiers du paquet, journal de systemd et ses filtres, rsyslog et logrotate, et la méthode pour diagnostiquer un service qui ne démarre pas.
  12. Les paquets et les mises à jour 1 h 15 200 Pratiquer
    Installer, mettre à jour et retirer des logiciels sur Ubuntu et Debian sans casser le serveur : paquets .deb, dpkg et APT, dépôts et signatures, ajout propre d'un dépôt tiers, mises à jour de sécurité automatiques et redémarrages, snap, et les équivalents sur Red Hat et Alpine.

Sources