Was ist der Unterschied zwischen shell, Konsole und terminal?

Ich bin verwirrt mit der Terminologie. Was ist der Unterschied zwischen shell, Konsole und terminal?

Author: Braiam, 2010-05-24

6 answers

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.

Die Shell ist das Programm, das tatsächlich 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, der gebräuchlichsten Shell in modernen Linux-Systemen.

Eine terminal bezieht sich auf ein Wrapper-Programm, das eine Shell ausführt. Vor Jahrzehnten war dies ein physisches 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, die ein Fenster in einer Gnome-Fensterumgebung starten, in der eine Shell ausgeführt wird, in die Sie Befehle eingeben können.

Die Konsole ist ein besonderes Sortieren von terminal. Historisch gesehen war die Konsole eine einzelne Tastatur und ein Monitor, die an einen dedizierten seriellen Konsolenanschluss eines Computers angeschlossen waren, der für die direkte Kommunikation auf niedrigem Niveau mit dem Betriebssystem verwendet wurde. Moderne Linux-Systeme bieten virtuelle Konsolen. Auf diese wird über Tastenkombinationen zugegriffen (z. B. Alt+F1 oder Strg+Alt+F1; die Funktionstaste (verschiedene Konsolen), die bei niedrigen ebenen des Linux-Betriebssystems - Dies bedeutet, dass es keinen speziellen Dienst gibt, der installiert und für die Ausführung konfiguriert werden muss. Die Interaktion mit der Konsole erfolgt auch mit einem shell Programm.

 195
Author: Doug Harris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-17 11:43:42

Eine Shell ist ein Programm, das eine Eingabeaufforderung erstellt und auf die Eingabe von Befehlen wartet. Es führt sie aus und druckt dann eine weitere Eingabeaufforderung. So, 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, ein Bedienfeld. In Computerbegriffen bedeutet es normalerweise die Anzeige, die Sie sehen, bevor die GUI startet oder nachdem sie beendet ist; Sie können manchmal zur Anzeige anstelle der GUI wechseln. Es ist der Ort, wo der Betrieb system druckt Fehlermeldungen. Auf einem Mehrbenutzercomputer ist es das Display, das tatsächlich an den Computer angeschlossen ist. Nur um Sie zu verwirren, kann es unter Windows auch ein Fenster mit einer Befehlsshell bedeuten, dh ein Terminal.

Ein Terminal war ursprünglich auch Hardware, die zur Kommunikation mit einem Computer verwendet wurde. Heutzutage bezieht es sich normalerweise auf ein Fenster mit einer Befehlszeile (Shell), die in einem GUI-Fenster oder anstelle einer GUI angezeigt wird.

 17
Author: Peter Westlake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-05-24 13:39:10

Für Anfänger Anfänger

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

  • terminal = Text-Eingabe / Ausgabeumgebung
  • console = physisches Terminal (etwas, das Sie tatsächlich physisch berühren können)
  • shell = Befehlszeileninterpreter

Ich werde den normalsten Anwendungsfall dafür im folgenden Text beschreiben.

Ein Terminal verwendet eine Shell. Eine Shell kann ohne a laufen Terminal.

Um sich auf Alltagsgegenstände zu beziehen:

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

Eine andere Art, es zu betrachten: Ihre Ohren (Eingang) und Mund (Ausgang) sind die Anschlüsse für Ton. Ihr Gehirn ist der Interpret dieser Klänge mit einer bestimmten Schale (Verarbeitung).

Das Terminal ist für uns Menschen, also können wir in/aus der Shell lesen und schreiben. Shells können in Hintergrundprozessen ausgeführt werden das erfordert keine menschliche Interaktion, z. B. Cron Job, und erfordert daher kein Terminal.

Einige Beispiele für Terminals, die existieren:

  • Eingabeaufforderung
  • guake
  • gnome-terminal -
  • terminator -

Einige Beispiele für Shells, die existieren:

  • Bash -
  • sh (Bourne shell)
  • PowerShell [windows]
  • 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.

 12
Author: Karl Morrison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-05-22 10:43:05

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 zur Texteingabe und-anzeige. Informationen werden als Array von vorgewählten "Zeichen" dargestellt.

Sie können ein Terminal verwenden, um mit einer Shell zu interagieren, aber Sie können es auch verwenden, um interagieren Sie mit einem textbasierten GUI, manchmal auch als Terminal User Interface. Beispiel:

  • Vim enthält GUI-Elemente, einschließlich Zeilennummern und benannte Registerkarten
  • Nano verfügt über GUI-Elemente, darunter ein Hilfe - Menü mit Befehlen
  • Tmux verfügt über GUI-Elemente, darunter eine Statusleiste und Trennlinien zwischen den Bereichen
  • Minicom hat GUI-Elemente einschließlich Menüs und eine Statusleiste

Jeweils, die GUI-Elemente werden eher mit Text als mit Pixeln" gezeichnet".

 2
Author: Nathan Long,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-01-27 21:26:40

Denken Sie an einen anderen Kontext, das ist Entwicklung.
Selbst wenn Sie keine sehr tiefen Entwicklungskenntnisse haben, kennen Sie wahrscheinlich die Grundlagen, dh: 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 Ihnen beim Schreiben von aber es wird nichts wirklich ausgeführt: Wenn Sie fertig sind, senden Sie es an den Compiler dafür.

Sie können Ihre bevorzugte verwenden editor vim, gedit, emacs, notepad++, Netbeans, eclise etc.etc aber am Ende sind sie nur verschiedene Werkzeuge: Wenn Sie dasselbe Programm schreiben, ist die Ausgabe dieselbe.
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 tatsächliche Sprache, wie dies für den Compiler der Fall ist.

Offensichtlich ein terminal ist nicht gerade ein Texteditor, hauptsächlich weil es keine Datei erzeugt, sondern Text an die zugrunde liegende Shell sendet und die Ausgabe davon abruft.

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

Selbst mit diesem großen Unterschied finde ich diese Metapher sehr hilfreich, um diese Idee zu verstehen.

 1
Author: AgostinoX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-09-21 20:13:18

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).

Es gibt einen Unterschied, je nachdem, welches Betriebssystem Sie ausführen. Die" Standard " - Shell ist BASH, die normalerweise auf allen Varianten von Linux / Unix verfügbar ist. Windows verwendet eine ganz andere Shell.

 0
Author: Josh K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-05-24 13:37:13