La ligne de commande sous Linux est un outil puissant pour contrôler le système et gérer efficacement les tâches. Avec autant de logiciels de terminaux différents disponibles, les utilisateurs peuvent choisir celui qui correspond le mieux à leurs besoins, que ce soit en termes de fonctionnalités, d'interface ou de performances. Dans cet article, nous passerons en revue quelques-uns des programmes de terminaux Linux les plus connus que vous ne connaissez peut-être pas, et comment chacun d'eux peut améliorer votre expérience de ligne de commande.
Linux bénéficie des principes éthiques forts de la conception Unix. Les programmes communiquent via du texte, vous pouvez les intégrer via des pipelines et ils font bien une chose. Mais sinon, les programmes peuvent se comporter de manière très différente et présenter de nombreux comportements différents.
Opérations en arrière-plan
Un système d’exploitation multitâche, tel que Linux, exécute de nombreux programmes différents en même temps. Ceux qui s’exécutent sans contrôle direct de l’utilisateur sont appelés processus d’arrière-plan. Il n’existe qu’un seul type de processus d’arrière-plan, appelé « démon ».
1. Démon
Le terme « démon » est étrange, mais il signifie simplement « processus d’arrière-plan ». Un démon utilise généralement des astuces pour continuer à fonctionner, peu importe ce qui se passe sur le système. Par exemple, il divisera une copie de lui-même qui s'exécutera indépendamment du shell. Des services comme inetd ou launchd peuvent le faire au nom du programme et sont eux-mêmes des démons.
Les noms de démons se terminent souvent par « d », par exemple httpd (serveur Web Apache), inetd (serveur de services Internet) et systemd.
Si un programme externe (ou l'utilisateur) doit communiquer avec le démon, il le fait généralement en envoyant un signal indiquant au démon de redémarrer ou de recharger sa configuration, par exemple. Vous pouvez utiliser l'outil ps pour détecter les démons exécutés sur votre système.
Interface de ligne de commande
La plupart des programmes Linux disposent d'une interface de ligne de commande, ce qui signifie que vous les utilisez en tapant des commandes texte. Ce sont les programmes de terminaux les plus courants et généralement les plus faciles à utiliser. Ces programmes démarrent généralement, s'exécutent rapidement, puis s'arrêtent une fois terminés.
2. Cantrip
Le type de programme le plus simple, appelé familièrement « cantrip », fonctionne simplement sans entrée ni sortie. Ces programmes opèrent souvent sur des fichiers ou exécutent des tâches liées à l'administrateur système. Le programme rm, qui supprime un fichier, en est un exemple typique :
rm myfile.txt
Si le fichier existe, la commande rm le supprimera et votre terminal imprimera votre invite de commande sur la ligne suivante, en attendant le prochain programme ou la prochaine commande :
La commande rm dispose de quelques options permettant de contrôler son exécution, mais sa simplicité réside dans son absence d'entrée et de sortie.
3. Filtre
De nombreux programmes Linux sont exactement le contraire : ils nécessitent une entrée et produisent une sortie. Ces programmes modifient souvent leurs entrées d'une manière ou d'une autre, et ils sont nombreux : cut, head, sort, uniq, etc.
La commande grep illustre particulièrement bien la signification de filter : elle examine chaque ligne d'entrée et la reproduit en sortie si elle répond à une certaine condition. Dans le cas de grep, la condition est une expression régulière qui correspond à un modèle de texte spécifique :
Les filtres sont excellents pour gérer les données et sont couramment utilisés dans les pipelines qui relient plusieurs commandes ensemble pour effectuer une tâche complexe. Vous pouvez même combiner ces outils pour créer une base de données rudimentaire.
4. Évier
Contrairement aux filtres, il y a très peu de drains. Ce type de programme prend des entrées, mais ne produit aucune sortie – du moins, aucune sortie sur l’écran de votre terminal. Un exemple de ceci est le lpr, une imprimante ligne, qui imprime un fichier ou une entrée standard sur du papier.
Les banques diffusent souvent leurs données sur d'autres supports que l'écran, comme le logiciel espeak qui convertit le texte en parole audio.
5. La source
L'opposé de Sink est « Sink », un programme qui produit une sortie sans traiter aucune entrée. Les programmes sources obtiennent leurs données d’ailleurs : de l’environnement ou d’un fichier appelé en argument, par exemple.
ls utilise différentes méthodes pour répertorier les fichiers, mais ne gère jamais l'entrée standard. Dans sa forme la plus simple, ls n'a même pas besoin d'arguments :
ls
Par défaut, la commande ls s'exécute sur le répertoire courant et imprime son contenu. Vous pouvez afficher les détails d'un autre répertoire, fichier ou groupe de fichiers en transmettant des arguments de ligne de commande :
ls /tmp
ls /etc/passwd
ls ~/.*
6. Traducteur
Un interpréteur est, sans aucun doute, le type de programme d’interface de ligne de commande le plus complexe et est généralement destiné à la programmation. Le traducteur fonctionne comme n'importe quel autre programme, mais il peut prendre plus de temps à terminer car son travail peut être très complexe.
Leurs noms se terminent souvent par « c » pour « compilateur » : cc, javac ou rustc. Un compilateur est quelque peu similaire à un cantrip, mais il fonctionne toujours avec des fichiers, convertissant un type de données en un autre.
Le compilateur C, cc, illustre le comportement typique d'un compilateur :
cc file1.c file2.c -o program
Cette commande exécute le compilateur sur deux fichiers — file1.c et file2.c — pour générer un troisième fichier appelé programme. Ici, le paramètre « -o » fait référence au « fichier de sortie ».
Il est important de noter que le traducteur peut extraire des fichiers supplémentaires, en fonction de sa tâche ou de la langue de base. Un programme C comme file1.c peut inclure un fichier d'en-tête (tel que file1.h) que le compilateur identifiera et utilisera pour générer le programme final, même s'il n'est pas explicitement nommé lors de l'exécution de la commande.
C’est en partie ce qui rend les traducteurs si complexes : ils peuvent faire beaucoup de choses en coulisses sans avoir à recevoir directement l’instruction de le faire.
Programmes interactifs
Tous les programmes ci-dessus fonctionnent de manière non interactive. Lorsque vous l'allumez, vous n'avez aucun contrôle direct sur la façon dont il est joué. Les deux derniers types de logiciels sont très différents.
7. Ligne par ligne
La forme d’interaction la plus simple est une ligne à la fois. Au début de l’histoire d’Unix, ces commandes étaient très populaires car elles s’exécutaient sur des téléscripteurs : des machines à écrire glorifiées qui fonctionnaient une ligne à la fois.
Aujourd’hui, ces programmes semblent « interactifs seulement de nom », mais dans les années 1960, ils étaient tout à fait révolutionnaires. Si vous êtes courageux, vous pouvez faire revivre le bon vieux temps avec Rédacteur de texte original, éditeur:
Ce script ed montre des commandes qui écrivent le texte « hello world » dans un fichier appelé foo.txt. L'utilisateur tape certaines de ces lignes : « a » est une commande pour ajouter du texte au tampon, « p » imprime le tampon actuel et « w » écrit le tampon dans un fichier. Après l'écriture, ed indique le nombre d'octets écrits, dans ce cas 13.
conseil
Si vous devez retenir une chose à propos d’ed, ce devrait être la commande « q » qui termine le programme. Il n'enregistrera aucun nouveau texte que vous saisissez, mais si vous exécutez accidentellement ed, taper « q » suivi d'Entrée vous permettra de le quitter le plus rapidement possible !
Comme vous pouvez le constater, l’édition de texte ligne par ligne est un processus fastidieux qui peut être sujet à des erreurs. Ed peut être utile en cas d'urgence, mais les programmes ligne par ligne sont généralement obsolètes.
8. UIS
Une bien meilleure alternative aux programmes interactifs, en particulier aux éditeurs de texte, est le style TUI. Ce nom distingue ces programmes des applications GUI, qui utilisent des graphiques pour obtenir à peu près le même type de résultat : un programme véritablement interactif.
L'éditeur de texte, vim, est toujours fortement basé sur les commandes, mais vous pouvez l'utiliser pour parcourir un fichier texte, rechercher du texte, supprimer des morceaux entiers et voir tout ce qui se passe à l'écran, en temps réel. Les interfaces utilisateur textuelles modernes font un usage intensif des couleurs et des caractères en forme de boîte pour se rapprocher de l'interface graphique :
Même si vous ne verrez pas toujours de références à ces types de programmes, il est utile de savoir qu’ils existent et de comprendre ce qu’ils font. Chaque type possède certains atouts et peut être utilisé dans certains contextes pour accomplir diverses tâches.
Choisir le bon logiciel de terminal peut faire une grande différence dans la façon dont vous interagissez avec votre système Linux. En essayant ces excellents programmes, vous pourrez améliorer votre efficacité et augmenter votre productivité lorsque vous utilisez la ligne de commande. N'hésitez pas à explorer ces options et à choisir ce qui correspond à vos besoins pour obtenir la meilleure expérience utilisateur possible.









