Ces deux ensembles d'utilitaires, GNU Core Utilities alias Coreutils ainsi que util-linux, regroupent un grand nombre des outils les plus élémentaires et les plus régulièrement utilisés par l'administrateur système de Linux. Leurs fonctions de base permettent aux administrateurs système d'effectuer la plupart des tâches nécessaires à l'administration d'un ordinateur Linux, notamment la gestion et la manipulation des fichiers texte, des répertoires, des flux de données, des supports de stockage, des contrôles de processus, des systèmes de fichiers, et bien plus encore.
Ces outils sont indispensables car, sans eux, il est impossible d'accomplir le moindre travail utile sur un ordinateur Unix ou Linux. Compte tenu de leur importance, examinons-les.
Sommaire
GNU Core Utilities
Pour comprendre les origines des utilitaires de base GNU, nous devons faire un petit voyage dans la machine à remonter le temps jusqu'aux premiers jours d'Unix aux Bell Labs. Unix a été écrit pour que Ken Thompson, Dennis Ritchie, Doug McIlroy et Joe Ossanna puissent poursuivre quelque chose qu'ils avaient commencé alors qu'ils travaillaient sur un grand projet d'ordinateur multitâche et multi-utilisateur appelé Multics. Ce petit quelque chose était un jeu appelé Space Travel. Comme c'est encore le cas aujourd'hui, ce sont toujours les joueurs qui font avancer la technologie de l'informatique. Ce nouveau système d'exploitation était beaucoup plus limité que Multics, puisque seuls deux utilisateurs pouvaient se connecter à la fois. Il fût dans un premier temps appelé Unics. Ce nom a ensuite été changé en Unix.
Au fil du temps, Unix a connu un tel succès que les laboratoires Bell ont commencé à le distribuer aux universités et, plus tard, aux entreprises, moyennant le coût du support et de l'expédition. À l'époque, les logiciels de niveau système étaient partagés entre les organisations et les programmeurs qui s'efforçaient d'atteindre des objectifs communs dans le cadre de l'administration du système.
Finalement, les dirigeants d'AT&T ont décidé qu'ils devaient gagner de l'argent avec Unix et ont commencé à utiliser des licences plus restrictives et plus coûteuses. Cela se passait à une époque où les logiciels devenaient de plus en plus propriétaires, restreints et fermés. Il devenait impossible de partager les logiciels avec d'autres utilisateurs et organisations.
Certaines personnes n'ont pas apprécié cette évolution et l'ont combattue avec les logiciels libres. Richard M. Stallman, alias RMS, était à la tête d'un groupe de rebelles qui tentaient d'écrire un système d'exploitation ouvert et librement disponible qu'ils appelaient le système d'exploitation GNU. Ce groupe a créé les utilitaires GNU mais n'a pas produit de noyau viable.
Lorsque Linus Torvalds a écrit et compilé le noyau Linux pour la première fois, il avait besoin d'un ensemble d'utilitaires système très basiques pour commencer à effectuer un travail marginalement utile. Le noyau ne fournit pas de commandes ni aucun type d'interpréteur de commandes tel que Bash. Il est inutile en soi. Linus a donc utilisé les GNU Core Utilities disponibles gratuitement et les a recompilés pour Linux. Il a ainsi obtenu un système d'exploitation complet, même s'il est assez basique.
Vous pouvez découvrir tous les programmes individuels qui composent les GNU Core Utilities en entrant la commande info coreutils dans la ligne de commande d'un terminal. La liste suivante des utilitaires de base fait partie de cette page d'information. Les utilitaires sont regroupés par fonction pour faciliter la recherche de certains d'entre eux. Dans le terminal, sélectionnez le groupe sur lequel vous souhaitez obtenir plus d'informations et appuyez sur la touche Entrée.
Cette liste contient 102 utilitaires. Elle couvre la plupart des fonctions nécessaires à l'exécution des tâches de base sur un hôte Unix ou Linux. Cependant, de nombreux utilitaires de base manquent. Par exemple, les commandes mount et umount ne figurent pas dans cette liste. Ces commandes et beaucoup d'autres qui ne sont pas dans les Coreutils peuvent être trouvées dans la collection util-linux.
Util-linux
Le paquet d'utilitaires util-linux contient de nombreuses autres commandes courantes utilisées par les administrateurs système. Ces utilitaires sont distribués par la Linux Kernel Organization, et la quasi-totalité de ces 107 commandes étaient à l'origine trois collections distinctes :
- fileutils
- shellutils
- textutils
Elles furent ensuite regroupées dans le paquet unique util-linux en 2003.
Certains de ces utilitaires sont obsolètes et seront probablement retirés de la collection à l'avenir.
GNU Core utilities et Util-linux, des indispensables pour les administrateurs !
Ces deux collections d'utilitaires Linux, les GNU Core Utilities et util-linux, fournissent ensemble les utilitaires de base nécessaires à l'administration d'un système Linux. Au cours de mes recherches, j'ai découvert plusieurs utilitaires intéressants dont je n'avais jamais entendu parler. Beaucoup de ces commandes sont rarement utilisées, mais lorsqu'on en a besoin, elles sont indispensables.
Ces deux collections comptent plus de 200 utilitaires Linux. Bien que Linux dispose de beaucoup plus de commandes, celles-ci sont nécessaires pour gérer les fonctions de base d'un hôte Linux typique. Pour ceux qui recherchent une version plus légère de Coreutils, vous pouvez opter pour l'alternative BusyBox.
Liste complète des commandes GNU Core Utilities et leurs fonctions
Utilitaires de fichiers
| Nom | Description |
|---|---|
| chcon | Change le contexte de sécurité d'un fichier (SELinux) |
| chgrp | Change le groupe de propriété d'un fichier |
| chown | Change la propriété d'un fichier |
| chmod | Change les permissions d'un fichier ou d'un répertoire |
| cp | Copie un fichier ou un répertoire |
| dd | Copie et convertit un fichier |
| df | Affiche l'espace disque libre sur les systèmes de fichiers |
| dir | Identique à "ls -C -b". (Les fichiers sont par défaut listés en colonnes et triés verticalement.) |
| dircolors | Configure les couleurs pour ls |
| install | Copie des fichiers et définit des attributs |
| ln | Crée un lien vers un fichier |
| ls | Liste les fichiers dans un répertoire |
| mkdir | Crée un répertoire |
| mkfifo | Crée des tubes nommés (FIFOs) |
| mknod | Crée des fichiers spéciaux de bloc ou de caractère |
| mktemp | Crée un fichier ou un répertoire temporaire |
| mv | Déplace ou renomme des fichiers |
| realpath | Retourne le chemin absolu ou relatif résolu d'un fichier |
| rm | Supprime des fichiers, répertoires, nœuds de périphériques et liens symboliques |
| rmdir | Supprime des répertoires vides |
| shred | Écrase un fichier pour cacher son contenu, et éventuellement le supprime |
| sync | Vide les tampons du système de fichiers |
| touch | Change les horodatages des fichiers ; crée un fichier |
| truncate | Réduit ou étend la taille d'un fichier à la taille spécifiée |
| vdir | Identique à "ls -l -b". (Les fichiers sont par défaut listés en format long.) |
Utilitaires de texte
| Nom | Description |
|---|---|
| b2sum | Calcule et vérifie le résumé de message BLAKE2b |
| base32 | Encode ou décode en Base32, et affiche le résultat sur la sortie standard |
| base64 | Encode ou décode en Base64, et affiche le résultat sur la sortie standard |
| cat | Concatène et affiche des fichiers sur la sortie standard |
| cksum | Calcule le contrôle d'intégrité (CRC-32 Ethernet IEEE) et compte les octets dans un fichier. Remplace les autres utilitaires *sum avec l'option -a à partir de la version 9.0. |
| comm | Compare deux fichiers triés ligne par ligne |
| csplit | Divise un fichier en sections déterminées par des lignes de contexte |
| cut | Supprime des sections de chaque ligne des fichiers |
| expand | Convertit les tabulations en espaces |
| fmt | Formatteur de texte simple et optimal |
| fold | Enroule chaque ligne d'entrée pour qu'elle tienne dans la largeur spécifiée |
| head | Affiche la première partie des fichiers |
| join | Joint les lignes de deux fichiers sur un champ commun |
| md5sum | Calcule et vérifie le résumé de message MD5 |
| nl | Numérote les lignes des fichiers |
| numfmt | Reformate les nombres |
| od | Affiche les fichiers en octal et autres formats |
| paste | Fusionne les lignes des fichiers |
| ptx | Produit un index permuté du contenu des fichiers |
| pr | Convertit les fichiers texte pour impression |
| sha1sum | Calcule et vérifie le résumé de message SHA-1 |
| sha224sum | Calcule et vérifie le résumé de message SHA-224 |
| sha256sum | Calcule et vérifie le résumé de message SHA-256 |
| sha384sum | Calcule et vérifie le résumé de message SHA-384 |
| sha512sum | Calcule et vérifie le résumé de message SHA-512 |
| shuf | Génère des permutations aléatoires |
| sort | Trie les lignes des fichiers texte |
| split | Divise un fichier en morceaux |
| sum | Calcule et compte les blocs dans un fichier |
| tac | Concatène et affiche les fichiers en ordre inverse ligne par ligne |
| tail | Affiche la dernière partie des fichiers |
| tr | Traduit ou supprime des caractères |
| tsort | Effectue un tri topologique |
| unexpand | Convertit les espaces en tabulations |
| uniq | Supprime les lignes dupliquées d'un fichier trié |
| wc | Affiche le nombre de bytes, mots et lignes des fichiers |
Utilitaires de shell
| Nom | Description |
|---|---|
| arch | Affiche le nom du matériel de la machine (identique à uname -m) |
| basename | Supprime le préfixe du chemin d'un nom de fichier donné |
| chroot | Change le répertoire racine |
| date | Affiche ou définit la date et l'heure du système |
| dirname | Supprime le suffixe non répertoire du nom de fichier |
| du | Affiche l'utilisation du disque sur les systèmes de fichiers |
| echo | Affiche une ligne de texte spécifiée |
| env | Affiche et modifie les variables d'environnement |
| expr | Évalue des expressions |
| factor | Décompose des nombres en facteurs premiers |
| false | Ne fait rien, mais se termine avec un échec |
| groups | Affiche les groupes auxquels appartient l'utilisateur |
| hostid | Affiche l'identifiant numérique de l'hôte actuel |
| id | Affiche l'UID et le GID réel ou effectif |
| link | Crée un lien vers un fichier |
| logname | Affiche le nom de connexion de l'utilisateur |
| nice | Modifie la priorité de planification |
| nohup | Permet à une commande de continuer à s'exécuter après la déconnexion |
| nproc | Interroge le nombre de processeurs (actifs) |
| pathchk | Vérifie si les noms de fichiers sont valides ou portables |
| pinky | Une version allégée de finger |
| printenv | Affiche les variables d'environnement |
| printf | Formate et affiche des données |
| pwd | Affiche le répertoire de travail actuel |
| readlink | Affiche la valeur d'un lien symbolique |
| runcon | Exécute une commande avec le contexte de sécurité spécifié |
| seq | Affiche une séquence de nombres |
| sleep | Délai pour une durée spécifiée |
| stat | Affiche des informations sur un inode |
| stdbuf | Contrôle le buffering pour les commandes utilisant stdio |
| stty | Change et affiche les paramètres de la ligne de terminal |
| tee | Envoie la sortie vers plusieurs fichiers |
| test | Évalue une expression |
| timeout | Exécute une commande avec une limite de temps |
| true | Ne fait rien, mais se termine avec succès |
| tty | Affiche le nom du terminal |
| uname | Affiche des informations sur le système |
| unlink | Supprime le fichier spécifié en utilisant la fonction unlink |
| uptime | Affiche depuis combien de temps le système fonctionne |
| users | Affiche les noms d'utilisateur des utilisateurs actuellement connectés à l'hôte actuel |
| who | Affiche une liste de tous les utilisateurs actuellement connectés |
| whoami | Affiche l'UID effectif |
| yes | Affiche une chaîne de caractères de manière répétée |
| [ | Synonyme de test ; ce programme permet des expressions comme [ expression ] |
FAQ : GNU Core Utilities
GNU Core Utilities contient 102 utilitaires de base (ls, cp, mv, etc.) tandis qu'util-linux contient 107 commandes système (mount, umount, etc.). Ensemble, ils forment plus de 200 commandes essentielles.
Utilisez la commande 'info coreutils' dans le terminal pour accéder à la documentation complète avec tous les utilitaires organisés par fonction.
Oui, nous proposons des formations Linux pour maîtriser les GNU Core Utilities et l'administration système. Perfectionnez vos compétences en ligne de commande.