Was ist der Unterschied zwischen Terminal, Konsole, Shell und Befehlszeile?
Antwort1
Kurze Antwort:
- Terminal= Text-Eingabe/Ausgabe-Umgebung
- Konsole= physisches Terminal
- Hülse= Kommandozeileninterpreter
Lange Antwort:
Konsole und Terminal sind eng miteinander verwandt. Ursprünglich bezeichneten sie ein Gerät, mit dem man mit einem Computer interagieren konnte: In den frühen Tagen von Unix war damit einFernschreiber-artiges Gerät, das einer Schreibmaschine ähnelt und manchmal auch Fernschreiber oder in Kurzform „tty“ genannt wird. Der Name „Terminal“ stammt aus der elektronischen Sichtweise und der Name „Konsole“ aus der Möbelsichtweise. Sehr früh in der Unix-Geschichte wurden elektronische Tastaturen und Displays zur Norm für Terminals.
Terminal
In der Unix-Terminologie einTerminalist eine besondere Art vonGerätedateiwelches eine Reihe zusätzlicher Befehle implementiert (ioctls) über Lesen und Schreiben hinaus. Einige Terminals werden vom Kernel im Namen eines Hardwaregeräts bereitgestellt, beispielsweise wenn die Eingabe über die Tastatur erfolgt und die Ausgabe an einen Textmodus-Bildschirm gesendet wird oder wenn die Eingabe und Ausgabe über eine serielle Leitung übertragen werden. Andere Terminals, manchmal auch Pseudoterminals oder Pseudo-TTYs genannt, werden (über eine dünne Kernelschicht) von Programmen bereitgestellt, die alsTerminalemulatorenZu den Terminalemulatoren gehören unter anderem:
- GUI-Anwendungen imX Window System:Xterm, Gnome Terminal, Konsole, Terminator usw.
- BildschirmUndtmux, das eine Isolationsschicht zwischen einem Programm und einem anderen Terminal bereitstellt
- SSH, das ein Terminal auf einem Rechner mit Programmen auf einem anderen Rechner verbindet
- Erwarten, zum Skripten von Terminalinteraktionen
Das WortTerminalkann auch eine traditionellere Bedeutung haben: ein Gerät, über das man mit einem Computer interagiert, typischerweise mit einer Tastatur und einem Display. Ein X-Terminal ist beispielsweise eine ArtDünner Kunde, ein Spezialcomputer, dessen einziger Zweck darin besteht, eine Tastatur, einen Bildschirm, eine Maus und gelegentlich andere Peripheriegeräte für die menschliche Interaktion anzusteuern, wobei die eigentlichen Anwendungen auf einem anderen, leistungsstärkeren Computer ausgeführt werden.
Konsole
AKonsoleist im Allgemeinen ein Terminal im physischen Sinne, das per Definition das primäre Terminal ist, das direkt mit einer Maschine verbunden ist. Die Konsole erscheint dem Betriebssystem als (kernelimplementiertes) Terminal. Auf einigen Systemen, wie Linux und FreeBSD, erscheint die Konsole als mehrere Terminals (ttys) (spezielle Tastenkombinationen wechseln zwischen diesen Terminals); um die Sache noch verwirrender zu machen, kann der Name, der jedem einzelnen Terminal gegeben wird, „Konsole“, „virtuelle Konsole“, „virtuelles Terminal“ und andere Variationen sein.
Siehe auchWarum ist ein virtuelles Terminal „virtuell“ und was/warum/wo ist das „echte“ Terminal?.
Befehlszeile [Schnittstelle]
ABefehlszeileist eine Schnittstelle, in die der Benutzer einen Befehl eingibt (der als Zeichenfolge ausgedrückt wird – normalerweise ein Befehlsname, gefolgt von einigen Parametern) und die ReturnTaste drückt, um diesen Befehl auszuführen.
Hülse
AHülseist die primäre Schnittstelle, die Benutzer sehen, wenn sie sich anmelden, und deren Hauptzweck darin besteht, andere Programme zu starten. (Ich weiß nicht, ob die ursprüngliche Metapher darin besteht, dass die Shell die Heimumgebung des Benutzers ist oder dass die Shell das ist, wo andere Programme ausgeführt werden.)
In Unix-KreisenHülsehat sich spezialisiert auf die Bedeutung einerKommandozeilen-Shell, wobei man den Namen der Anwendung eingibt, die man starten möchte, gefolgt von den Namen der Dateien oder anderer Objekte, auf die die Anwendung reagieren soll, und dann die Eingabetaste drückt. Andere Arten von Umgebungen (mit der bemerkenswerten jüngsten Ausnahme von Gnome Shell) verwenden das Wort „Shell“ normalerweise nicht; Fenstersysteme beinhalten beispielsweise „Fenstermanager" Und "Desktopumgebungen“, keine „Schale“.
Es gibt viele verschiedene Unix-Shells. Die Standard-Shell von Ubuntu istSchlag(wie die meisten anderen Linux-Distributionen). Beliebte Alternativen sindzsh(wobei Leistung und Anpassbarkeit im Vordergrund stehen) undFisch(was die Einfachheit betont).
Befehlszeilen-Shells enthalten Flusssteuerungskonstrukte zum Kombinieren von Befehlen. Benutzer können nicht nur Befehle in eine interaktive Eingabeaufforderung eingeben, sondern auch Skripte schreiben. Die gängigsten Shells haben eine gemeinsame Syntax basierend aufBourne_Shell. Bei der Diskussion von „Shell-Programmierung“, wird die Shell fast immer als eine Shell im Bourne-Stil verstanden. Einige Shells, die oft für Skripting verwendet werden, denen jedoch erweiterte interaktive Funktionen fehlen, sinddie Korn-Shell (ksh)und vieleAscheVarianten. So ziemlich jedes Unix-ähnliche System hat eine Bourne-artige Shell installiert /bin/sh
, normalerweise ash, ksh oder bash. Unter Ubuntu /bin/sh
istBindestrich, eine Ash-Variante (ausgewählt, weil sie schneller ist und weniger Speicher verwendet als Bash).
In der Unix-SystemadministrationHülseist das Programm, das beim Anmelden aufgerufen wird. Normale Benutzerkonten haben eine Befehlszeilen-Shell, aber Benutzer mit eingeschränktem Zugriff haben möglicherweise eineeingeschränkte Schaleoder ein anderer spezifischer Befehl (z. B. für Nur-Dateiübertragungskonten).
Die Arbeitsteilung zwischen Terminal und Shell ist nicht ganz offensichtlich. Hier sind ihre Hauptaufgaben.
- Eingabe: Das Terminal wandelt Tastenkombinationen in Steuersequenzen um (z. B. Left→
\e[D
). Die Shell wandelt Steuersequenzen in Befehle um (z. B.\e[D
→backward-char
). - Zeilenbearbeitung, Eingabeverlauf und Vervollständigung werden von der Shell bereitgestellt.
- Das Terminal kann stattdessen seine eigene Zeilenbearbeitung, seinen eigenen Verlauf und seine eigene Vervollständigung bereitstellen und eine Zeile erst dann an die Shell senden, wenn sie zur Ausführung bereit ist. Das einzige gängige Terminal, das auf diese Weise funktioniert, ist
M-x shell
Emacs.
- Das Terminal kann stattdessen seine eigene Zeilenbearbeitung, seinen eigenen Verlauf und seine eigene Vervollständigung bereitstellen und eine Zeile erst dann an die Shell senden, wenn sie zur Ausführung bereit ist. Das einzige gängige Terminal, das auf diese Weise funktioniert, ist
- Ausgabe: Die Shell gibt Anweisungen wie „Anzeige
foo
“, „Vordergrundfarbe auf Grün ändern“, „Cursor zur nächsten Zeile bewegen“ usw. aus. Das Terminal reagiert auf diese Anweisungen. - Bei der Eingabeaufforderung handelt es sich lediglich um ein Shell-Konzept.
- Die Shell sieht nie die Ausgabe der von ihr ausgeführten Befehle (es sei denn, sie wird umgeleitet). Der Ausgabeverlauf (Scrollback) ist ein reines Terminalkonzept.
- Das Kopieren und Einfügen zwischen Anwendungen wird vom Terminal bereitgestellt (normalerweise mit der Maus oder Tastenkombinationen wie Ctrl+ Shift+ Voder Shift+ Insert). Die Shell kann auch über einen eigenen internen Kopier- und Einfügemechanismus verfügen (z. B. Meta+ Wund Ctrl+ Y).
- Auftragssteuerung(Programme im Hintergrund starten und verwalten) wird größtenteils von der Shell ausgeführt. Tastenkombinationen wie Ctrl+ Czum Beenden des Vordergrundjobs und Ctrl+ Zzum Anhalten des Jobs werden jedoch vom Terminal verarbeitet.
Recycelt ausUnix und Linux
Antwort2
Eine visuelle Darstellung.
Terminal
Etwas, an dem Sie sitzen und wie ein Chef arbeiten können.
Konsole
Irgendeine Hardware, die eine Menge Sachen kann.
Ein weiteres Beispiel für eine Konsole wäre eine Videospielkonsole wie ein Super Nintendo [auf der Sie Actraiser spielen können].
Hülse
Grundsätzlich eine Anwendung zum Ausführen von Befehlen.
Befehlszeile [Schnittstelle]
Grundsätzlich alles, in das Sie Befehle eingeben.
Antwort3
Von demLinux-Informationsprojekt:
Terminal: Technisch gesehen ist ein Terminalfenster, auch Terminalemulator genannt, ein Nur-Text-Fenster in einer grafischen Benutzeroberfläche (GUI), das eine Konsole emuliert.
In unseren Worten: Eine GUI-Anwendung, von der aus wir auf die Konsole eines Benutzers zugreifen können.
Konsole: eine Instrumententafel mit den Bedienelementen für einen Computer
Hülse:Eine Shell ist ein Programm, das die traditionelle, nur aus Text bestehende Benutzeroberfläche für Linux und andere Unix-ähnliche Betriebssysteme bereitstellt.
Befehlszeile: Eine Befehlszeile ist der Bereich rechts neben der Eingabeaufforderung im Volltextanzeigemodus eines Computermonitors (normalerweise ein CRT- oder LCD-Bildschirm), in den ein Benutzer Befehle und Daten eingibt
Antwort4
DerHülseist ein Programm, dasProzesseBefehle undkehrt zurückAusgabe, wie Bash in Linux.
ATerminalist ein Programm, das eineHülse. Früher war es einphysisches Gerät(bevor Terminals Monitore mit Tastaturen waren, waren sieFernschreiber) und dann wurde sein Konzept in Software wie GNOME Terminal übertragen.
Wenn ich also das GNOME-Terminal öffne, erscheint ein schwarzes Fenster, in dem einHülsewird angezeigt, damit ich meine Befehle ausführen kann.
AKonsoleist einspezielle Art von TerminalEs war auch einphysisches Gerät. Unter Linux haben wir beispielsweisevirtuelle Konsolen, auf die wir durch eine Kombination von Ctrl+ Alt+ F1bis zugreifen können F7.
Konsolemanchmal bedeutet dies die Tastatur und den Monitorphysischan diesen Computer angeschlossen.