62 votes

Alors, quel est l'avantage d'utiliser le terminal ?

Je viens d'installer Ubuntu il y a quelques jours. D'après ce que je sais, le terminal est un élément essentiel de toute distribution Linux. Ma question à ce stade est pourquoi ? Quand je cherche quelque chose à ce sujet, les commandes placées dans le terminal sont toutes facilement réalisables via l'interface graphique. Alors, quels sont les avantages d'utiliser le terminal ?

Edit : Merci à tous pour les réponses. Après avoir un peu farfouillé, et avec l'aide de vos réponses, je peux maintenant comprendre son utilisation. Je peux fièrement dire que depuis 3 jours, je l'utilise pour à peu près tout, et j'espère bientôt avoir une meilleure maîtrise des scripts.

79voto

Bj Pamatmat Points 1

Le terminal sous Unix est un outil merveilleux et puissant. Lorsque l'on passe du monde de Windows, il est difficile de l'apprécier car le Shell de Windows (cmd.exe) est plutôt, comment dire joliment, déficient. La plupart des shells *nix par défaut ( bash , zsh etc.) présentent plusieurs avantages :

  1. Il est normalisé par POSIX et la spécification Unix unique, de sorte qu'un script que vous écrivez pour un ordinateur fonctionnera probablement sur toutes les machines conformes à POSIX (en supposant que vous vous limitez aux commandes standard, dont il y a lots ). Microsoft a l'habitude d'inclure des outils dans certaines versions et pas dans d'autres, ce qui rend la programmation par lots très aléatoire.

  2. Comme Unix a été construit à partir du terminal, presque tout est configurable à partir de la ligne de commande. Windows était comme ça jusqu'à un certain point, mais ils ont choisi d'abandonner le sous-système 16 bits et DOS avec. Maintenant, l'interface graphique est le seul moyen de modifier certaines choses dans Windows.

  3. Parce qu'il est très flexible. Les commandes peuvent être regroupées ( ls | grep filename ), ils peuvent être capturés ( gcc program.c > ./standard_out 2> ./standard_error ), et peuvent être substitués ( ls /home/`whoami` o ls /home/$(whoami) )

  4. Parce que les utilitaires UNIX sont conçus pour faire une seule chose, et la faire bien. Il suffit de regarder dans awk , grep , sed , wget ou une foule d'autres. Par eux-mêmes, ils ne remplissent qu'une seule tâche, mais avec les numéros 3 et 2, ils peuvent devenir des expressions puissantes.

  5. Grâce à la possibilité d'automatiser les tâches. cron et bash scripts permettent de simplifier ou d'automatiser complètement des tâches longues, compliquées et/ou répétitives.

  6. Parce que les humains sont sujets à l'erreur. Des Shell Shell relativement courts peuvent être utilisés pour changer les paramètres d'une manière cohérente. Des contrôles de sécurité peuvent être intégrés dans les Shell, plutôt que de compter sur les utilisateurs pour savoir quelles commandes sont sûres à exécuter dans différentes circonstances.

36voto

ste_kwr Points 10540

L'utilisation du terminal présente une multitude d'avantages. Les arguments vont de la commodité à la productivité en passant par la nostalgie. En voici quelques-uns :

  1. Il y a certaines choses que vous (plutôt moi) ne pouvez tout simplement pas accomplir en utilisant une interface graphique. Ce n'est pas parce que ce n'est pas faisable, c'est simplement parce que personne n'a pris la peine d'écrire une interface graphique pour ces commandes. Par exemple, si je voulais utiliser une commande, disons mdf2iso pour convertir tout un tas de fichiers dans un dossier. Je peux canaliser la sortie en utilisant | et le faire d'un seul coup.

  2. Pour beaucoup d'entre nous, c'est simplement la façon dont les choses devraient être. Gardez à l'esprit que cela a peu à voir avec l'expertise. Je ne suis pas un expert de Linux, je suis juste un utilisateur ordinaire, mais je préfère utiliser la ligne de commande chaque fois que c'est possible. Il ne s'agit pas tant d'un argument sur la raison pour laquelle elle devrait être utilisée que sur la raison pour laquelle elle est utilisée.

  3. scripts sont une chose puissante. Vous pouvez utiliser les conditions if et les boucles for etc et faire toutes sortes de choses en combinant le pouvoir ci-dessus. Il n'y a pas de limite à la puissance des scripts. Vous pouvez automatiser des tâches complexes qui sont adaptées à vos besoins. Pour ce genre de choses, il est souvent difficile de trouver une application GUI qui réponde à vos besoins.

  4. Vous pouvez effectuer des tâches par connexion à distance, même sur une bande passante très faible.

  5. Il est beaucoup plus facile d'aider, d'écrire des tutoriels, etc. si vous pouvez spécifier les commandes à l'autre personne. De cette façon, vous n'avez pas besoin de faire des captures d'écran. Cela présente un autre avantage pour la personne qui est aidée, ce qui nous amène au point suivant.

  6. L'utilisation de la ligne de commande vous permet généralement de mieux comprendre ce que vous faites et ce qui se passe.

  7. Et enfin, il est tout simplement plus rapide. Il est beaucoup plus rapide de taper quelques lettres et d'appuyer sur TAB que de cliquer sur des options de menu interminables. Vous pouvez utiliser !mo pour invoquer la dernière commande que vous avez exécutée et qui commençait par mo (par exemple, mount) et ainsi de suite.

Je suis sûr qu'il y a un millier d'autres raisons que je n'ai pas mentionnées.

18voto

Sean Sexton Points 973

Finalement ? Parce que vous commencez à écrire des scripts, et la chose merveilleuse avec les scripts est la suivante :

Au lieu de changer la façon dont vous faites les choses, vous pouvez changer le script qui les fait.

Vous pouvez écrire des scripts pour le terminal, et vous ne pouvez généralement pas le faire pour les programmes graphiques, c'est pourquoi les gens utilisent le terminal.

Mais je sens un soupçon de "Pourquoi devrais-je utiliser le terminal ?" dans votre question. Je ne peux pas répondre à cette question pour vous, vous étant vous et moi n'étant pas vous, mais cette question connexe peut vous donner un aperçu :

Comment/pourquoi les gens finissent-ils par utiliser les lignes de commande ?

Je pense que l'on pourrait identifier trois étapes : (1) utilisation réticente ; (2) connaissance du minimum nécessaire pour être à l'aise ; (3) découverte que l'on aime écrire des scripts. On peut utiliser le terminal à chacun de ces trois niveaux ; découvrez par vous-même où s'arrête votre curiosité. En outre, on peut passer ces étapes très rapidement si l'on décide simplement d'apprendre le scripting Shell.

  1. "J'ai besoin de ce programme, alors je vais utiliser la ligne de commande."

    Cela commence, généralement, parce que les gens trouvent qu'ils ont besoin de quelque chose de spécialisé ou ou délicat, et le programme que Google/un forum/un ami recommande s'avère être un programme en ligne de commande. Donc, ils ouvrent un terminal, et tapent ce que les instructions leur disent de taper, et c'est ainsi qu'ils en viennent à utiliser le termina et c'est ainsi qu'il apprend à utiliser le terminal. Exemples de programmes qui vous font utiliser la ligne de commande :

    • LaTeX/TeX/ConTeXt (différentes saveurs du même système) prend un texte et le transforme en un magnifique document PDF. Voir ce qui suit vitrine par exemple ; j'aime bien "pp" et "LM-Volume-manuscrit".
    • rename est un charmant petit programme qui vous permet de renommer des tonnes de fichiers selon selon un modèle. Un exemple simple : rename s/myfile([0-9]+).txt/$1-myfile.txt/ transforme tous les fichiers nommés comme 'bond007.txt' en '007-bond.txt', quel que soit leur numéro. quel que soit le numéro. Vous voulez peut-être renommer des fichiers d'albums de musique, vous voyez.
    • Vous voulez peut-être faire fonctionner un site web depuis votre ordinateur, et vous vous découvrez que si vous voulez dire au serveur web d'exécuter/altérer/rafraîchir sa configuration, vous devez lancer une commande en terminal.

    Notez qu'il existe des interfaces graphiques pour nombre de ces systèmes, mais mais cela n'a rien à voir : l'invocation de la ligne de commande est courante et traditionnelle, de nombreux HOWTO le supposent, et c'est ainsi que ça commence. Parce que :

  2. "Ok, je suis un peu plus à l'aise maintenant."

    Une fois dans la ligne de commande, les gens commencent à réfléchir : Ne serait-il pas facile si je pouvais juste

    • ... changer de répertoire pour regarder dans un autre ? ( cd mydir pour "changer de répertoire")
    • ... obtenir un rappel rapide des fichiers texte dans ce répertoire ? ( ls *.txt , pour 'liste')
    • ... déplacer/renommer un fichier ? copier un fichier ? supprimer un fichier ? ( mv myfile newname , cp myfile mycopy et rm myfile (pour "déplacer", "copier" et "supprimer")
    • ... ouvrir ce fichier pour le modifier/visualiser ? ( gedit myfile o leafpad o nano o vim ou autre).

    Une fois que les gens ont appris ces cinq commandes, ils sont essentiellement à l'aise dans la ligne de commande : ils peuvent se déplacer, regarder et interagir. C'est même un peu puissant : vous pouvez opérer sur des groupes entiers de fichiers à la fois avec des commandes telles que à la fois avec des commandes comme mv iceland-*.jpg My_Iceland_Pics/ et c'est pas cool ?

    Maintenant, beaucoup de gens s'arrêtent volontiers ici. Ils savent comment utiliser le terminal, ils l'utiliseront quand ils en auront besoin, et c'est tout. C'est le niveau "le terminal est utile". Les personnes qui préférez le terminal, cependant, le fait généralement parce qu'il a besoin/souhaite/estime qu'il ne peut pas se passer de la puissance spectaculaire qu'offre le script. Et cela commence généralement comme ça :

  3. "Hé, un script, c'est juste des commandes dans un fichier !".

    Cette prise de conscience peut conduire à plusieurs autres changements, selon la personne. Bien sûr, beaucoup se contentent de faire "meh" ; il ne sert à rien d'apprendre ce dont on n'a pas besoin. Quoi qu'il en soit, ce genre de choses peut arriver :

    • Vous commencez à utiliser des petits scripts pour automatiser des trucs ennuyeux. Certains que vous écrivez vous-même ; certains que vous obtenez de quelqu'un d'autre ; et finalement, tu commences à modifier les scripts des autres.
    • Vous découvrez qu'un énorme catégorie de choses que vous aviez l'habitude de faire à la main, parce qu'il fallait réfléchir entre les deux, peut être automatisée en utilisant ces deux constructions :
      • if something_is_true; then step1a; step2; else step1b; fi et
      • for file in list_of_files; do process1 $file; process2 $file; step3; done
    • Face à une tâche ennuyeuse ou complexe, vous vous rendez compte que vous préférez écrire un script que de le faire à la main. Ce n'est même pas pour un gain de temps ou la possibilité de réutilisation, nécessairement, mais simplement parce que c'est plus amusant.
    • Vous commencez à utiliser souvent le flux de travail "utiliser script sur le fichier source", parce que cela correspond à votre façon de penser.

Il se peut que vous ne connaissiez pas toutes ces choses, ou même aucune d'entre elles. Mais plus elles s'appliquent à vous, plus le terminal sera performant. pour vous . Vous découvrirez par vous-même à quel point vous finirez par l'utiliser. Amusez-vous bien !

Post scriptum. Lors de la programmation de la script -> run -> result y input -> process -> output les flux de travail sont extrêmement courants, et le terminal est spectaculairement adaptés à ces flux de travail. Ajoutez à cela le fait que le Shell n'est vraiment rien d'autre qu'un autre langage de programmation, et vous comprendrez pourquoi il y a un tel chevauchement entre les utilisateurs de lignes de commande et les programmeurs.

15voto

Terenty Points 1

Un autre point à ajouter : C'est amusant d'utiliser la ligne de commande ! ;)

( http://vladdolezal.com/blog/2008/the-real-reason-we-use-linux/ )

12voto

Chan-Ho Suh Points 7524

Je répondais justement à une question similaire l'autre jour. Il s'est avéré que cette personne n'utilisait jamais de raccourcis clavier pour faire quoi que ce soit, ce qui a donné lieu à une longue discussion. J'espère que vous en avez une certaine connaissance... cela rendrait mes propos plus compréhensibles.

Envisagez d'utiliser un traitement de texte. Si vous enregistrez un fichier, vous pouvez utiliser un raccourci clavier comme ctrl-s. Quelqu'un pourrait dire : "Je préfère utiliser le menu. L'utilisation du raccourci ne me fait pas gagner beaucoup de temps. Et si vous devez enregistrer un nouveau fichier, vous devez de toute façon naviguer dans le système de fichiers jusqu'au répertoire, puis taper le nom." Cet objecteur a donc raison de dire que chaque raccourci clavier en lui-même ne permet pas de gagner beaucoup de temps. Le véritable gain réside dans l'enchaînement des raccourcis, par exemple sélectionner tout, couper, coller. Même les fabricants de traitements de texte l'ont compris et ont rendu plus pratique l'accès à la structure des fichiers à l'aide du clavier, par exemple en permettant d'accéder aux dossiers/emplacements récents à l'aide des touches de tabulation et de déplacement.

Bien sûr, la sélection de morceaux de texte nécessite souvent l'utilisation de la souris... c'est pourquoi les programmeurs et les personnes qui font beaucoup d'édition préfèrent utiliser un éditeur de texte qui prend en charge l'utilisation complète du clavier afin de ne jamais avoir à utiliser la souris. Non seulement la souris est lent Mais elle est sujette à des erreurs - il est particulièrement facile de sélectionner ou de supprimer le mauvais texte.

Qu'est-ce que cela a à voir avec la ligne de commande ? Un avantage de la ligne de commande est qu'elle évite d'utiliser la souris, lente et sujette aux erreurs. Au lieu de cela, vous tapez et vous le faites à partir d'un seul endroit ; vous n'avez pas besoin de chercher un autre menu ou de cliquer ici et là. C'est pour la même raison que les gens aiment utiliser les raccourcis clavier des navigateurs Web (pour ouvrir de nouveaux onglets/fenêtres, pour utiliser Gmail, etc.) ; ils vont devoir taper l'URL (ou l'e-mail ou autre) de toute façon... pourquoi déplacer votre main loin des touches ?

Mais surtout, de la même manière que les raccourcis clavier sont plus puissants lorsque vous commencez à les utiliser tous ensemble (plutôt qu'un ou deux seulement), vous pouvez enchaîner les commandes pour faire des choses plus puissantes qui prendraient une éternité avec l'interface graphique ou que vous ne pourriez même pas imaginer faire du tout. Par exemple, à partir de la ligne de commande, vous pouvez dire à votre navigateur Web : "Je veux rafraîchir cette page Web toutes les 30 secondes, rechercher un certain texte et, lorsque cela se produit, m'envoyer, ainsi qu'à un groupe de contacts, un e-mail indiquant que ce texte est apparu sur la page Web. Autre exemple, vous pouvez dire à votre ordinateur : "Je veux examiner TOUS les courriels que j'ai écrits, rechercher une référence à ce livre particulier, produire une liste des dates auxquelles j'ai mentionné ceci et à qui, classer la liste par ordre de fréquence et l'insérer dans le courriel que je suis en train de taper.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X