Frage Was ist der Unterschied zwischen Shell, Konsole und Terminal?


Ich bin verwirrt mit der Terminologie. Was ist der Unterschied zwischen Shell, Konsole und Terminal?


162
2018-05-24 13:22


Ursprung


und was ist mit prompt und selbst command line? - n611x007
Sehen Sie sich diese Frage von Unix & Linux an: unix.stackexchange.com/questions/4126/ ... - Flimm
Meine Frau sagte "der schwarze Bildschirm" - Kenji Noguchi


Antworten:


In der Linux-Welt können sie alle aus der Sicht des Benutzers auf der Tastatur gleich aussehen. Die Unterschiede bestehen darin, wie sie miteinander interagieren.

Das Schale ist das Programm, das Befehle verarbeitet und die Ausgabe zurückgibt. Die meisten Shells verwalten auch Vordergrund- und Hintergrundprozesse, Befehlsverlauf und Befehlszeilenbearbeitung. Diese Funktionen (und viele mehr) sind Standard in bash, die häufigste Shell in modernen Linux-Systemen.

EIN Terminal bezieht sich auf ein Wrapper-Programm, das eine Shell ausführt. Vor Jahrzehnten war dies ein physikalisches Gerät, das aus wenig mehr als einem Monitor und einer Tastatur bestand. Da Unix / Linux-Systeme bessere Multiprocessing- und Windowing-Systeme hinzufügten, wurde dieses Terminalkonzept in Software abstrahiert. Jetzt haben Sie Programme wie Gnome-Terminal der ein Fenster in einer Gnome - Fensterumgebung startet, in der ein Schale in die Sie Befehle eingeben können.

Das Konsole ist eine besondere Art von Terminal. In der Vergangenheit bestand die Konsole aus einer einzelnen Tastatur und einem Monitor, die an einen dedizierten seriellen Konsolenanschluss eines Computers angeschlossen waren, der für die direkte Kommunikation mit dem Betriebssystem auf niedriger Ebene verwendet wurde. Moderne Linux-Systeme bieten virtuelle Konsolen. Diese werden durch Tastenkombinationen (z.B. Alt+F1 oder Strg+Alt+F1; das Funktionstaste Zahlen verschiedene Konsolen), die auf niedrigen Ebenen des Linux-Betriebssystems behandelt werden - das bedeutet, dass es keinen speziellen Dienst gibt, der installiert und für die Ausführung konfiguriert werden muss. Die Interaktion mit der Konsole erfolgt ebenfalls über a Schale Programm.


143
2018-05-24 13:37



Bevor es Terminals mit Tastaturen gab, handelte es sich um Fernschreiber - eine Art elektrische Schreibmaschine. en.wikipedia.org/wiki/Teleprinter - Kevin Panko
Konsole bedeutet manchmal "die Tastatur und der Monitor, die physisch an diesen Computer angeschlossen sind". Z. B. "Ich habe mich von der Konsole aus angemeldet, weil der Server nicht auf das Netzwerk reagiert hat." - Kevin Panko
@Doug Harris: Kannst du ein paar Bilder von der Hardware hinzufügen, von der du sprichst? - claws
Als ich in den späten 1980er Jahren am College war, habe ich viel an DEC VT220 Terminals gearbeitet - en.wikipedia.org/wiki/VT220 - Das ist ein gutes Beispiel für das physische Gerät, das ich beschrieben habe. - Doug Harris
Also, wenn Terminals und Konsolen sind, in der heutigen Zeit, jeweils in Software implementiert - was ist der Unterschied zwischen den beiden (jetzt)? - Gavin Hope


Eine Shell ist ein Programm, das eine Eingabeaufforderung ausgibt und darauf wartet, dass Sie Befehle eingeben. Es führt sie aus und druckt dann eine weitere Aufforderung. Also, wie CMD in Windows oder Bash in Unix. Es kann in einem Terminal oder auf der Konsole ausgeführt werden.

Eine Konsole war ursprünglich eine physische Sache, eine Systemsteuerung. Rechnerisch bedeutet das normalerweise die Anzeige, die Sie vor dem Start oder nach dem Ende der GUI sehen. Sie können manchmal anstelle der GUI zur Anzeige wechseln. Dies ist der Ort, an dem das Betriebssystem Fehlermeldungen ausgibt. Auf einem Computer mit mehreren Benutzern ist das Display tatsächlich mit dem Computer verbunden. Nur um Sie zu verwirren, kann es unter Windows auch ein Fenster mit einer Befehlsshell bedeuten, d. H. Ein Terminal.

Ein Terminal war ursprünglich auch Hardware, um mit einem Computer zu kommunizieren. Heutzutage bezieht es sich normalerweise auf ein Fenster mit einer Befehlszeile (Shell), die in einem GUI-Fenster oder anstelle einer GUI erscheinen könnte.


10
2018-05-24 13:39





Denken Sie an einen anderen Kontext, nämlich Entwicklung.
Selbst wenn Sie nicht sehr tiefes Wissen über Entwicklung haben, kennen Sie wahrscheinlich die Grundlagen, das heißt: Sie bearbeiten ein Programm, senden es an einen Compiler oder an einen Interpreter, der eine kompilierte Anwendung erstellt.
Die Konsole ist wie der Editor Ihres Programms; es hilft dir dabei Schreiben aber es führt wirklich nichts aus: wenn Sie fertig sind, senden Sie es für den Compiler.

Sie können Ihren bevorzugten Editor verwenden, vim, gedit, emacs, notepad ++, Netbeans, eclise etc.etc, aber am Ende sind es nur verschiedene Werkzeuge: Wenn Sie das gleiche Programm schreiben, wird die Ausgabe die gleiche sein.
In dieser Metapher ist die Shell der Compiler. Die Befehle, die in das Terminal eingegeben werden, werden an die Shell gesendet, die sie interpretiert und sofort ausführt.
Während Terminals nur Frontends für die Shell sind, enthält die Shell die eigentliche Sprache, wie es beim Compiler der Fall ist.

Offensichtlich ist ein Terminal nicht genau ein Texteditor, hauptsächlich weil es keine Datei erzeugt, sondern Text an die zugrundeliegende Shell sendet und die Ausgabe von dieser abruft.

Und die Shell ist kein Compiler, sondern interpretiert Ihren Befehl und führt ihn sofort aus, anstatt eine ausführbare Datei zu erstellen.

Trotz dieses großen Unterschieds finde ich diese Metapher sehr hilfreich, um diese Idee zu verstehen.


1
2017-09-21 20:13





Es gibt wirklich keinen großen Unterschied. Damals, als die "Shell" ein Programm war, war das "Terminal" ein Frontend-Wrapper für dieses Programm und die "Konsole" war die physische Verbindung zum Computer (Tastatur / Bildschirm).

Je nachdem, welches Betriebssystem Sie ausführen, gibt es einen Unterschied. Die "Standard" -Shell ist BASH, die normalerweise in allen Varianten von Linux / Unix verfügbar ist. Windows verwendet eine völlig andere Shell.


0
2018-05-24 13:37





Ein Terminal ist eine textbasierte Schnittstelle (möglicherweise zu einer Shell)

Der Unterschied zwischen Konsole und Shell ist einer, den ich noch nicht verstehe, aber ich kann Ihnen sagen, wie sich ein Terminal von einer Shell unterscheidet.

Das Terminal ist (Laut Wikipedia) "eine serielle Computerschnittstelle für Texteingabe und -anzeige. Informationen werden als ein Array von vorgewählten gebildeten Zeichen dargestellt".

Sie können ein Terminal verwenden, um mit einer Shell zu interagieren, aber Sie können es auch verwenden, um mit einer Shell zu interagieren textbasierte GUI, manchmal genannt a Terminal-Benutzerschnittstelle. Beispielsweise:

  • Vim hat GUI-Elemente einschließlich Zeilennummern und benannte Registerkarten
  • Nano hat GUI-Elemente einschließlich eines Hilfemenüs mit Befehlen
  • Tmux hat GUI-Elemente einschließlich einer Statusleiste und Trennlinien zwischen den Bereichen
  • Minicom hat GUI-Elemente einschließlich Menüs und eine Statusleiste

In jedem Fall werden die GUI-Elemente mit Text anstatt mit Pixeln "gezeichnet".


0
2018-01-27 21:26



Ich bin mir nicht sicher, ob diese Definition nur textbasiert ist. In gewisser Weise könnten einige GUIs als Terminals imo angesehen werden. - jiggunjer


Für Anfänger Anfänger

Für eine detailliertere Beschreibung: https://askubuntu.com/a/506628/130518

  • Terminal = Texteingabe / Ausgabeumgebung
  • Konsole = physikalisches Terminal
  • Shell = Befehlszeileninterpreter

Ich werde im folgenden Text den normalsten Anwendungsfall beschreiben.

Ein Terminal Verwendet höllisch. Eine Shell kann ohne Terminal laufen.

Sich auf alltägliche Gegenstände beziehen:

  • Terminal -> TV-Bildschirm in Ihrem Haus
  • Shell -> Programm, das auf dem Fernsehbildschirm läuft

Eine andere Betrachtungsweise: Deine Ohren (Input) und Mund (Output) sind die Endgeräte für Sound. Ihr Gehirn ist der Interpret dieser Laute, die eine bestimmte Hülle (Verarbeitung) verwenden.

Das Terminal ist für uns Menschen, also können wir zu / von der Shell lesen und schreiben. Schalen können in Hintergrundprozessen laufen, die keine menschliche Interaktion erfordern, z. Cron-Job und benötigen daher kein Terminal.

Einige Beispiele für Terminals, die es gibt:

  • Eingabeaufforderung
  • Guake
  • Gnome-Terminal
  • Terminator

Einige Beispiele für existierende Shells:

  • Bash
  • sh (Bourne-Schale)
  • PowerShell [Fenster]
  • zsh (Z-Shell)

Ich habe nur geschrieben, wie diese beiden normalerweise funktionieren, es gibt andere Möglichkeiten, wie sie funktionieren, aber das ist für einen fortgeschritteneren Benutzer.


0
2018-03-06 10:29