/ / Lignes de commande: Pourquoi les gens s’en soucient-ils toujours?

Lignes de commande: Pourquoi les gens continuent-ils de s'en soucier?

Image concept d'un terminal Linux rempli de texte sur un ordinateur portable

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 bureaux graphiques et des gadgets à écran tactile.

En fait, la ligne de commande devient de plus en plusrespecté que jamais avec Microsoft créant une nouvelle application Windows Terminal puissante. L’environnement PowerShell de Windows 10 est étonnamment puissant, mais Microsoft s’est toujours efforcé d’ajouter à Windows 10 la prise en charge de l’environnement de ligne de commande Linux complet.

La ligne de commande était autrefois la seule option

À un moment donné, si vous vouliez interagir avec unordinateur, vous avez tapé. C'était ça. Il n'y avait rien d'autre. Cela peut sembler restrictif et archaïque, mais le recours à des cartes perforées ou à des bandes de papier perforées a eu pour effet de rendre le typage radical et transformateur. Et migrer des téléscripteurs avec leurs rouleaux de papier vers des terminaux équipés d’écrans à tube cathodique constituait un autre changement fondamental dans les interactions entre l’homme et l’ordinateur.

Cette étape a ouvert la voie à la coquille interactivevraiment entrer en scène. Vous pouvez maintenant envoyer des instructions à l'ordinateur et afficher très rapidement les réponses sur votre écran. Plus besoin de clac-clac-clac en attendant que votre impression papier sorte de votre téléscripteur.

Très bien, mais c'était alors, c'est maintenant. L'informatique est un jeu de balle complètement différent. Mis à part les cas évidents, tels que l'utilisation d'un ordinateur sur lequel aucun environnement de bureau graphique n'est installé, l'utilisation d'un ordinateur distant via SSH via une connexion à faible bande passante ou le contrôle d'un système sans tête ou intégré, pourquoi utiliser la ligne de commande un bureau graphique?

Le jargon expliqué

Des termes tels que ligne de commande, fenêtre de terminal etcoquille sont utilisés presque indifféremment par certaines personnes. C'est du 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 émule un terminal de télétype.

le coquille est le programme qui tourne dans le terminalfenêtre. Il prend votre saisie et, selon ce que vous avez saisi, tente d'interpréter et d'exécuter les instructions elles-mêmes, puis transmettez-les à certains des autres utilitaires qui composent le système d'exploitation ou recherchez un script ou un programme correspondant à ce que vous avez saisi.

APPARENTÉ, RELIÉ, CONNEXE: Quelle est la différence entre Bash, Zsh et d’autres shells Linux?

le ligne de commande est l'endroit où vous tapez. C'est l'invite que présente le shell lorsqu'elle 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 rencontrez lors de l’exécution d’un programme, ils peuvent vous demander: «Quelle ligne de commande avez-vous utilisée?». Ils ne vous demandent pas quel shell vous utilisez; ils veulent savoir quelle commande vous avez tapé.

Au total, ceux-ci se combinent pour former l'interface de ligne de commande (CLI).

Pourquoi utiliser la ligne de commande en 2019?

La CLI peut sembler rétrograde et déroutante pourceux qui ne le connaissent pas. Il n’ya 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 renoncé à tout cela il y a des décennies lorsque Windows, des icônes et des souris sont apparus et que des environnements de bureau graphiques dotés d'interfaces utilisateur graphiques (GUI) sont devenus disponibles?

Oui, l'interface graphique existe depuis des décennies. La première version de Microsoft Windows est sortie depuis 1985 et est devenue la norme pour les ordinateurs de bureau avec la sortie de Windows 3.0 en 1990.

Le système X Window, utilisé sous Unix et Linux, a été introduit en 1984. Cela a amené les 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 parplus de dix ans. Et comme il n’y avait pas d’autre option, tout devait être possible via la ligne de commande. Toutes les interactions humaines, toutes les configurations, toutes les utilisations de l'ordinateur devaient pouvoir être effectuées via le simple clavier.

Alors, 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’elle peut réaliser, 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 normalisés grâce à POSIX

POSIX est un standard pour les opérations de type Unixsystèmes - en gros, tout ce qui n’est pas Windows. Et même Windows possède le sous-système Windows pour Linux (WSL). Ouvrez une fenêtre de terminal sur n’importe quel système d’exploitation conforme à POSIX (ou proche de conforme) et vous vous retrouverez dans un shell. Même si le shell ou la distribution fournit ses propres extensions et améliorations, à condition qu’elles fournissent la fonctionnalité POSIX principale, vous pourrez l’utiliser immédiatement. Et vos scripts vont s'exécuter.

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 pourrez effectuer toutes les tâches dont vous avez besoin. Différents ordinateurs de bureau 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 chez vous.

Les commandes sont conçues pour fonctionner ensemble

Chacune des commandes Linux est conçue pour effectuer unequelque chose de particulier et de le faire quelque chose de bien. La philosophie de conception sous-jacente consiste à ajouter davantage de fonctionnalités en ajoutant un autre utilitaire pouvant être raccordé ou chaîné avec ceux existants pour obtenir le résultat souhaité.

C’est tellement utile que Microsoft a tout fait pour ajouter une prise en charge de la ligne de commande Linux complète à Windows 10!

Par exemple, le sort Cette commande est utilisée par d'autres commandes pour trier le texte.en ordre alphabétique. Il n’est pas nécessaire de créer une fonction de tri dans chacune des autres commandes Linux. Généralement, les applications d'interface graphique ne permettent pas ce type d'interfonctionnement collaboratif.

Regardez l'exemple suivant. Cela utilise le ls commande pour lister les fichiers dans le répertoire en cours. Les résultats sont diffusés dans le sort commande et trié sur la cinquième colonne de données (qui est la taille du fichier). La liste triée est ensuite envoyée dans le head commande qui répertorie par défaut les dix premières lignes de son entrée.

ls -l | sort -nk5,5 | head

ls -l | trier -nk5,5 | la tête dans une fenêtre de terminal

Nous obtenons une liste soignée des plus petits fichiers du répertoire courant.

liste des dix 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 en cours.

ls -l | sort -nk5,5 | tail

ls -l | trier -nk5,5 | queue dans une fenêtre de terminal

Cela nous donne notre liste des dix plus gros fichiers, comme prévu.

liste des dix plus gros fichiers du répertoire en cours

Le résultat des commandes peut être redirigé et capturé dans des fichiers. La sortie régulière (stdin) et des messages d'erreur (stderr) peuvent être capturés séparément.

APPARENTÉ, RELIÉ, CONNEXE: Que sont stdin, stdout et stderr sous Linux?

Les commandes peuvent inclure des variables d'environnement. La commande suivante listera le contenu de votre répertoire personnel:

ls $HOME

ls $ HOME dans une fenêtre de terminal

Cela fonctionne où que vous soyez dans l’arborescence.

liste du répertoire de base dans la fenêtre du terminal

Si l'idée de tout ce que vous tapez a encore du mal à vous rendre, des techniques telles que la complétion par des tabulations peuvent réduire la quantité de frappe que vous devez faire.

Les scripts activent l'automatisation et la répétabilité

Les humains sont sujets aux erreurs.

Les scripts vous permettent de normaliser un ensemble deles instructions que vous connaissez vont être 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 dans les scripts qui permettent au script de déterminer s’il doit continuer ou non. Cela supprime la nécessité pour l'utilisateur de disposer de connaissances suffisantes pour prendre lui-même la décision.

Parce que vous pouvez automatiser des tâches en utilisant cron sous 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, calculées une fois, puis automatisées pour l’avenir.

Les scripts PowerShell offrent une puissance similaireWindows, et vous pouvez planifier leur exécution à 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 la CLI. et l'interface graphique.

L'interface graphique est inégalée pour l'utilisation d'applications. Même les défenseurs acharnés des lignes 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 à la ligne de commande ne détestent pas l'interface graphique. Ils ne font que favoriser les avantages de l’utilisation de la CLI, pour les tâches appropriées. Pour l'administration, le CLI gagne haut la main. Vous pouvez utiliser la CLI pour modifier un fichier, un répertoire, une sélection de fichiers et de répertoires ou des modifications globales avec le même effort. Essayer de faire cela avec l'interface graphique nécessite souvent des actions répétitives et répétitives du clavier et de la souris lorsque le nombre d'objets affectés augmente.

La ligne de commande vous donne la plus haute fidélité. Chaque option de chaque commande est disponible pour vous. Et beaucoup de commandes Linux ont beaucoup d'options. Pour ne prendre qu'un exemple, considérons le lsof commander. Jetez un coup d’œil à sa page de manuel et réfléchissez ensuite à la manière dont vous l’intégrez 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 qu’est une interface graphique.

Ce sont des chevaux pour les cours. Ne craignez pas le cheval de la CLI. C'est souvent le coursier le plus rapide et le plus agile. Gagnez vos éperons et vous ne le regretterez jamais.