Was ist der Unterschied zwischen Terminal, Konsole, Shell und Befehlszeile?
Was ist der Unterschied zwischen Terminal, Konsole, Shell und Befehlszeile?
Antworten:
Kurze Antwort:
Lange Antwort:
Konsole und Terminal sind eng miteinander verbunden. Ursprünglich bedeuteten sie ein Gerät, mit dem man mit einem Computer interagieren konnte: In den Anfängen von Unix bedeutete dies ein Gerät im Teleprinter- Stil, das einer Schreibmaschine ähnelte, manchmal auch als Teletypewriter oder kurz „tty“ bezeichnet. Der Name „Terminal“ kam aus elektronischer Sicht und der Name „Konsole“ aus Möbelsicht. Sehr früh in der Unix-Geschichte wurden elektronische Tastaturen und Displays zur Norm für Terminals.
In der Unix-Terminologie ist ein Terminal eine bestimmte Art von Gerätedatei, die eine Reihe zusätzlicher Befehle ( ioctls ) implementiert, die über das Lesen und Schreiben hinausgehen. Einige Terminals werden vom Kernel im Auftrag eines Hardwaregeräts bereitgestellt, z. B. mit Eingaben über die Tastatur und Ausgaben über einen Textmodusbildschirm oder mit Ein- und Ausgaben über eine serielle Leitung. Andere Terminals, manchmal als Pseudo-Terminals oder Pseudo-Terminals bezeichnet, werden (über eine dünne Kernel-Schicht) von Programmen bereitgestellt, die als Terminal-Emulatoren bezeichnet werden . Einige Arten von Terminalemulatoren umfassen:
Das Wort Terminal kann auch eine traditionellere Bedeutung eines Geräts haben, über das man mit einem Computer interagiert, typischerweise mit einer Tastatur und einem Display. Beispielsweise ist ein X-Terminal eine Art Thin Client , ein Spezialcomputer, dessen einziger Zweck darin besteht, Tastatur, Bildschirm, Maus und gelegentlich andere Peripheriegeräte für die menschliche Interaktion zu steuern, wobei die eigentlichen Anwendungen auf einem anderen, leistungsstärkeren Computer ausgeführt werden.
Eine Konsole ist im Allgemeinen ein Terminal im physischen Sinne, das definitionsgemäß das primäre Terminal ist, das direkt mit einer Maschine verbunden ist. Die Konsole erscheint dem Betriebssystem als (kernelimplementierte) Terminals. Auf einigen Systemen wie Linux und FreeBSD erscheint die Konsole als mehrere Terminals (ttys) (spezielle Tastenkombinationen schalten zwischen diesen Terminals um). Um die Sache zu verwechseln, kann der Name, der jedem bestimmten Terminal gegeben wird, "Konsole", "virtuelle Konsole", "virtuelles Terminal" und andere Variationen sein.
Siehe auch Warum ist ein virtuelles Terminal "virtuell" und was / warum / wo ist das "echte" Terminal? .
Eine Befehlszeile ist eine Schnittstelle, bei der der Benutzer einen Befehl eingibt (der als Folge von Zeichen ausgedrückt wird - normalerweise ein Befehlsname, gefolgt von einigen Parametern) und die ReturnTaste drückt , um diesen Befehl auszuführen.
Eine Shell ist die Hauptschnittstelle, die Benutzern beim Anmelden angezeigt wird und deren Hauptzweck darin besteht, andere Programme zu starten. (Ich weiß nicht, ob die ursprüngliche Metapher lautet, dass die Shell die Heimumgebung für den Benutzer ist oder dass die Shell das ist, in dem andere Programme ausgeführt werden.)
In Unix-Kreisen hat sich Shell auf eine Befehlszeilen-Shell spezialisiert , die sich darauf konzentriert, den Namen der zu startenden Anwendung einzugeben, gefolgt von den Namen der Dateien oder anderen Objekte, auf die die Anwendung reagieren soll, und die Eingabetaste zu drücken. In anderen Umgebungen (mit Ausnahme der Gnome-Shell) wird das Wort "Shell" normalerweise nicht verwendet. Bei Fenstersystemen handelt es sich beispielsweise um „ Fenstermanager “ und „ Desktop-Umgebungen “, nicht um eine „Shell“.
Es gibt viele verschiedene Unix-Shells. Ubuntus Standard-Shell ist Bash (wie die meisten anderen Linux-Distributionen). Zu den beliebten Alternativen gehören zsh (mit Schwerpunkt auf Leistung und Anpassbarkeit) und fish (mit Schwerpunkt auf Einfachheit).
Befehlszeilen-Shells enthalten Flusssteuerungskonstrukte zum Kombinieren von Befehlen. Benutzer können nicht nur Befehle an einer interaktiven Eingabeaufforderung eingeben, sondern auch Skripts schreiben. Die gebräuchlichsten Shells haben eine gemeinsame Syntax, die auf der Bourne_shell basiert . Bei der Erörterung der " Shell-Programmierung " wird die Shell fast immer als eine Bourne-artige Shell impliziert. Einige Shells, die häufig für Skripte verwendet werden, aber keine erweiterten interaktiven Funktionen bieten, umfassen die Korn-Shell (ksh) und viele Ash- Varianten. Auf so ziemlich jedem Unix-ähnlichen System ist eine Bourne-Shell installiert /bin/sh
, normalerweise ash, ksh oder bash. Unter Ubuntu /bin/sh
ist Dash eine Ash-Variante (ausgewählt, weil sie schneller ist und weniger Speicher benötigt als bash).
In der Unix-Systemadministration ist die Shell eines Benutzers das Programm, das beim Anmelden aufgerufen wird. Normale Benutzerkonten verfügen über eine Befehlszeilen-Shell, Benutzer mit eingeschränktem Zugriff haben jedoch möglicherweise eine eingeschränkte Shell oder einen anderen spezifischen Befehl (z. B. für die Dateiübertragung) -nur Konten).
Die Arbeitsteilung zwischen Terminal und Shell ist nicht ganz offensichtlich. Hier sind ihre Hauptaufgaben.
\e[D
). Die Shell wandelt Steuersequenzen in Befehle um (zB \e[D
→ backward-char
).M-x shell
in Emacs.foo
“, „Vordergrundfarbe auf Grün umschalten“, „Cursor in nächste Zeile bewegen“ usw. aus. Das Terminal reagiert auf diese Anweisungen.Von Unix & Linux recycelt
CONFIG_TTY
. Die Unterstützung für Terminalemulatoren (genauer gesagt Pseudoterminals - „Terminalemulator“ enthält nicht immer telnetd, screen, expect,…) wird von gesteuert CONFIG_UNIX98_PTYS
. Die Unterstützung für die Anzeige im PC-Textmodus und für Tastaturen oder ähnliches wird von gesteuert CONFIG_VT
. Siehe drivers/tty/Kconfig
in der Kernelquelle.
Eine visuelle Darstellung.
Etwas, an das man sich setzen und wie ein Chef arbeiten kann.
Einige Hardware, die ein paar Sachen macht.
Ein weiteres Beispiel für eine Konsole wäre eine Videospielkonsole wie ein Super Nintendo [wo Sie Actraiser spielen können].
Grundsätzlich eine Anwendung zum Ausführen von Befehlen.
Grundsätzlich alles, in das Sie Befehle eingeben.
Aus dem Linux Information Project :
Terminal : Technisch gesehen ist ein Terminalfenster, das auch als Terminalemulator bezeichnet wird, ein reines Textfenster in einer grafischen Benutzeroberfläche (GUI), die eine Konsole emuliert.
In unseren Worten: Eine GUI-Anwendung, über die wir auf die Konsole eines Benutzers zugreifen können.
Konsole : Eine Instrumententafel mit den Bedienelementen für einen Computer
Shell : Eine Shell ist ein Programm, das die traditionelle Nur-Text-Benutzeroberfläche für Linux und andere Unix-ähnliche Betriebssysteme bereitstellt
Befehlszeile : Eine Befehlszeile ist die Leerstelle rechts von der Eingabeaufforderung in einem Volltextanzeigemodus auf einem Computermonitor (normalerweise eine CRT- oder LCD-Anzeige), in die ein Benutzer Befehle und Daten eingibt
Die Antworten hier scheinen sehr gut zu sein. Sie sind jedoch zu trocken und technisch für meinen Geschmack, also gebe ich ein Take.
Terminal ist das Ende von etwas - wo es endet. Wenn Sie beispielsweise in einer Stadt mit der U-Bahn fahren, ist der Bahnhof, an dem Sie aussteigen, Ihr Terminal. Oder auf einem Flughafen wird der Ort als Terminal betrachtet, an dem Personen aus dem Flughafen aussteigen, wenn sie ihr Zielland erreichen. Der Grund, warum das Terminal am Flughafen heutzutage sowohl der Ort ist, an dem Sie Leute an Bord bringen, als auch der Ort, an dem Sie sie aus dem Flugzeug bringen, ist aus offensichtlichen wirtschaftlichen Gründen.
Der Zweck eines Computers besteht darin, Daten abzurufen, etwas damit zu tun und das Ergebnis auszuspucken. Somit ist das Terminal ein beliebiges Gerät, von dem Sie das Ergebnis der Berechnung abrufen können (z. B. ein Bildschirm). Es ist einfach passiert, dass Sie in den ersten Computern normalerweise die Eingabe (Tastatur) und Ausgabe (Bildschirm) als ein einzelnes Gerät hatten. Aus diesem Grund werden Terminals heutzutage als Ein- / Ausgabegeräte betrachtet. Eine Maus, Tastatur, Bildschirm, Kamera, sie sind alle Terminals.
Shell ist eine OS-Sache. Auf einem Computer haben Sie den Kernel, der unter Ubuntu zum Beispiel der Linux-Teil ist. Da der Kernel nun wirklich niedrig ist, wird eine Shell bereitgestellt - ein Programm, mit dem der Benutzer auf einfache Weise mit dem Kernel interagieren kann. Das ist zum Beispiel BASH.
Konsole ist (aus einem Wörterbuch)
Eine ebene Fläche, die die Bedienelemente für eine Maschine, ein elektrisches Gerät usw. enthält.
Deshalb gelten in der Musikindustrie das Board mit allen Knöpfen oder in einem Space Shuttle der Kommandotisch als Konsolen. Super Nintendo und PS2 werden in der Vergangenheit auch als Konsolen bezeichnet, da die ersten derartigen Unterhaltungsgeräte wie Kisten mit einer Reihe von Knöpfen aussahen.
Die Befehlszeile ist nur eine Schnittstelle - das Gegenteil von GUI. Es gibt nämlich zwei Arten von Schnittstellen auf einem Computer; CLI (Command Line Interface) und GUI (Graphical User Interface). Der Hauptunterschied besteht darin, dass der erste von der Tastatur eingegeben wird, während der zweite von der Maus eingegeben wird.
Um meine Antwort zusammenzufassen:
Shell ist ein Programm, das processes
Befehle und returns
Ausgaben ausführt , wie Bash in Linux.
Terminal ist ein Programm , bei dem es sich bei run
einer Shell in der Vergangenheit um ein physisches Gerät handelte (bevor Terminals mit Tastaturen überwacht wurden, handelte es sich um Teletypen ). Anschließend wurde das Konzept in eine Software wie Gnome-Terminal übertragen .
Also öffne ich Gnome-Terminal und es erscheint ein schwarzes Fenster, in dem Shell ausgeführt wird, damit ich meine Befehle ausführen kann.
Konsole ist eine spezielle Art von Terminal , es war auch ein physisches Gerät. Beispiel in Linux wir haben , virtual console
die ich ihnen durch Kombination zugreifen Ctrl+ Alt+ F1 to F7.
Konsole bedeutet manchmal, dass Tastatur und Monitor physisch an diesen Computer angeschlossen sind.
Diese Begriffe passen oft zusammen, sodass die Benutzer einen der Begriffe verwenden, um auf die Sammlung zu verweisen. (dh es ist normalerweise aus dem Kontext ersichtlich, dass sie ein Terminalfenster bedeuten, das eine Schnittstelle zu einer Befehlszeilen-Shell bereitstellt).
Damit dies nicht zu langwierig wird, sage ich xterm nur als Ersatz für XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. Gleiches gilt für bash.
Die Konsole hat mehrere andere spezifische Bedeutungen. Lassen Sie dies also vorerst weg.
Terminal : Etwas, das die menschliche Interaktion mit Programmen über einen bidirektionalen Strom von ASCII / UTF8 / anderen Zeichen ermöglicht, normalerweise mit VT100 oder einer ähnlichen Escape-Code-Verarbeitung. (ZB Rücktaste, Löschen, Pfeiltasten usw. erzeugen Escape-Codes. Programme können Escape-Codes drucken, um den Cursor auf dem Terminalbildschirm zu bewegen, zu fettem Text und / oder Farbe zu wechseln, den Bildschirm zu löschen oder zu scrollen usw.) Früher war dies oft ein dediziertes Gerät mit einem Bildschirm und einer Tastatur sowie einer seriellen Schnittstelle. Jetzt ist es normalerweise ein Programm wie xterm.
Es gibt Gerätedateien für Programme zum Lesen / Schreiben von / zu Terminals, und auf die andere Seite der virtuellen Terminals kann auch als Gerätedatei zugegriffen werden. Hier schreibt xterm Ihre Eingabe, damit bash sie lesen kann.
Jedes Terminal, einschließlich virtueller Terminals, bietet grundlegende Funktionen zur Zeilenbearbeitung, wenn es sich im gekochten (im Gegensatz zum rohen) Modus befindet. Dies wird durch den Kernel-Code erledigt. Es ist Bash, das die Zeilenbearbeitung bereitstellt, die Sie mit den Pfeiltasten ausführen können. (Versuchen cat
Sie, auszuführen und zu tippen, wenn Sie sehen möchten, wie die grundlegende, vom Kernel bereitgestellte Zeilenbearbeitung aussieht. Die Rücktaste funktioniert und einige andere Dinge, die Ihren Stty-Einstellungen entsprechen.)
Obwohl sich hinter den Endgeräten eine Menge Kernel-Code befindet, wird dieser als Code für die Endgerätehandhabung und nicht als Endgerät selbst bezeichnet.
Edit: Gilles hat mich davon überzeugt, dass es die richtige Verwendung ist, sich auf ein tty als Terminal zu beziehen. Terminalemulatoren und interaktive Programme, die mit einem Terminal verbunden ausgeführt werden, hängen alle von der vom Kernel implementierten Terminalsemantik ab. (Der größte Teil dieses Verhaltens ist von POSIX standardisiert und unter Linux / * BSD / anderen Unix-Betriebssystemen identisch.) Ein Vollbild-Texteditor hängt vom Verhalten von Unix-tty-Inhalten sowie von der Handhabung des Escape-Codes für Cursorbewegungen ab. und viele andere Funktionen des Terminal-Emulators.
Ein physischer VT100 mit einem Bildschirm, einer Tastatur und einem seriellen Anschluss ist jedoch eine Instanz eines Terminals. Es ist nicht erforderlich, dass ein Unix-Kernel am anderen Ende der seriellen Schnittstelle vollständig ist. Etwas völlig anderes könnte darin bestehen, Escape-Codes und ASCII-Text zu senden und denselben zu empfangen. Es wäre jedoch nur ein VT100, kein Unix-Terminal. Ein Terminal-Emulator und die Unix-Semantik bilden das Gesamtpaket eines Unix-Terminals, auf dem ein Programm wie bash normalerweise ausgeführt wird.
Die Befehlszeile ist ein Benutzerschnittstellenstil, bei dem Sie etwas eingeben und dann die Eingabetaste drücken, um etwas auszuführen. Es wird auch als Abkürzung für eine Befehlszeilen-Shell wie Bash oder MS-DOS verwendet, aber Sie können auch sagen, dass es sich um ein Befehlszeilen-Tool für so etwas wie fdisk handelt. Betrachtet man nur Programme, die ein Terminal für ihre Benutzeroberfläche verwenden, sind die beiden Hauptfamilien Befehlszeile und Vollbildtext (z. B. ein Editor wie vi oder emacs -nw
).
Befehlszeilenprogramme, die normalerweise auf Terminals ausgeführt werden, funktionieren immer noch mit in Dateien umgeleiteten Eingaben und Ausgaben. Terminalbasierte Vollbildprogramme wie Editoren oder E-Mail-Clients sind jedoch nur interaktiv und funktionieren nicht.
Eine Shell ist ein Programm zum Starten anderer Programme. In einem Unix-Kontext ist dies eine Befehlszeilen-Shell (dh eine Bourne-Shell oder eine C-Shell-Entsprechung). Unix-Shells können ihre Eingaben auch aus Dateien, dh Shellskripten, lesen. Es handelt sich um vollständige Programmiersprachen mit Variablen, Schleifen und Bedingungen, und viele Programme sind in Bash geschrieben (oder /bin/sh
für mehr Portabilität nur mit den POSIX-Shell-Funktionen). Es ist auch leicht möglich, ein schnelles for i in *.something; do some_program "$i";done
in eine interaktive Shell zu schreiben .
Alles in allem empfängt eine Shell wie bash (oder ein anderes Programm, das Sie durch Ausführen eines Shell-Befehls gestartet haben) Zeichen vom /dev/pts/N
Endgerät, nachdem xterm Ihre Eingabe auf die Seite des Pseudoterminals geschrieben hat. Wenn Sie ausführen cat
und dann drücken ^c
, wird der Kernel-Tty-Code auf das reagieren ^c
und einen SIGINT
an den Vordergrund-Prozess auf diesem Terminal senden . (Beachten Sie die Verwendung des TerminalsIn diesem Zusammenhang bedeutet dies, dass Unix tty kein Terminal-Emulator oder etwas ist, das an eine serielle Schnittstelle angeschlossen ist.) Dies geschieht, weil die Shell das Terminal vor dem Starten eines Programms in den "gekochten" Modus versetzt, was bedeutet, dass der Kernel auf bestimmte Steuerelemente einwirkt. Sequenzen. (Der tty-Code hat immer noch nichts mit der Verarbeitung von VT100-Escape-Codes zu tun, sondern nur mit wenigen Low-ASCII-Steuercodes.) Wenn Sie anstelle von xterm das Linux-Konsolenterminal verwenden, führt der Kernel die VT100-Emulation durch mit all dem Zeug umgehen. Linux kann ohne die Unterstützung von virtuellen Konsolenterminals kompiliert werden, jedoch nicht ohne die Unterstützung von tty.
Konsole wird manchmal als Synonym für Terminal verwendet (KDE hat sogar einen Terminalemulator namens Konsole).
Wie 0xSheepdog hervorhebt, hat es auch eine andere Bedeutung: lokal angeschlossene Hardware für die menschliche Interaktion.
In einem Kernel-Kontext hat die Konsole eine andere spezifische Bedeutung: Auf diesem Terminal werden Boot-Meldungen geschrieben. Dies kann eine serielle Schnittstelle sein. Normalerweise ist es natürlich die vom Kernel zusätzlich zu den Treibern für Grafikhardware und USB / ps2 / AT-Tastaturen implementierte Textkonsole. Wenn Sie Linux console=tty0 console=ttyS0,115200n8
über die Befehlszeile booten , erhalten Sie Kernelmeldungen auf Ihrem Bildschirm UND an der seriellen Schnittstelle.
Linux implementiert virtuelle Konsolen ( /dev/tty1
bis N ). Sie können mit Ctrl+ Alt+ tauschen, welchen Bildschirm / welche physische Tastatur Sie steuern . Typische Linux-Distributionen erstellen 6 und starten auf allen. Selbst wenn Sie X11 nicht starten können oder wollen, können Sie sich 6-mal anmelden und zwischen Befehlen, Manpages und was auch immer wechseln, ohne Ausführen eines Programms wie Bildschirm. Linux (der Kernel) enthält einen Terminalemulator im VT100-Stil, der eine Terminalschnittstelle über Ihren Bildschirm und Ihre Tastatur auf den virtuellen Konsolen bereitstellt.FNgetty
Das Standard - 6 virtuelle Terminals mit Login fordert deshalb Ctrl+ Alt+ F7Sie zurück zu Ihrer X11 - Sitzung wird: der X - Server packt die nächste verfügbare virtuelle Konsole. (Der X-Server wird jedoch /dev/input/...
direkt geöffnet , anstatt Ihre Tastendrücke abzurufen /dev/tty7
.)
"Auf eine Textkonsole tauschen" bedeutet also, Ctrl+ Alt+ zu drücken F1und dieses Terminal zu verwenden. Früher, als Computer langsam waren und nicht viel RAM hatten, verbrachten einige Leute viel Zeit auf den Textkonsolen, da sie schnell waren, konnten Sie eine nette Schriftart einstellen und sogar die Terminalgröße ändern, um kleinere Zeichen zu haben, aber haben mehr auf einmal auf dem Bildschirm. Alt+ Leftund Alt+ Rightzur vorherigen / nächsten Konsole wechseln. (X11 deaktiviert dies natürlich für seine Konsole, wobei nur die Ctrl+ Alt+ -Kombination übrig bleibt.)FN
So Konsole ist nur einer dieser Begriffe , die nicht eine einzige wohldefinierte technische Bedeutung hat. Es hat ein paar verschiedene. (Abhängig davon, wie Sie das Terminal im Vergleich zum Terminal und dem Umgang mit dem Terminal beurteilen, kann man sagen, dass Terminal auch mehrere Bedeutungen hat.)
/dev/console
. Konsole ist nicht besonders vieldeutig - obwohl sie gelegentlich im allgemeinen Sinne von Terminal verwendet wird, ist dies ziemlich selten (seltener als Terminal , das speziell für eine Konsole verwendet wird).
Ich denke, dass in den Anfangszeiten von Timesharing-Computern jeder Benutzer ein Terminal hatte (wenn er eines bekommen konnte!), Aber nur die Systembetreiber hatten eine Konsole. Die Konsole kann beispielsweise zum Neustarten der Maschine oder zum Abrufen von Systemdiagnosen verwendet werden, die über Benutzerterminals nicht möglich waren. Die Konsole befand sich im Maschinenraum, einem festen Bestandteil des Computers, während die Terminals entfernt sein konnten. Die Konsole würde auch Hardware-Anzeigen und Schalter enthalten, nicht nur Texteingabe und -ausgabe.
Ich würde sagen, dass die Befehlszeile ein Bereich ist, in dem ein Benutzer einen Befehl eingeben kann, während die Shell das Programm ist, das diesen Befehl interpretiert / befolgt. Der Begriff "Shell" bezieht sich ganz besonders auf Unix-Derivate. "Kommandozeile" ist eher in der Windows / DOS-Tradition. Das Äquivalent auf Großrechnern wird normalerweise als "Jobsteuerungssprache" bezeichnet.
Es ist klar, dass diese ursprünglichen Unterscheidungen im Laufe der Zeit im Zuge des technologischen Wandels verschwommen sind.
Benutzerorientierte Kurzantwort:
Befehlszeile - Die Zeile, in der Sie Befehle eingeben. In der Regel wurde angegeben, dass Sie etwas im Textmodusfenster (Befehlszeilenschnittstelle) ausführen müssen, das von Ihrem Betriebssystem bereitgestellt wird.
Shell - das eigentliche Programm, das vom Betriebssystem ausgeführt wird, um eingegebene Daten zu verarbeiten command line
. Daher der Name - benutzerfreundliche Shell für nicht-benutzerfreundlichen Betriebssystemkern. Es bietet eine Eingabeaufforderung, z. B. $
oder >
, führt eigene Befehle und Apps aus. Sie arbeiten immer durch das shell
Programm und arbeiten niemals direkt mit der Konsole oder dem Terminal.
Konsole - ist ein Fenster, in dem Ihre Textmodus-Programme ausgeführt werden. Dieses Fenster verarbeitet Tastendrücke und weiß, dass es Breite und Höhe ist. Kann Vollbild sein.
Terminal - ist ein Gerät mit Display für Menschen, das Zeicheneingaben akzeptiert und anzeigt. Es gibt keine Rückmeldung an den Benutzer über Höhe oder Breite (nur Hacks) oder Tastaturtastendrücke - nur Zeichen werden dorthin geleitet. Terminal verarbeitet spezielle Sequenzen in diesem Stream, um Dinge einzufärben, den Bildschirm aufzuräumen und andere unangenehme Dinge zu tun. Terminals sind schuppig, weil es leicht ist, Dinge durcheinander zu bringen, wenn die Datei, die Sie ausgeben, diese speziellen Sequenzen enthält. Sie sind in Netzwerk- und Geräte-Debug-Interfaces beliebt, da Sie nur einen einzigen Stream zum Senden der Ausgabe und Steuern des Ausgabegeräts tap
benötigen und einfach ins Gespräch kommen können, ohne ein Fenster initialisieren oder erstellen zu müssen.
serielle Konsole - ist eine Konsole, die den Eingabestream wie ein Terminal verarbeitet.
Dies ist ein vages Thema, da die Begriffe sehr vieldeutig sind. Ich empfehle nachdrücklich, die Links zu lesen, die ich in dieser Antwort bereitgestellt habe, die auch meine Quellen für diese Antwort sind.
Eine Shell ist die Ebene über dem Kernel:
Ein Terminal hat viele Bedeutungen:
Eine Konsole hat viele Bedeutungen:
Unter Betriebssystemen können Sie häufig mehrere Konsolen auf einer physischen Konsole ausführen (Konsolendefinition 2). Diese werden als virtuelle Konsolen aka virtuelle Terminals und kann durch zugegriffen werden ctrl+ alt+ FxKombinationen. Zum Beispiel, wenn Sie die dritte virtuelle Konsole öffnen möchten, verwenden Sie die Kombination ctrl+ alt+ F3.
Konsolen (Definition 3) mögen Ihnen als Anachronismus erscheinen, aber Experten sollten mit ihnen vertraut sein, da es viele Betriebssysteme gibt, die GUIs nicht unterstützen. Wenn eine GUI nicht mehr reagiert, funktioniert die Konsole möglicherweise weiterhin.
Die meisten Terminals sind heutzutage streng genommen Terminalemulatoren . Es ist eine Art Rolle in der Funktionsweise eines UNIX-ähnlichen Systems und gleichzeitig die grundlegende Schnittstelle, die die Systeme bieten. Tatsächlich baut alles, einschließlich der GUI, darauf auf.
Umgangssprachlich kann sich "Endgerät" auch auf Endpunkte in einem Computernetzwerk mit einer Sterntopographie beziehen.
Konsole bezieht sich auf die (Hardware-) Schnittstellen für die Terminals. Dh es gibt serielle Konsolen und heutzutage meist virtuelle .
Das umgangssprachlich als "Konsole" bezeichnete Fenster ist eine Shell, die über eine virtuelle Konsole mit einem Terminal des Systems verbunden ist.
Früher, als Computer teuer waren, hatte eine Einrichtung möglicherweise einen Computer und mehrere Terminals, die über serielle Kabel ("serielle Konsole") mit ihm verbunden waren. Das Betriebssystem, die Operationen usw. wurden auf dem physischen Computer ausgeführt, die Ein- und Ausgabe erfolgte auf der Konsole (n).
Sie können zwischen virtuellen Terminals wechseln, indem Sie CTRL+ ALT+ F1(bis F6) drücken : ein Rest dieser Zeiten.
Heutzutage geht das Konzept der "Thin Clients" in diese Richtung zurück, bei der große Mengen an Ressourcen zentralisiert und gerade genug Hardware bereitgestellt werden, um eine hochmoderne Benutzeroberfläche am tatsächlichen Arbeitsplatz bereitzustellen.
Shell ist die "Engine", die Sie im Terminal sehen. Es bietet Interop mit dem System selbst und fügt nützliche Funktionen wie Auto-Vervollständigung, Variablen usw. hinzu
. Systemaufrufe ohne Shell sind ein bisschen wie Codierung assembler
und eine Shell gibt es zumindest C
.
befehlszeile bezieht sich auf die methode des austauschs von eingabe und ausgabe über ein textfenster. Genau genommen ist die Zeile, in die Sie eingeben, die (aktuelle) Befehlszeile. Die Methode wird im Allgemeinen korrekter als Befehlszeilenschnittstelle oder CLI bezeichnet.