Alors, quel est l'avantage d'utiliser le terminal? [fermé]

61

Je viens d'installer Ubuntu il y a quelques jours. Autant que je sache, le terminal est une partie importante de toute distribution Linux. Ma question à ce stade est pourquoi? Lorsque je recherche quelque chose à ce sujet, les commandes placées dans le terminal se font toutes facilement via l'interface graphique. Alors, quels sont les avantages d'utiliser le terminal?

Edit: Merci à tous pour les réponses. Après un petit tour de passe-passe et à l'aide de vos réponses, je peux maintenant comprendre son utilisation. Je peux dire avec fierté que depuis 3 jours, je l’utilise pour à peu près tout et j’espère avoir bientôt une meilleure compréhension des scripts.

    
posée LurkDog 21.02.2012 - 01:49
la source

16 réponses

79

Le terminal sous Unix est un outil formidable et puissant. Lorsque vous quittez le monde de Windows, il est difficile d’apprécier cela car le shell Windows (cmd.exe) est plutôt dépourvu de moyens. La plupart des shells * nix par défaut ( bash , zsh , etc.) ont plusieurs avantages:

  1. Il est normalisé via POSIX et la spécification Single Unix, donc un script que vous écrivez pour un ordinateur fonctionnera probablement sur toutes les machines compatibles POSIX (en supposant que vous vous limitiez aux commandes standard, dont il existe 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 efficace.

  2. Comme Unix a été créé à partir du terminal, tout est configurable depuis la ligne de commande. Windows était comme ça jusqu'à un certain point, mais ils ont choisi de supprimer le sous-système 16 bits et le DOS avec lui. Désormais, l’interface graphique est le seul moyen de changer certaines choses dans Windows.

  3. Parce que c'est si flexible. Les commandes peuvent être regroupées ( ls | grep filename ), elles peuvent être capturées ( gcc program.c > ./standard_out 2> ./standard_error ) et peuvent être remplacées ( ls /home/'whoami' ou ls /home/$(whoami) )

  4. Parce que les utilitaires UNIX sont conçus pour faire une chose et le font bien. Il suffit de regarder awk , grep , sed , wget ou une foule d'autres. En eux-mêmes, ils réalisent une tâche unique, mais avec les n ° 3 et 2, ils peuvent être intégrés à des expressions puissantes.

  5. Grâce à la possibilité d’automatiser les tâches. Les scripts cron et bash 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 aux erreurs. Des scripts shell relativement courts peuvent être utilisés pour modifier les paramètres de manière cohérente. Les vérifications de sécurité peuvent être intégrées aux scripts, plutôt que de compter sur les utilisateurs pour savoir quelles commandes peuvent être exécutées en toute sécurité dans différentes circonstances.

réponse donnée Huckle 21.02.2012 - 02:02
la source
36

L'utilisation du terminal présente de nombreux avantages. Les arguments vont de la commodité, la productivité à la nostalgie. En voici quelques unes:

  1. Il y a certaines choses que vous ne pouvez tout simplement pas accomplir avec 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, dites mdf2iso pour convertir tout un tas de fichiers dans un dossier. Je peux canaliser la sortie en utilisant l'opérateur | et le faire en un seul trait.

  2. Pour beaucoup d’entre nous, c’est exactement ce que les choses devraient être. Gardez à l'esprit que cela n'a rien à voir avec l'expertise. Je ne suis pas un expert Linux, je ne suis qu'un utilisateur régulier, mais je préfère utiliser la ligne de commande autant que possible. Ce n'est pas tellement un argument sur pourquoi il devrait être utilisé, autant que pourquoi il est utilisé.

  3. Les scripts sont des outils puissants. Vous pouvez utiliser les conditions if et les boucles for etc. et faire toutes sortes de choses combinant la puissance ci-dessus. Il n'y a pas de limite à la puissance du script. Vous pouvez automatiser des tâches complexes adaptées à vos besoins. Pour de telles choses, il est souvent difficile de trouver une application graphique adaptée à vos besoins.

  4. Vous pouvez effectuer des tâches par connexion à distance, même avec des paramètres de bande passante très faibles.

  5. Aider, écrire des tutoriels, etc. est beaucoup plus facile si vous pouvez spécifier les commandes à l’autre personne. De cette façon, vous n'avez pas à prendre de captures d'écran. Cela a un autre avantage pour la personne 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. Enfin, c’est 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 sans fin. Vous pouvez utiliser !mo pour appeler la dernière commande exécutée avec mo (par exemple, mount), etc.

Je suis sûr qu'il y a mille autres raisons pour lesquelles j'ai échoué.

    
réponse donnée ste_kwr 21.02.2012 - 02:05
la source
18

Finalement? Parce que vous commencez à créer des scripts, et la chose merveilleuse à propos des 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 utiliser de programmes graphiques, ce qui explique pourquoi les utilisateurs utilisent le terminal.

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

Comment / pourquoi les utilisateurs finissent-ils par utiliser la ligne de commande?

Je pense que vous pouvez identifier trois étapes: (1) utilisation réticente; (2) connaître le minimum nécessaire pour le confort; (3) trouver quelqu'un aime les scripts. On peut utiliser le terminal à ces trois niveaux; Découvrez par vous-même où s'arrête votre curiosité. En outre, on peut très rapidement traverser ces étapes si l’on décide simplement d’apprendre le script shell.

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

    Cela commence généralement parce que les gens ont besoin de quelque chose de spécialiste ou délicate, et le programme que Google / un forum / un ami recommande pour le devenir un programme en ligne de commande. Donc, ils ouvrent un terminal, et tapez ce que les instructions leur disent de taper, et voici comment ils viennent utiliser le terminal. Exemples de tels programmes qui vous font utiliser la ligne de commande:

    • LaTeX / TeX / ConTeXt (différentes versions du même système) prend un texte fichier, et le transforme en un beau document PDF. Voir cet vitrine pour des exemples; J'aime plutôt «pp» et «LM-Volume-manuscript».
    • rename est un joli petit programme qui vous permet de renommer des tonnes de fichiers en fonction de à un motif. Un exemple simple: rename s/myfile([0-9]+).txt/-myfile.txt/ transforme tous les fichiers nommés "bond007.txt" en "007-bond.txt", peu importe le nombre est. Vous souhaitez peut-être renommer certains fichiers d’album, vous voyez.
    • Vous souhaitez peut-être lancer un site Web à partir de votre ordinateur et découvrez cela si vous voulez dire au serveur Web de lancer / arrêter / rafraîchir sa configuration, vous devez émettre une commande de terminal.

    Notez qu’il existe des interfaces graphiques pour beaucoup de ces systèmes, mais c'est à côté du point: l'invocation de ligne de commande est commune et traditionnelle, de nombreux HOWTO supposent cela, et c'est comme ça 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 à penser: Ce ne serait pas facile si je pouvais juste ..

    • ... modifier les répertoires pour en rechercher un autre? ( cd mydir , pour 'changer de répertoire')
    • ... obtenir un rappel rapide des fichiers texte dans ce répertoire? ( ls *.txt , pour 'list')
    • ... déplacer / renommer un fichier? copier un fichier? supprimer un fichier? ( mv myfile newname , cp myfile mycopy et rm myfile , pour 'move', 'copy' et 'remove')
    • ... ouvre ce fichier pour le modifier / l’afficher? ( gedit myfile ou leafpad ou nano ou vim ou autre)

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

    Maintenant, beaucoup de gens s’arrêtent joyeusement 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èrent le terminal le font généralement parce qu’elles ont besoin / veulent / ressentent qu’elles ne peuvent pas se passer du pouvoir spectaculaire qu’offrent les scripts. Et cela commence généralement comme ceci:

  3. "Hé, un script n'est que quelques commandes dans un fichier!"

    Cette prise de conscience peut entraîner plusieurs modifications supplémentaires, en fonction de la personne. Bien sûr, beaucoup d'entre eux vont «meh». il ne sert à rien d’apprendre ce dont vous n’avez pas besoin. Quoi qu’il en soit, des choses comme ça peuvent arriver:

    • Vous commencez à utiliser de petits scripts pour automatiser les trucs ennuyeux. Certains vous écris-toi; certains que vous recevez de quelqu'un d'autre; et éventuellement, vous commencez à modifier les scripts d'autres personnes.
    • Vous découvrez qu'une catégorie énorme de choses que vous faisiez auparavant à la main, car il faut penser entre les deux, peut être automatisé 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 trouvez que vous préférez écrire un script pour cela que le faire à la main. Ce n'est même pas pour gagner du temps ou réutilisation, nécessairement, mais simplement parce que c'est plus amusant.
    • Vous commencez à utiliser beaucoup le workflow "Utiliser le script sur le fichier source", car il correspond à votre façon de penser.

Vous ne pouvez pas expérimenter tout ou partie de ces choses.Plus vous êtes concerné, plus le terminal sera pour vous . Vous découvrirez par vous-même combien vous finissez par l'utiliser. Amusez-vous!

Post scriptum. En programmant les workflows script -> run -> result et input -> process -> output sont très courants, et le terminal est spectaculairement adapté à ces workflows. Ajoutez à cela le fait que le shell n’est vraiment qu’un autre langage de programmation, et vous verrez pourquoi il y a un tel chevauchement entre les utilisateurs de ligne de commande et les programmeurs.

    
réponse donnée Esteis 21.02.2012 - 19:06
la source
15

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

( lien )

    
réponse donnée red_trumpet 21.02.2012 - 02:11
la source
12

Je répondais juste à une question similaire à celle-ci l’autre jour. Il s'est avéré que cette personne n'a jamais utilisé de raccourcis clavier pour faire quoi que ce soit, donc la discussion a été longue. J'espère que vous avez une certaine connaissance de ceux-ci ... cela rendrait mes points plus compréhensibles.

Pensez à utiliser un traitement de texte. Si vous enregistrez un fichier, vous pouvez utiliser un raccourci clavier tel que ctrl-s. Quelqu'un pourrait dire: "Je préfère utiliser le menu. Cela ne me fait pas gagner beaucoup de temps en utilisant le raccourci. Et si vous devez enregistrer un nouveau fichier, vous devez naviguer dans le système de fichiers vers le répertoire, puis taper le nom quand même. " Cet objecteur a donc raison de dire que chaque raccourci clavier ne permet pas de gagner beaucoup de temps. La véritable économie consiste à chaîner les raccourcis ensemble, par ex. sélectionnez tout, couper, coller. Même les fabricants de traitement de texte l'ont compris et ont facilité l'accès à la structure de fichiers à l'aide du clavier, par ex. pouvoir accéder aux dossiers / emplacements récents à l'aide des touches de tabulation et de flèche.

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

Maintenant, 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 d'un endroit; vous n'avez pas besoin de chercher un autre menu ou de cliquer ici et là. C'est la même raison pour laquelle les gens aiment utiliser les raccourcis clavier du navigateur Web (pour ouvrir de nouveaux onglets / fenêtres, utiliser Gmail, etc.); ils vont devoir taper l'URL (ou le courrier électronique ou autre) de toute façon ... pourquoi écarter votre main des clés?

Mais le plus important, tout comme les raccourcis clavier sont les plus puissants lorsque vous les utilisez tous ensemble (plutôt qu’un ou deux), vous pouvez enchaîner les commandes pour faire des choses plus puissantes, que ce soit en mode graphique ou graphique. vous ne pouviez même pas imaginer le faire du tout. Par exemple, à partir de la ligne de commande, vous pouvez indiquer à votre navigateur Web que je souhaite actualiser cette page toutes les 30 secondes, rechercher un certain texte et, le cas échéant, m'envoyer un groupe de contacts sur la page Web. Comme autre exemple, vous pouvez dire à votre ordinateur, je veux parcourir TOUS les e-mails que j'ai jamais écrits, rechercher une référence à ce livre en particulier, produire une liste de dates que j'ai mentionnée et qui commander la liste selon fréquence, et le mettre dans cet email je tape maintenant.

    
réponse donnée Chan-Ho Suh 21.02.2012 - 02:07
la source
11

La CLI est rapide à utiliser lorsque vous savez exactement ce que vous voulez faire et comment le faire. Cela peut être beaucoup plus efficace que d'utiliser une interface graphique. De plus, si vous souhaitez vous connecter à distance à votre machine, l'interface de ligne de commande est beaucoup plus facile sur une liaison lente. Si vous êtes à l'aise avec la CLI, vous pouvez également utiliser les scripts.

Si vous google cli vs gui, vous obtiendrez des tonnes de hits, par exemple:

lien

Votre question n'est pas vraiment spécifique à Ubuntu, Linux ou même PC - vous avez un débat sur ce sujet à partir de n'importe quel système prenant en charge gui et cli, par exemple configuration des routeurs Cisco.

    
réponse donnée Amir 21.02.2012 - 02:01
la source
10

Il y a un certain nombre de bons points dans les réponses, mais j'ai encore un point à ajouter. Parfois, après une installation ou une mise à jour, une application graphique ne démarre pas et vous laisse sans message d'erreur. Dans ces cas, il peut être très utile d’ouvrir une fenêtre de terminal et de démarrer l’application depuis la ligne de commande. Il y a presque toujours plus d'informations fournies sur le terminal que celles présentées à partir de l'interface graphique.

    
réponse donnée fragos 21.02.2012 - 10:21
la source
8

Mon favori est moins de frappe . Comment cela peut-il être, je vous entends demander. Eh bien je me connecte, inverser la recherche ou la flèche vers le haut) pour une commande que j'ai tapé la semaine dernière et frapper retour chariot. L'alternative est bien plus de clics de souris (et d'essayer de s'en souvenir).

Mon deuxième favori est de faciliter la réponse aux questions sur le débordement de pile. Aucune capture d'écran nécessaire, juste du texte.

    
réponse donnée ctrl-alt-delor 21.02.2012 - 15:39
la source
5

Qu'en est-il lorsque vous devez faire quelque chose comme "root"? La connexion via l'interface graphique en tant que root est une mauvaise idée (et je ne pense même pas qu'Ubuntu vous le permettra, par défaut).

Considérons également que l’interface graphique Linux (X11) est simplement un programme en cours d’exécution. Si X11 devait tomber en panne, vous serez content de connaître votre ligne de commande.

    
réponse donnée Aaron 21.02.2012 - 02:05
la source
5

Je veux juste contribuer avec un exemple, que je trouve très utile, des instructions pour ajouter le PPA pour VirtualBox. Lorsque vous ajoutez un PPA, vous devez également enregistrer la clé publique, de sorte que la méthode GUI:

  • téléchargez la clé avec Firefox (ou un autre navigateur)
  • ouvrir Synaptic (ou autre interface graphique APT)
  • rechercher l'élément de menu droit
  • parcourir le fichier téléchargé
  • enfin confirmer

Expliquer cela dans un guide de l’utilisateur peut coûter cher! Au lieu de cela, il peut être fait avec un seul & amp; ligne de commande simple:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
    
réponse donnée Pisu 21.02.2012 - 22:28
la source
3

La ligne de commande fonctionne assez bien comme dans Windows -remember cette boîte de texte msdos avec le fond noir?

Cela donne à l'utilisateur un moyen d'émettre des commandes directement sur l'ordinateur sans que les ressources de l'ordinateur apportées par une interface graphique ne soient déchargées. C'est aussi un moyen d'émettre des commandes puissantes pour faire des choses qui ne peuvent pas être faites via une interface graphique.

Je ne nie pas l'utilité de la manière de travailler avec l'interface graphique, mais entre les mains d'une personne qualifiée, la ligne de commande peut être extrêmement rapide et efficace. Dans les mains d'un véritable assistant, la ligne de commande fait des miracles. J'ai à peine effleuré la surface des possibilités, apprendre quelque chose de nouveau chaque jour. Je ne serai jamais un magicien - trop vieux - mais je voudrais être un op moyen un jour ...

Bienvenue dans Ubuntu et demander à Ubuntu. C'est un super endroit!

    
réponse donnée Vic 21.02.2012 - 02:13
la source
3

Pour un débutant, le terminal est une corvée à utiliser, mais si vous commencez à apprendre à l'utiliser, cela devient plus facile. Une fois que vous vous sentez à l’aise, cela vous donne l’assurance que vous pouvez gérer les choses quand elles vont mal.

Par exemple, lorsqu'un programme d'interface graphique refuse de se lancer et que vous n'avez aucune idée de ce qui ne va pas, vous pouvez exécuter la commande dans un terminal et voir souvent la raison du problème dans la sortie du terminal. Vous pouvez ensuite en copier une partie dans une recherche et trouver la réponse si nécessaire.

Vous pouvez entrer une commande avec "--help" et obtenir une liste des options de ligne de commande qui pourraient être utiles dans certains cas particuliers.

Si quelque chose ne va pas, et que l’interface graphique ne fonctionne même pas du tout, vous pouvez souvent ouvrir un terminal virtuel ou éventuellement une ligne de commande à partir du démarrage et corriger le problème en modifiant un fichier de configuration ou en exécutant un programme de ligne de commande .

    
réponse donnée Marty Fried 21.02.2012 - 23:48
la source
2

En un mot, vous avez plus d’une centaine de touches qui peuvent contrôler / parler / commander l’ordinateur plutôt qu’une seule souris avec deux ou trois boutons. Plus vous avez de contrôles, plus vous pouvez être rapide.

Pour ceux qui ne connaissent pas la saisie, un clavier à l’écran peut s’avérer génial. Bien que vous puissiez utiliser la souris plus rapidement, vous ne pouvez pas taper plus vite que vous ne le pouvez avec le clavier.

Si vous utilisez la souris / Windows, c'est comme si l'ordinateur vous contrôlait et dictait ce que vous pouviez faire. Lorsque vous vous habituez au monde de la ligne de commande, vous pouvez sentir tout le système sous votre contrôle en attente de votre commande. Vous devez en faire l'expérience pour comprendre la différence.

    
réponse donnée balki 24.02.2012 - 18:35
la source
1

Je ne vois même pas l'intérêt de cocher une réponse lol. De toute façon. Le terminal est comme votre CMD sur Windows. À l'époque, avant que GUI apparaisse, les gens programment et travaillent en mode DOS, à peu près tout simplement Terminal. L'interface utilisateur graphique est conçue pour simplifier et simplifier les tâches, mais l'utilisation de l'interface graphique nécessite parfois plus de travail.

Par exemple, en tant que développeur, si je veux simplement compiler un programme C ++, je n’ai pas besoin d’utiliser un IDE sophistiqué. IDE est une interface graphique dotée de nombreuses fonctionnalités avancées qu’un simple éditeur de texte n’offre pas. Donc, au lieu de télécharger un IDE vraiment énorme pour une tâche simple, je peux simplement écrire ce qui suit et il va exécuter mon programme C ++, dont le fichier exécutable s'appelle main .

g++ -o main main.cpp
chmod 777 main
./main

Si vous utilisez un langage d'interprétation tel que Python, vous pouvez accéder au shell interactif Python. Oui. Il y a des shells interactifs qui sont emballés dans une belle interface graphique, mais ils sont plus lents et bogués (pensez à IDLE ...)

Parfois, lorsque l'interface graphique est cassée, vous pouvez essayer d'utiliser Terminal pour l'ouvrir. Parfois, certains logiciels sous Linux n'offrent pas une bonne interface graphique ou il est très difficile de trouver où se trouve le programme de lancement de l'interface graphique, il vous suffit d'aller dans Terminal et de taper, par exemple:

xpdf homework.pdf

Cela va ouvrir le homework.pdf pour vous.

Dans d'autres situations, l'interface graphique n'offre pas assez de puissance et de magie pour effectuer votre tâche. Certaines fonctions de recherche sont très basiques et vous ne pouvez pas appliquer une recherche en profondeur ou un modèle de recherche compliqué. Mais grâce à un terminal, une commande peut être générée avec un schéma très compliqué et long.

L'interface graphique est agréable, mais parfois, grâce aux commandes, vous pouvez également simplifier les choses. Parfois, vous n'avez simplement pas le choix: vous devez utiliser des commandes via des terminaux.

    
réponse donnée CppLearner 21.02.2012 - 22:38
la source
1

J'ajouterais un point de vue qui ne semble pas être mentionné, même si ce n'est pas un véritable avantage.

Pensez au fait que l'interface graphique est comme un "panneau" qui donne accès aux fonctions du vrai programme . De nombreux logiciels, en particulier dans une version antérieure, ne disposent pas d'une interface graphique, et vous ne pouvez les exécuter qu'à partir du terminal. Et, comme d’autres l’ont souligné, même les applications qui ont une interface graphique, parfois n’ont pas d’interface pour toutes les fonctions; pour ces fonctions, vous devez utiliser le terminal.

    
réponse donnée clabacchio 23.02.2012 - 12:19
la source
0

Tout le monde a bien décrit les avantages, je voudrais juste ajouter que, mis à part la transparence, vous pouvez voir toutes les dépendances listées, leur vitesse. Après la fin de synaptic d'Ubuntu, le centre logiciel est trop lent, en particulier sur les machines plus lentes, ici l'installation à partir du terminal est beaucoup plus rapide.

    
réponse donnée Arup Roy Chowdhury 21.02.2012 - 15:44
la source

Lire d'autres questions sur les étiquettes