Chez un transporteur de Roubaix, l'export du chiffre d'affaires part tous les lundis à 6 heures et arrive dans le tableur du cabinet comptable. Depuis trois semaines les montants y sont du texte : 1240.50 au lieu de 1 240,50. Personne n'a touché au programme, la tâche planifiée se termine sans erreur, et le même script lancé à la main par Awa Diarra écrit le fichier correctement.
Un service systemd ne reçoit pas la locale de votre session. C'est le sujet entier de cette page en une phrase : un programme ne s'exécute jamais nu, il s'exécute dans un jeu de décisions prises avant lui par le système, et la moitié des pannes qui ressemblent à un logiciel cassé sont en réalité une de ces décisions qui a changé.
Les quatre décisions prises avant que votre programme ne démarre
Un système d'exploitation n'est pas le bureau. C'est ce qui décide quel processus obtient le processeur ensuite, qui a le droit d'ouvrir quel fichier, dans quelle langue la machine compte et trie, et lequel de deux programmes obtient le périphérique quand tous les deux le demandent. Aucune de ces quatre décisions n'est visible tant qu'elle est juste, et c'est ce qui fait le rôle d'un système difficile à apprendre : la matière ne se montre qu'en panne.
Aucune des quatre ne vient en premier, et l'ordre n'existe pas parce qu'une panne dans l'une arrive toujours déguisée en panne dans une autre. Une machine lente n'est presque jamais lente ; elle attend un disque, ou elle a perdu un droit. Un fichier illisible n'est presque jamais corrompu ; il est lu par un utilisateur qui n'est pas celui qu'on croit. La quatrième décision est celle que les pages anglophones ne nomment pas, parce qu'en anglais elle ne coûte rien : la locale décide la virgule décimale, l'ordre alphabétique et la façon dont une majuscule accentuée est comparée.
Ce que le système répond quand on lui pose la question dans ses termes
Cinq commandes suffisent à séparer ce qui tourne de ce qui fonctionne, et chacune rend une réponse courte.
localectl statusimprime la locale du système et la disposition du clavier, et c'est ce que voit un service, pas ce que voit votre terminalsystemctl --failedliste en un écran toutes les unités tombées, ce qu'aucune liste de processus ne montrera jamaissystemctl show -p Environment export-hebdo.serviceimprime l'environnement réel de l'unité, presque toujours videsystemctl cat export-hebdo.servicerend le fichier d'unité tel qu'il est appliqué, surcharges comprisesLC_ALL=Cdevant une commande fige sa locale le temps d'une exécution
À Roubaix les trois premières ont suffi. localectl status annonce fr_FR.UTF-8, ce qui explique pourquoi le script lancé à la main est correct. systemctl show -p Environment export-hebdo.service rend une ligne vide : l'unité n'a aucune variable, donc la bibliothèque C retombe sur la locale C, où le séparateur décimal est le point. La tâche ne pouvait pas échouer, puisque rien n'avait échoué. Elle écrivait un nombre parfaitement valide dans une convention que personne dans la chaîne n'attendait.
Il y a deux réparations et elles ne se valent pas. Ajouter Environment=LC_ALL=fr_FR.UTF-8 à l'unité règle le lundi suivant et déplace le problème sur la machine du cabinet comptable, qui peut très bien être ailleurs. Écrire le format dans le programme, en demandant explicitement une virgule et un séparateur de milliers, règle le cas pour de bon. La règle qui reste vraie ensuite : LC_ALL=C fige la locale d'une commande et rend sa sortie comparable, ce qui est exactement ce qu'il faut dans un script et exactement ce qu'il ne faut pas dans un fichier destiné à un humain français.
Trois chiffres, et un bit qui ne fait pas ce que son nom annonce
La deuxième décision se lit en trois chiffres et chaque chiffre est une petite somme. Quatre vaut lire, deux vaut écrire, un vaut exécuter, et le chiffre est ce total pour un public : le propriétaire, puis le groupe, puis tout le monde. Un fichier en 640 se lit par son propriétaire et par son groupe et par personne d'autre, ce qui est le réglage juste pour le fichier de configuration qui contient un mot de passe de base de données.
Le piège est le troisième bit. Sur un dossier, le bit d'exécution donne le droit d'entrer, pas celui d'exécuter, et c'est la source d'une confusion très précise : un dossier en 644 existe, s'affiche dans une liste, et ne s'ouvre pas. Le message parle d'une permission refusée sur un chemin dont chaque élément semble lisible. 755 est la réponse ordinaire pour un dossier, et le raisonnement derrière ce nombre vaut plus que le nombre : entrer dans un dossier est une action, et une action se demande avec le bit d'exécution.
Trois systèmes, deux questions
Ce qui passe de l'un à l'autre, et ce qu'il faut apprendre deux fois
La famille du système, et le fait qu'il soit tenu un poste à la fois ou par centaines. Le couple décide quelle part d'un métier se reporte sur le suivant.
tenu un poste à la fois
tenu en parc
Elle ne dit pas lequel vaut mieux, et la case où quelqu'un travaille est choisie par son employeur bien plus souvent que par lui. La case qui réunit la famille Unix et le parc n'est pas réservée aux serveurs, puisque la Gendarmerie nationale y tient ses postes de travail depuis 2008.
Le poste n'est pas le vôtre, et c'est là qu'on s'arrête
Le blocage n'est pas la syntaxe. Une personne qui apprend en France rencontre presque toujours son premier système sur une machine de travail : pas de droits d'administration, l'installation refusée par une stratégie de groupe, sudo qui répond que le compte n'est pas au sudoers. Le cours demande un geste que le poste interdit, et la conclusion tirée est que le sujet n'est pas pour soi. Elle est fausse et elle est prévisible : tout ce qui précède se lit sans le moindre droit supplémentaire, et une machine virtuelle sur son propre matériel rend les droits que l'employeur ne donnera pas, ce qui est l'argument entier des machines virtuelles.
L'autre idée reçue à défaire est que le poste administré en parc est forcément un poste Windows. La Gendarmerie nationale fait tourner GendBuntu, une Ubuntu maintenue pour elle, sur ses postes de travail depuis 2008, et la direction interministérielle du numérique publie chaque année le socle interministériel de logiciels libres, qui nomme ce que l'administration française déploie réellement. Un lecteur français a donc sous les yeux un contre-exemple que la plupart des pages anglophones n'ont pas. En pratique Linux et macOS partagent la même famille et presque tout ce qui s'apprend au terminal passe de l'un à l'autre, tandis que Windows a son shell, ses listes de contrôle d'accès et son annuaire, et ne partage que l'habitude d'interroger la machine au lieu de deviner.
Ce qu'il faut ouvrir en 2026
systemd est le gestionnaire de services de toute distribution Linux récente et journalctl est la façon de lire ce qu'il a fait. Le couple a remplacé les scripts d'init et les fichiers de journal éparpillés, que décrit encore toute documentation antérieure à 2015 environ, et il ne coûte rien puisqu'il est déjà là. localectl arrive avec lui. winget est le gestionnaire de paquets de Microsoft, livré avec Windows 11 et disponible sur Windows 10 ; il a remplacé la recherche d'un installeur sur un site, qui est la manière dont on attrape autre chose que ce qu'on installait.
Pour essayer un système sans le posséder, VirtualBox reste gratuit et UTM tient le même rôle sur les Mac à puce Apple. Tous deux ont remplacé la seconde machine gardée sous le bureau pour tenter des choses. Le vrai argument n'est pas le prix, c'est que la machine virtuelle s'annule : un instantané pris avant la manipulation rend la bêtise gratuite, et c'est la seule façon d'apprendre une administration sans attendre d'y être autorisé.
Ce qui reste quand la machine et le système sont propres
Il reste la panne dont la cause n'est pas sur la machine du tout. Un service actif, un droit correct, une locale juste, et le fichier qui n'arrive pas chez le comptable : la question a changé d'étage et elle appartient aux réseaux informatiques, où la première chose à établir est quelle couche ment. En dessous, l'ordinateur reste l'endroit où l'on vérifie que le matériel n'invente rien ; au-dessus, les serveurs sont ce même système sans personne devant l'écran. Ce qui relie les trois, et qui manque à presque tout le monde avant d'y arriver, est la ligne de commande, parce que les cinq réponses de cette page sont du texte et que filtrer du texte se décide là. L'ordre complet est posé dans les systèmes et les réseaux.