Terminal Vs. Shell [duplizieren]

14

Mögliche Duplikate:
Was sind die Unterschiede zwischen Shell, Konsole und Terminal?

Das klingt wahrscheinlich nach einer dummen Frage, aber ich habe große Probleme, klar zwischen einer Shell (wie Bourne oder Bash) und der Terminal-Anwendung in GNOME zu unterscheiden. Mir ist klar, dass beide völlig unterschiedlich sind, aber ich kann scheinbar keine klare Antwort in Textform finden. Kann jemand klar zwischen beiden unterscheiden?

Nicklas Olsen
quelle

Antworten:

15

Das Terminalprogramm ist nur eine grafische Oberfläche zur Shell. Die Shell ist das, was Befehle und so weiter verarbeitet. Das Terminal-Programm ermöglicht lediglich die Interaktion mit der grafischen Umgebung.

user55325
quelle
8

Die Shell ist ein typisches Unix-Programm. Es liest Befehle von der Standardeingabe und druckt etwas auf die Standardausgabe. Das ist einfach und gut.

Der springende Punkt ist: In einer grafischen Umgebung (wie GNOME oder KDE) kann ein Programm nicht einfach Text direkt auf den Desktop schreiben. Wenn die Programme könnten, würde dies schnell zu Chaos führen. Dazu benötigen Sie ein Programm, in dem andere Programme ihren Text schreiben können. Dieses Programm akzeptiert auch Tastatureingaben vom Benutzer und konvertiert diese in Byte-Sequenzen, da dies von vielen Programmen (Befehlszeile, textbasiert, nicht GUI) erwartet wird. All dies ist Aufgabe der GNOME Terminal-Anwendung.

Sie haben also die Shell (wahrscheinlich bash) und das GNOME-Terminal ist darum gewickelt. Um zu sehen , was genau das GNOME - Terminal funktioniert können Sie (Alt + F2) laufen gnome-terminal, xtermund rxvtzwischendurch und sehen , wo sie verschieden sind und was sie gemeinsam haben.

Roland Illig
quelle
1

Ich denke, was Sie wirklich fragen, ist der Unterschied zwischen der Konsole und einer Terminal- Anwendung xterm?

In diesem Fall befindet sich die Konsole lokal auf dem Computer. Es kann nur eine Konsole geben. Die Ausgabe der Konsole richtet sich an /dev/consoleden Monitor. Ein Terminal hingegen ist in Wirklichkeit ein Terminalemulator, der auf die Zeiten zurückgeht, als Mainframes so groß waren wie ganze Räume und Benutzer mit dummen Terminals interagierten , die vom Mainframe entfernt waren. Die Terminals würden Terminalbefehle über eine serielle Leitung an den Mainframe senden , um mit ihm zu interagieren. Heutzutage verwenden wir immer noch Terminals, aber sie sind emuliert, so dass wir mehr als eines verwenden können (jedes ist an eine Pseudotty gebunden /dev/pts#) und wir können sie sogar remote verwenden und ihre Verbindung über einen verschlüsselten SSH-Kanal über das Internet weiterleiten.

Sowohl die Konsole als auch eine Terminalanwendung rufen beim Anmelden Ihre Shell (s) auf.

SiegeX
quelle
-2

Das Terminal ist im Wesentlichen eine emulierte Shell in einem Fenster.

Wenn Sie eine echte Shell ohne Terminal sehen möchten, drücken Sie Ctrl+ Alt+ F1und Ctrl+ Alt+ F8, um zur grafischen Oberfläche zurückzukehren.

digitxp
quelle
Ein Terminal ist keine Art Shell.
Ignacio Vazquez-Abrams
@ Tennis Care zu erarbeiten?
digitxp
Siehe Ignacios Kommentar. Ein Terminal, ob es sich um eine Systemkonsole oder gnome-terminal, xtermoder Kitt ist eher an einem physischen Terminal (und ist somit ein Emulator ). Eine Shell ist eine Software, die unter anderem Eingaben akzeptiert, Verarbeitungen ausführt und auf einem Terminal ausgibt.
Bis auf weiteres angehalten.
@ Tennis Also sollte ich sagen "Das Terminal enthält im Wesentlichen eine emulierte Shell in einem grafischen Fenster."
digitxp
Ein Terminal ist nicht unbedingt ein Grafikfenster und eine Shell muss nicht unbedingt darin ausgeführt werden. Und die Shell ist nicht emuliert (es könnte sich um ein anderes Programm handeln). Was Sie fragen, ist im Wesentlichen dasselbe wie Ihr Original. Sehen Sie hier die Antwort , die sehr nahe daran ist, vollständig und ziemlich genau zu sein.
Bis auf weiteres angehalten.