Ich habe Ubuntu vor ein paar Tagen installiert. Soweit ich weiß, ist das Terminal ein großer Teil jeder Linux-Distribution. Meine Frage an dieser Stelle ist warum? Wenn ich etwas darüber nachschlage, können die im Terminal eingegebenen Befehle einfach über die GUI ausgeführt werden. Welche Vorteile bietet die Verwendung des Terminals?
Edit: Danke für die Antworten an alle. Nach einigem Stöbern und mit Hilfe Ihrer Antworten kann ich nun die Verwendung verstehen. Ich kann mit Stolz sagen, dass ich es in den letzten 3 Tagen für so gut wie alles verwendet habe und ich hoffe, dass ich das Skripting bald besser verstehen kann.
command-line
LurkDog
quelle
quelle
Antworten:
Das Terminal in Unix ist ein wunderbares, mächtiges Werkzeug. Beim Übergang aus der Welt von Windows ist dies schwer zu verstehen, da die Windows-Shell (cmd.exe) eher fehlt, wie ich netterweise sagen kann. Die meisten * nix - Standardschalen (
bash
,zsh
usw.) haben mehrere Vorteile:Es ist durch POSIX und die Single Unix-Spezifikation standardisiert, sodass ein Skript, das Sie für einen Computer schreiben, wahrscheinlich auf allen POSIX-kompatiblen Computern funktioniert (vorausgesetzt, Sie beschränken sich auf Standardbefehle, von denen es viele gibt ). Microsoft hat die Angewohnheit, Tools in einigen Versionen und nicht in anderen zu integrieren, was die Stapelprogrammierung zu einem echten Hit oder Miss macht
Da Unix vom Terminal aus erstellt wurde, kann fast alles über die Befehlszeile konfiguriert werden. Windows war bis zu einem gewissen Punkt so, aber sie entschieden sich dafür, das 16-Bit-Subsystem und DOS damit fallen zu lassen. Jetzt ist die GUI die einzige Möglichkeit, einige Dinge in Windows zu ändern.
Weil es so flexibel ist. Befehle können zusammengefasst (
ls | grep filename
), erfasst (gcc program.c > ./standard_out 2> ./standard_error
) und ersetzt (ls /home/`whoami`
oderls /home/$(whoami)
) werdenWeil UNIX-Dienstprogramme so konzipiert sind, dass sie eine Sache tun und es auch tun. Schauen Sie einfach in
awk
,grep
,sed
,wget
oder eine Vielzahl von anderen. Sie erfüllen für sich eine einzelne Aufgabe, können aber mit den Ziffern 3 und 2 in mächtige Ausdrücke eingebaut werden.Wegen der Fähigkeit, Aufgaben zu automatisieren.
cron
Mit Bash-Skripten können lange, komplizierte und / oder sich wiederholende Aufgaben vereinfacht oder vollständig automatisiert werden.Weil Menschen fehleranfällig sind. Mit relativ kurzen Shell-Skripten können Einstellungen konsistent geändert werden. Sicherheitsüberprüfungen können in die Skripte integriert werden, anstatt sich darauf zu verlassen, dass Benutzer wissen, welche Befehle unter verschiedenen Umständen sicher ausgeführt werden können.
quelle
ls /home/$(whoami)
Heutzutage ist es besser, sie zu verwenden :-)cron
, wird es Ihnen an der Tür mit ihm treffen , wenn Sie von der Arbeit kommen ...Die Verwendung des Terminals bietet eine Vielzahl von Vorteilen. Die Argumente reichen von Bequemlichkeit, Produktivität bis hin zu Nostalgie. Hier sind einige :
Es gibt einige Dinge, die Sie (eher ich) mit einer GUI einfach nicht erreichen können. Das liegt nicht daran, dass es nicht machbar ist, sondern nur daran, dass sich niemand die Mühe gemacht hat, eine GUI für diese Befehle zu schreiben. Wenn ich zum Beispiel einen Befehl verwenden möchte, sagen wir
mdf2iso
, um eine ganze Reihe von Dateien in einen Ordner zu konvertieren. Ich kann die Ausgabe mit|
Operator leiten und es in einem einzelnen Anschlag tun.Für viele von uns ist es genau so, wie es sein sollte. Denken Sie daran, dass dies wenig mit Fachwissen zu tun hat. Ich bin kein Linux-Experte, ich bin nur ein normaler Benutzer, aber ich bevorzuge es, die Befehlszeile zu verwenden, wo immer es möglich ist. Dies ist weniger ein Argument dafür, warum es verwendet werden sollte, als vielmehr, warum es verwendet wird.
Skripte sind eine mächtige Sache. Sie können Bedingungen
if
und Schleifenfor
usw. verwenden und alle möglichen Dinge tun, indem Sie die oben genannte Kraft kombinieren. Es gibt keine Begrenzung für die Leistung von Skripten. Sie können komplexe Aufgaben automatisieren, die auf Ihre Anforderungen zugeschnitten sind. Für solche Dinge ist es oft schwierig, eine GUI-App zu finden, die Ihren Anforderungen entspricht.Sie können Aufgaben auch über Einstellungen mit sehr geringer Bandbreite per Remote-Anmeldung ausführen.
Helfen, Schreiben von Tutorials usw. ist viel einfacher, wenn Sie die Befehle an die andere Person weitergeben können. Auf diese Weise müssen Sie keine Screenshots machen. Dies hat einen weiteren Vorteil für die Person, der ebenfalls geholfen wird, und bringt uns zum nächsten Punkt.
Wenn Sie die Befehlszeile verwenden, erhalten Sie in der Regel ein besseres Verständnis dafür, was Sie gerade tun und was gerade passiert.
Und zuletzt geht es einfach schneller. Es ist viel schneller, ein paar Buchstaben einzugeben und zu drücken, TABals durch endlose Menüoptionen zu klicken. Mit können Sie
!mo
den zuletzt ausgeführten Befehl aufrufenmo
(z. B. mount) und so weiter.Ich bin sicher, dass es tausend andere Gründe gibt, die ich nicht erwähnt habe.
quelle
Schließlich? Weil Sie mit dem Schreiben von Skripten beginnen und das Wunderbare am Schreiben von Skripten Folgendes ist:
Anstatt die Art und Weise zu ändern, wie Sie Dinge tun, können Sie das Skript ändern, das sie tut.
Sie können Skripte für das Terminal schreiben und normalerweise nicht für grafische Programme. Deshalb wird das Terminal auch verwendet.
Aber ich spüre einen Hinweis auf "Warum sollte ich das Terminal verwenden?" in deiner frage. Ich kann dir das nicht beantworten, du bist du und ich bist nicht du, aber diese verwandte Frage kann dir einen Einblick geben:
Wie / warum sind die Benutzer am Ende Befehlszeilenbenutzer?
Ich denke, Sie könnten drei Phasen identifizieren: (1) widerwillige Verwendung; (2) Kenntnis des für den Komfort erforderlichen Minimums; (3) es macht Spaß, einen zu finden, der Skripte erstellt. Man kann das Terminal auf allen drei Ebenen nutzen; Finden Sie selbst heraus, wo Ihre Neugier aufhört. Außerdem kann man diese Phasen sehr schnell durchlaufen, wenn man einfach entscheidet, ob man Shell-Scripting lernen möchte.
"Ich brauche dieses Programm, also werde ich wohl die Kommandozeile benutzen."
Es beginnt normalerweise, weil die Leute feststellen, dass sie etwas Spezielles oder Tückisches brauchen, und das Programm, das Google / ein Forum / ein Freund empfiehlt, stellt sich als Kommandozeilenprogramm heraus. Also öffnen sie ein Terminal und geben ein, was die Anweisungen ihnen sagen, und auf diese Weise benutzen sie das Terminal. Beispiele für solche Programme, mit denen Sie die Befehlszeile verwenden:
rename
ist ein hübsches kleines Programm, mit dem Sie Unmengen von Dateien nach einem Muster umbenennen können. Ein einfaches Beispiel:rename s/myfile([0-9]+).txt/$1-myfile.txt/
Wandelt alle Dateien mit dem Namen 'bond007.txt' in '007-bond.txt' um, unabhängig von der Nummer. Vielleicht möchten Sie einige Musikalbumdateien umbenennen.Beachten Sie, dass es für viele dieser Systeme grafische Frontends gibt, aber das ist nicht der springende Punkt: Befehlszeilenaufrufe sind üblich und traditionell, viele HOWTOs gehen davon aus, und so beginnt es. Weil:
"Okay, ich fühle mich jetzt etwas wohler."
Einmal in der Kommandozeile, beginnen die Leute zu denken: Wäre es nicht einfach, wenn ich nur ...
cd mydir
, für 'Verzeichnis wechseln')ls *.txt
, für 'Liste')mv myfile newname
,,cp myfile mycopy
undrm myfile
, für 'Verschieben', 'Kopieren' und 'Entfernen')gedit myfile
, oderleafpad
, odernano
, odervim
, oder was auch immer.)Sobald die Benutzer diese fünf Befehle gelernt haben, fühlen sie sich in der Befehlszeile im Wesentlichen wohl: Sie können sich bewegen, schauen und interagieren. Es ist sogar ein bisschen mächtig: Mit Befehlen wie können Sie ganze Gruppen von Dateien gleichzeitig bearbeiten
mv iceland-*.jpg My_Iceland_Pics/
, und ist das nicht cool?Jetzt hören viele Leute glücklich hier auf. Sie wissen, wie man das Terminal benutzt, sie werden es benutzen, wenn sie es brauchen, und das ist alles. Dies ist die Ebene "Das Terminal ist nützlich". Menschen, die das Terminal bevorzugen , tun dies jedoch normalerweise, weil sie das Gefühl haben, ohne die spektakuläre Leistung von Scripting nicht auskommen zu können. Und das fängt normalerweise so an:
"Hey, ein Skript ist nur ein paar Befehle in einer Datei!"
Diese Erkenntnis kann je nach Person zu mehreren weiteren Änderungen führen. Viele gehen natürlich einfach 'meh'; Es hat keinen Sinn zu lernen, was Sie nicht brauchen. Wie auch immer, so etwas kann passieren:
if something_is_true; then step1a; step2; else step1b; fi
, undfor file in list_of_files; do process1 $file; process2 $file; step3; done
Möglicherweise erleben Sie nicht alle oder gar keine dieser Dinge. Je mehr auf Sie zutreffen, desto besser ist das Terminal für Sie . Sie werden selbst herausfinden, wie viel Sie davon verbrauchen. Habe Spaß!
Post scriptum. In der Programmierung sind die
script -> run -> result
undinput -> process -> output
Workflows weit verbreitet, und das Terminal eignet sich hervorragend für diese Workflows. Hinzu kommt, dass die Shell wirklich nichts anderes als eine andere Programmiersprache ist, und Sie werden sehen, warum es eine so große Überschneidung zwischen Befehlszeilenbenutzern und Programmierern gibt.quelle
Ein weiterer Punkt zum Hinzufügen: Es macht Spaß, die Befehlszeile zu verwenden! ;)
( http://vladdolezal.com/blog/2008/the-real-reason-we-use-linux/ )
quelle
Ich habe neulich nur eine ähnliche Frage beantwortet. Es stellte sich heraus, dass diese Person nie Tastenkombinationen verwendet hat, um etwas zu tun. Es stellte sich heraus, dass dies eine lange Diskussion war. Ich hoffe, Sie kennen sich damit aus ... das würde meine Argumente verständlicher machen.
Erwägen Sie die Verwendung eines Textverarbeitungsprogramms. Wenn Sie eine Datei speichern, können Sie eine Tastenkombination wie Strg-S verwenden. Jemand könnte sagen: "Ich bevorzuge die Verwendung des Menüs. Es spart mir nicht viel Zeit, die Verknüpfung zu verwenden. Und wenn Sie eine neue Datei speichern müssen, müssen Sie durch das Dateisystem zum Verzeichnis navigieren und dann das eingeben trotzdem benennen. " Dieser Einwand ist also korrekt, da jede Tastenkombination für sich genommen nicht viel Zeit spart. Die wirkliche Ersparnis besteht in der Verkettung von Verknüpfungen, z. B. Alles auswählen, Ausschneiden, Einfügen. Sogar die Hersteller von Textverarbeitungsprogrammen haben dies erkannt und den Zugriff auf die Dateistruktur über die Tastatur vereinfacht, z. B. indem sie mit den Tabulatortasten und den Pfeiltasten auf die zuletzt verwendeten Ordner / Speicherorte zugreifen können.
Natürlich erfordert das Auswählen von Textteilen oftmals die Maus ... Aus diesem Grund bevorzugen Programmierer und Personen, die viel bearbeiten, einen Texteditor, der die vollständige Tastaturnutzung unterstützt, sodass Sie nie eine Maus verwenden müssen. Die Maus ist nicht nur langsam , sondern auch fehleranfällig - es ist besonders einfach, den falschen Text auszuwählen oder zu löschen.
Was hat das nun mit der Kommandozeile zu tun? Ein Vorteil der Befehlszeile besteht darin, dass die Verwendung der langsamen, fehleranfälligen Maus vermieden wird. Stattdessen tippen Sie und tun dies von einem Ort aus. Sie müssen sich nicht nach einem anderen Menü umsehen oder dort und dann hierher klicken. Es ist der gleiche Grund, warum die Leute Tastenkombinationen des Webbrowsers verwenden (um neue Tabs / Fenster zu öffnen, um Google Mail zu verwenden usw.). Sie müssen sowieso die URL (oder E-Mail oder was auch immer) eingeben ... warum bewegen Sie Ihre Hand von den Schlüsseln weg?
Aber was am wichtigsten ist: Genau wie Tastenkombinationen am leistungsfähigsten sind, wenn Sie sie alle zusammen verwenden (und nicht nur eine oder zwei), können Sie Befehle verketten, um leistungsfähigere Aufgaben auszuführen, die entweder für immer über die Benutzeroberfläche ausgeführt werden oder die Sie nicht ausführen können. Das kann ich mir gar nicht vorstellen. Beispielsweise können Sie über die Befehlszeile Ihrem Webbrowser mitteilen, dass diese Webseite alle 30 Sekunden aktualisiert werden soll, nach einem bestimmten Text gesucht werden soll, und in diesem Fall eine E-Mail an mich und eine Gruppe von Kontakten senden, in der dieser Text angezeigt wird auf der Webseite. Als weiteres Beispiel können Sie Ihrem Computer mitteilen, dass ich ALLE E-Mails, die ich jemals geschrieben habe, durchsehen, nach einem Verweis auf dieses bestimmte Buch suchen, eine Liste der von mir genannten Daten erstellen und nach wem die Liste sortieren möchte Frequenz, und setzen Sie es in diese E-Mail, die ich gerade schreibe.
quelle
screen
in einer Konsole, verwende ich selten jemals eine Maus , wenn es nicht mehr um eine Website zu navigieren ist. (Niemand sollte Luchs besser erwähnen ...)Die CLI ist schnell zu bedienen, wenn Sie genau wissen, was Sie tun möchten und wie Sie es tun müssen. Es kann viel effizienter sein als die Verwendung einer GUI. Wenn Sie eine Remoteverbindung zu Ihrem Computer herstellen möchten, ist die Befehlszeilenschnittstelle für langsame Verbindungen weitaus einfacher. Wenn Sie mit der CLI vertraut sind, können Sie auch die Skripterstellung nutzen.
Wenn Sie cli vs gui googeln, erhalten Sie Tonnen von Treffern, zB:
http://www.computerhope.com/issues/ch000619.htm
Ihre Frage ist nicht wirklich Ubuntu-, Linux- oder sogar PC-spezifisch - Sie erhalten eine Debatte zu diesem Thema von jedem System, das GUI und CLI unterstützt, z. B. die Konfiguration von Cisco-Routern.
quelle
Es gibt eine Reihe guter Punkte in den Antworten, aber ich muss noch einen zusätzlichen Punkt ansprechen. Manchmal startet eine GUI-Anwendung nach einer Installation oder einem Update nicht und hinterlässt keine Fehlermeldungen. In diesen Fällen kann es sehr hilfreich sein, ein Terminalfenster zu öffnen und das ap über die Befehlszeile zu starten. Auf dem Terminal werden fast immer mehr Informationen bereitgestellt, als auf der Benutzeroberfläche angezeigt werden.
quelle
Mein Favorit ist weniger Tippen . Wie kann das sein, höre ich Sie fragen. Nun, ich logge mich ein, suche rückwärts oder gehe nach oben) für einen Befehl, den ich letzte Woche eingegeben habe und drücke Wagenrücklauf. Die Alternative ist viel mehr Mausklicks (und versuchen, sich zu erinnern).
Mein zweiter Favorit ist, dass es einfacher ist, Fragen zum Stapelüberlauf zu beantworten. Es werden keine Screenshots benötigt, nur Text.
quelle
Was ist, wenn Sie etwas als "root" tun müssen? Es ist eine schlechte Idee, sich über die GUI als root anzumelden (und ich glaube nicht, dass Ubuntu dies standardmäßig zulässt).
Bedenken Sie auch, dass die Linux-GUI (X11) wie alles andere einfach ein laufendes Programm ist. Sollte X11 abstürzen, sind Sie froh, Ihre Kommandozeile zu kennen.
quelle
Ich möchte nur mit einem Beispiel, das ich sehr nützlich finde, aus den Anweisungen zum Hinzufügen der PPA für VirtualBox beitragen. Wenn Sie eine PPA hinzufügen, sollten Sie auch den öffentlichen Schlüssel registrieren, also GUI-Methode:
Dies in einer Bedienungsanleitung zu erklären, kann teuer sein! Stattdessen kann dies mit einer einzigen und einfachen Befehlszeile erfolgen:
quelle
Die Befehlszeile funktioniert ziemlich gut wie in Windows. - Erinnern Sie sich daran, dass die Texteingabe im MSDOS-Feld mit dem schwarzen Hintergrund angezeigt wird?
Sie gibt dem Benutzer die Möglichkeit, Befehle direkt an den Computer zu senden, ohne die Ressourcen des Computers zu belasten, die eine grafische Benutzeroberfläche mit sich bringt. Es ist auch eine Möglichkeit, leistungsstarke Befehle auszugeben, um Dinge zu tun, die nicht über eine GUI ausgeführt werden können.
Ich bin nicht begeistert von der Nützlichkeit der GUI-Arbeitsweise, aber in den Händen eines erfahrenen Benutzers kann die Befehlszeilenmethode extrem schnell und effizient sein. In den Händen eines echten Zauberers wirkt die Kommandozeile Wunder. Ich habe kaum die Oberfläche der Möglichkeiten zerkratzt, lerne jeden Tag etwas Neues. Ich werde nie ein Zauberer sein - zu alt -, aber ich möchte eines Tages ein durchschnittlicher Op sein ...
Willkommen bei Ubuntu und bei Ask Ubuntu. Dies ist ein großartiger Ort!
quelle
Für einen Anfänger ist das Terminal eine mühsame Aufgabe, aber wenn Sie anfangen zu lernen, wie man es benutzt, wird es einfacher. Sobald Sie sich damit vertraut fühlen, haben Sie ein sicheres Gefühl, mit Dingen fertig zu werden, wenn sie schief gehen.
Wenn sich ein GUI-Programm beispielsweise weigert, gestartet zu werden, und Sie keine Ahnung haben, was falsch ist, können Sie den Befehl in einem Terminal ausführen und den Grund für das Problem häufig in der Terminalausgabe sehen. Anschließend können Sie einen Teil davon in eine Suche kopieren und bei Bedarf die Antwort finden.
Sie können einen Befehl mit "--help" eingeben und eine Liste der Befehlszeilenoptionen abrufen, die für einige Sonderfälle nützlich sein können.
Wenn etwas schief geht und die GUI überhaupt nicht ausgeführt wird, können Sie häufig ein virtuelles Terminal oder möglicherweise nur eine Befehlszeile vom Start aus öffnen und das Problem beheben, indem Sie eine Konfigurationsdatei bearbeiten oder ein Befehlszeilenprogramm ausführen.
quelle
Einfach ausgedrückt, Sie haben mehr als hundert Tasten, mit denen Sie den Computer steuern / sprechen / bestellen können, anstatt eine einzige Maus mit zwei oder drei Tasten. Je mehr Kontrollen Sie haben, desto schneller können Sie sein.
Für alle, die nicht tippen können, könnte eine Bildschirmtastatur großartig aussehen. Wie schneller Sie auch die Maus verwenden können, Sie können nicht schneller tippen als mit der Tastatur.
Wenn Sie eine Maus oder ein Fenster verwenden, entspricht dies dem Computer, der Sie steuert und diktiert, was Sie tun können. Wenn Sie sich an die Befehlszeilenwelt gewöhnt haben, können Sie fühlen, wie das gesamte System unter Ihrer Kontrolle auf Ihre Bestellung wartet. Sie müssen es erleben, um den Unterschied zu verstehen.
quelle
Ich sehe nicht einmal den Grund, eine Antwort abzuhaken, lol. Jedenfalls. Terminal ist wie Ihre CMD unter Windows. Früher, bevor GUI auftauchte, programmierten und arbeiteten die Leute im DOS-Modus, ziemlich normales Terminal. GUI wurde entwickelt, um Aufgaben einfacher und einfacher zu machen, aber manchmal erfordert die Verwendung der GUI mehr Arbeit.
Wenn ich als Entwickler beispielsweise nur ein C ++ - Programm kompilieren möchte, muss ich keine ausgefeilte IDE verwenden. IDE ist eine GUI-Oberfläche mit vielen erweiterten Funktionen, die ein einfacher Texteditor nicht bietet. Anstatt eine wirklich große IDE für eine einfache Aufgabe herunterzuladen, kann ich einfach Folgendes schreiben und mein C ++ - Programm ausführen, dessen ausführbare Datei aufgerufen wird
main
.Wenn Sie eine Interpretersprache wie Python verwenden, können Sie die interaktive Python-Shell aufrufen. Ja. Es gibt interaktive Shells, die in eine nette GUI eingebettet sind, aber langsamer und fehlerhafter sind (oh man denke an IDLE ...)
Manchmal, wenn die GUI nicht funktioniert, können Sie versuchen, sie mit Terminal zu öffnen. Manchmal bieten einige Linux-Softwareprogramme keine gute GUI, oder es ist sehr schwierig zu finden, wo sich der GUI-Launcher befindet. Gehen Sie einfach zu Terminal und geben Sie Folgendes ein:
Dadurch wird die Datei homework.pdf für Sie geöffnet.
In anderen Situationen bietet die grafische Benutzeroberfläche nicht genügend Leistung und Magie, um Ihre Aufgabe zu erledigen. Einige Suchfunktionen sind sehr einfach und Sie können keine Tiefensuche oder komplizierte Suchmuster anwenden. Aber über das Terminal kann ein Befehl mit einem wirklich sehr komplizierten und langen Muster ausgegeben werden.
GUI ist nett, aber manchmal durch Befehle können Sie die Dinge auch einfacher machen. Manchmal haben Sie einfach keine Wahl: Sie müssen Befehle über Terminals verwenden.
quelle
Ich würde einen Nebenpunkt hinzufügen, der anscheinend nicht erwähnt wird, auch wenn dies kein echter Vorteil ist.
Denken Sie an die Tatsache, dass die GUI wie ein "Panel" ist, das den Zugriff auf die Funktionen des realen Programms ermöglicht . Viele Softwareprogramme, insbesondere in früheren Versionen, verfügen nicht über eine grafische Benutzeroberfläche und können nur vom Terminal aus ausgeführt werden. Und wie andere betonten, verfügen selbst Anwendungen mit einer grafischen Benutzeroberfläche manchmal nicht über Schnittstellen für alle Funktionen. Für diese Funktionen müssen Sie das Terminal verwenden.
quelle
Jeder hat die Vorteile gut beschrieben, ich möchte nur hinzufügen, dass abgesehen von der Transparenz, bei der Sie alle aufgeführten Abhängigkeiten sehen, die Geschwindigkeit. Nach dem Wegfall von synaptic von Ubuntu ist das Software-Center gerade auf langsameren Rechnern einfach zu lahm, hier ist die Installation vom Terminal aus deutlich schneller.
quelle