La ligne de commande a presque 50 ans, mais elle n’est pas obsolète. Les terminaux basés sur du texte restent le meilleur moyen d’accomplir de nombreuses tâches, même à l’ère des ordinateurs de bureau graphiques et des gadgets à écran tactile.
En fait, la ligne de commande devient plus respectée que jamais avec Microsoft créant une nouvelle application Windows Terminal puissante. L’environnement PowerShell de Windows 10 est étonnamment puissant, mais Microsoft a tout de même fait tout son possible pour ajouter la prise en charge de l’environnement de ligne de commande Linux complet à Windows 10.
Table des matières
La ligne de commande était autrefois la seule option
À un moment donné, si vous vouliez interagir avec un ordinateur, vous avez tapé. C’était ça. Il n’y avait rien d’autre. Cela peut sembler restrictif et archaïque, mais pour éviter d’avoir à utiliser des cartes perforées ou des bandes de papier perforées, la frappe était radicale et transformatrice. Et la migration des téléscripteurs avec leurs rouleaux de papier vers des terminaux avec Tube à rayons cathodiques (CRT) a été un autre changement fondamental dans les interactions humaines et informatiques.
Cette étape a permis au shell interactif de prendre tout son sens. Vous pouvez désormais envoyer des instructions à l’ordinateur et afficher très rapidement les réponses sur votre écran. Fini le claquement-claquement-claquement en attendant que votre impression papier se fraye un chemin hors de votre téléimprimeur.
Très bien, mais c’était alors, c’est maintenant. L’informatique est un tout autre jeu de balle. Outre les cas évidents verrouillés, comme l’utilisation d’un ordinateur sur lequel n’est pas installé un environnement de bureau graphique, ou l’utilisation d’un ordinateur distant via SSH via une connexion à faible bande passante, ou en contrôlant un sans tête ou embarqué système, pourquoi utiliser la ligne de commande sur un bureau graphique?
Jargon expliqué
Des termes tels que ligne de commande, fenêtre de terminal et shell sont utilisés de manière presque interchangeable par certaines personnes. C’est un jargon incorrect. Ils sont tous très différents. Ils sont liés, mais ce n’est pas la même chose.
Une fenêtre de terminal est une fenêtre dans un environnement de bureau graphique qui exécute une émulation d’un terminal de téléscripteur.
Le shell est le programme qui s’exécute dans la fenêtre du terminal. Il prend votre entrée et, en fonction de ce que vous avez tapé, essaie d’interpréter et d’exécuter les instructions elles-mêmes, de les transmettre à certains des autres utilitaires qui composent le système d’exploitation, ou de trouver un script ou un programme qui correspond à ce que vous avez tapé.
La ligne de commande est l’endroit où vous tapez. C’est l’invite que le shell présente lorsqu’il attend que vous entriez des instructions. Le terme «ligne de commande» est également utilisé pour désigner le contenu réel de ce que vous avez tapé. Par exemple, si vous parlez à un autre utilisateur de l’ordinateur d’une difficulté que vous avez rencontrée lors de la tentative d’exécution d’un programme, il peut vous demander: «Quelle ligne de commande avez-vous utilisée?» Ils ne demandent pas quel shell vous utilisiez; ils veulent savoir quelle commande vous avez tapée.
Au total, ceux-ci se combinent pour former le interface de ligne de commande (CLI).
Pourquoi utiliser la ligne de commande en 2019?
La CLI peut sembler rétrograde et déroutante pour ceux qui ne la connaissent pas. Il n’y a sûrement pas de place dans un système d’exploitation moderne pour une manière aussi démodée et geek d’utiliser un ordinateur? N’avons-nous pas abandonné tout cela il y a des décennies lorsque des fenêtres, des icônes et des souris sont apparues et des environnements de bureau graphiques avec interfaces utilisateur graphiques (GUI) est devenu disponible?
Oui, l’interface graphique existe depuis des décennies. La première version de Microsoft Windows était sorti en 1985 et est devenu la norme de bureau PC avec la sortie de Windows 3.0 en 1990.
Le système X Window, utilisé sous Unix et Linux, était introduit en 1984. Cela a amené des environnements de bureau graphiques à Unix et à ses nombreux dérivés, clones et dérivés.
Mais la sortie d’Unix précède ces événements par un plus d’une décennie. Et comme il n’y avait pas d’autre option, tout devait être possible via la ligne de commande. Toute interaction humaine, toute configuration, chaque utilisation de l’ordinateur devait pouvoir être effectuée via l’humble clavier.
Ainsi, ipso facto, la CLI peut tout faire. Une interface graphique ne peut toujours pas faire tout ce que la CLI peut faire. Et même pour les parties qu’il peut faire, la CLI est généralement plus rapide, plus flexible, peut être scriptée et est évolutive.
Et il y a une norme.
Ils sont standardisés grâce à POSIX
POSIX est un standard pour les systèmes d’exploitation de type Unix— En gros, tout ce qui n’est pas Windows. Et même Windows a le sous-système Windows pour Linux (WSL.) Ouvrez une fenêtre de terminal sur n’importe quel système d’exploitation compatible POSIX (ou proche de conforme), et vous vous retrouverez dans un shell. Même si le shell ou la distribution fournissent leurs propres extensions et améliorations, tant qu’ils fournissent la fonctionnalité POSIX de base, vous pourrez l’utiliser immédiatement. Et vos scripts fonctionneront.
La ligne de commande est le plus petit dénominateur commun. Apprenez à l’utiliser et, indépendamment de la distribution Linux et de l’environnement de bureau graphique, vous serez en mesure d’effectuer toutes les tâches dont vous avez besoin. Différents bureaux ont leur propre façon de faire les choses. Différentes distributions Linux regroupent divers utilitaires et programmes.
Mais ouvrez une fenêtre de terminal et vous vous sentirez comme chez vous.
Les commandes sont conçues pour fonctionner ensemble
Chacune des commandes Linux est conçue pour faire quelque chose en particulier et pour bien faire quelque chose. La philosophie de conception sous-jacente consiste à ajouter plus de fonctionnalités en ajoutant un autre utilitaire qui peut être canalisé ou enchaîné avec ceux existants pour obtenir le résultat souhaité.
C’est tellement utile que Microsoft a fait tout son possible pour ajouter la prise en charge de la ligne de commande Linux complète à Windows 10!
Par exemple, la commande de tri est utilisée par d’autres commandes pour trier le texte par ordre alphabétique. Il n’est pas nécessaire d’intégrer une capacité de tri dans chacune des autres commandes Linux. Généralement, les applications GUI ne permettent pas ce type d’interfonctionnement collaboratif.
Regardez l’exemple suivant. Cela utilise la commande ls pour lister les fichiers dans le répertoire courant. Les résultats sont envoyés dans la commande de tri et trié sur la cinquième colonne de données (qui est la taille du fichier). La liste triée est ensuite dirigée vers la commande head qui, par défaut, répertorie les dix premières lignes de son entrée.
ls -l | sort -nk5,5 | head
Nous obtenons une liste soignée des plus petits fichiers du répertoire courant.
En changeant une commande – en utilisant tail au lieu de head – nous pouvons obtenir une liste des dix plus gros fichiers du répertoire courant.
ls -l | sort -nk5,5 | tail
Cela nous donne notre liste des dix plus gros fichiers, comme prévu.
La sortie des commandes peut être redirigée et capturée dans des fichiers. La sortie régulière (stdin) et les messages d’erreur (stderr) peuvent être capturés séparément.
Les commandes peuvent inclure des variables d’environnement. La commande suivante listera le contenu de votre répertoire personnel:
ls $HOME
Cela fonctionne où que vous soyez dans l’arborescence des répertoires.
Si l’idée de toute cette saisie vous dérange toujours, des techniques telles que la complétion par tabulation peuvent réduire la quantité de frappe que vous devez faire.
Les scripts permettent l’automatisation et la répétabilité
Les humains sont sujets aux erreurs.
Les scripts vous permettent de standardiser un ensemble d’instructions dont vous savez qu’elles seront exécutées de la même manière à chaque exécution du script. Cela apporte de la cohérence à la maintenance du système. Des contrôles de sécurité peuvent être intégrés aux scripts qui permettent au script de déterminer s’il doit continuer. Cela supprime la nécessité pour l’utilisateur d’avoir des connaissances suffisantes pour prendre lui-même la décision.
Parce que vous pouvez automatiser les tâches en utilisant cron sur Linux et d’autres systèmes de type Unix, les tâches longues, compliquées et répétitives peuvent être simplifiées ou, au moins, déterminées une fois, puis automatisées pour l’avenir.
Les scripts PowerShell offrent une puissance similaire sur Windows et vous pouvez les planifier pour qu’ils s’exécutent à partir du planificateur de tâches. Pourquoi cliquer sur 50 options différentes chaque fois que vous configurez un ordinateur alors que vous pouvez exécuter une commande qui change tout automatiquement?
Le meilleur des deux mondes
Pour tirer le meilleur parti de Linux – ou de tout système d’exploitation en tant qu’utilisateur expérimenté – vous devez vraiment utiliser l’interface de ligne de commande et l’interface graphique.
L’interface graphique est inégalée pour l’utilisation d’applications. Même les fervents partisans de la ligne de commande doivent sortir de la fenêtre du terminal et utiliser de temps en temps des suites de productivité bureautique, des environnements de développement et des programmes de manipulation graphique.
Les accros de la ligne de commande ne détestent pas l’interface graphique. Ils privilégient simplement les avantages de l’utilisation de la CLI – pour les tâches appropriées. Pour l’administration, la CLI gagne haut la main. Vous pouvez utiliser la CLI pour apporter des modifications à un fichier, un répertoire, une sélection de fichiers et de répertoires ou des modifications complètement globales avec un effort égal. Essayer de faire cela avec l’interface graphique nécessite souvent des actions longues et répétitives du clavier et de la souris à mesure que le nombre d’objets affectés augmente.
La ligne de commande vous offre la plus grande fidélité. Chaque option de chaque commande est à votre disposition. Et beaucoup de commandes Linux ont de nombreuses options. Pour ne prendre qu’un exemple, considérons la commande lsof. Jetez un œil à son page de manuel puis réfléchissez à la façon dont vous l’envelopperiez dans une interface graphique.
Il y a trop d’options à présenter à l’utilisateur dans une interface graphique efficace. Ce serait écrasant, peu attrayant et maladroit à utiliser. Et c’est tout le contraire de ce que vise une interface graphique.
Ce sont des chevaux pour les cours. Ne craignez pas le cheval CLI. C’est souvent le coursier le plus rapide et le plus agile. Gagnez vos éperons et vous ne le regretterez jamais.