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

169

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

    
Akiva 04.08.2014, 06:35

10 Antworten

118

Die kurze Antwort ist das

  • terminal = Texteingabe- / Ausgabeumgebung
  • console = physisches Terminal
  • shell = Befehlszeileninterpreter

Konsole und Terminal sind eng miteinander verbunden. Ursprünglich war damit ein Gerät gemeint, mit dem man mit einem Computer interagieren konnte: In den frühen Tagen von Unix bedeutete das einen Fernschreiber ähnliches Gerät, das einer Schreibmaschine ähnelt, manchmal auch als Fernschreibmaschine oder "tty" in Kurzschrift bezeichnet. Der Name "Terminal" kam aus der elektronischen Sicht, und der Name "Konsole" aus der Sicht der Möbel. 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 besondere Art von Gerätedatei , die ein Anzahl der zusätzlichen Befehle ( ioctls ) über das Lesen und Schreiben hinaus. Einige Terminals werden von dem Kernel im Auftrag eines Hardwaregeräts bereitgestellt, zum Beispiel mit der Eingabe von der Tastatur und der Ausgabe zu einem Textmodusbildschirm oder mit dem Eingang und dem Ausgang, die über eine serielle Leitung übertragen werden. Andere Terminals, manchmal Pseudo-Terminals oder Pseudo-Tys genannt, werden (durch eine dünne Kernel-Ebene) von Programmen bereitgestellt, die als Terminal-Emulatoren bezeichnet werden Einige Arten von Terminalemulatoren umfassen:

  • GUI-Anwendungen, die im X-Window-System ausgeführt werden: Xterm , Gnome-Terminal, Konsole, Terminator, etc.
  • Bildschirm und tmux , die eine Isolationsschicht zwischen einem Programm und einem anderen Terminal bereitstellt
  • Ssh , das ein Terminal auf einer Maschine mit Programmen auf einer anderen Maschine verbindet
  • Expect , um terminale Interaktionen zu erstellen

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. Zum Beispiel ist ein X-Terminal eine Art Thin Client , ein spezieller Computer, dessen einziger Zweck es ist, eine Tastatur zu steuern, Anzeige, Maus und gelegentlich andere Peripheriegeräte für die menschliche Interaktion, wobei die eigentlichen Anwendungen auf einem anderen, leistungsfähigeren Computer laufen.

Eine Konsole ist in der Regel 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); nur um die Dinge zu verwirren, kann der Name für jedes einzelne Terminal "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, an der der Benutzer einen Befehl eingibt (der sich aus einer Folge von Zeichen zusammensetzt - in der Regel ein Befehlsname gefolgt von einigen Parametern) und den Return Taste, um diesen Befehl auszuführen.

Eine Shell ist die primäre Benutzeroberfläche, die Benutzer sehen, wenn sie sich anmelden in, deren Hauptzweck es ist, andere Programme zu starten. (Ich weiß nicht, ob die ursprüngliche Metapher ist, dass die Shell die Home-Umgebung für den Benutzer ist oder dass die Shell das ist, in dem andere Programme laufen.)

In Unix-Kreisen hat sich shell auf spezialisiert Kommandozeilen-Shell , zentriert um die Eingabe des Namens der Anwendung, die gestartet werden soll, gefolgt von den Namen der Dateien oder anderer Objekte, auf die die Anwendung angewendet werden soll, und Drücken der Eingabetaste. Andere Arten von Umgebungen (mit der bemerkenswerten kürzlichen Ausnahme von Gnome Shell) verwenden normalerweise nicht das Wort "Shell"; Zum Beispiel beinhalten Fenstersysteme " Fenstermanager " und " Desktopumgebungen ", keine "Shell".

Es gibt viele verschiedene Unix-Shells. Die Standard-Shell von Ubuntu ist Bash (wie die meisten anderen Linux-Distributionen). Beliebte Alternativen sind zsh (was Macht und Anpassbarkeit betont) und Fisch (was Einfachheit betont) .

Befehlszeilen-Shells enthalten Flusssteuerungskonstrukte zum Kombinieren von Befehlen. Zusätzlich zur Eingabe von Befehlen an einer interaktiven Eingabeaufforderung können Benutzer Skripts schreiben. Die gebräuchlichsten Shells haben eine gemeinsame Syntax basierend auf der Bourne_shell . Bei der Diskussion über die Shell-Programmierung wird die Shell fast immer als Bourne-Shell bezeichnet. Einige Shells, die oft für das Skripting verwendet werden, aber keine erweiterten interaktiven Funktionen haben, sind die Korn-Shell (ksh) und viele ash Varianten. So ziemlich jedes Unix-artige System hat eine Bourne-artige Shell installiert als /bin/sh , normalerweise ash, ksh oder bash. Unter Ubuntu ist /bin/sh Dash , eine Aschegeschichte (gewählt, weil sie schneller ist und weniger Speicher benötigt) als bash).

In der Unix-Systemverwaltung ist die -Shell eines Benutzers das Programm, das bei der Anmeldung aufgerufen wird. Normale Benutzerkonten haben eine Kommandozeilen-Shell, aber Benutzer mit eingeschränktem Zugriff können eine restricted shell oder einen anderen spezifischen Befehl (z. B. nur für File-Transfer-Accounts).

Die Arbeitsteilung zwischen dem Terminal und der Shell ist nicht völlig offensichtlich. Hier sind ihre Hauptaufgaben.

  • Eingabe: Das Terminal wandelt Schlüssel in Kontrollsequenzen um (z. B. Links \e[D ). Die Shell konvertiert Steuersequenzen in Befehle (z. B. \e[Dbackward-char ).
  • Zeilenausgabe, Eingabehistorie und Vervollständigung werden von der Shell bereitgestellt.
    • Das Terminal kann stattdessen seine eigene Zeilenversion, Verlauf und Vervollständigung bereitstellen und nur eine Zeile an die Shell senden, wenn sie zur Ausführung bereit ist. Das einzige gemeinsame Terminal, das auf diese Weise funktioniert, ist M-x shell in Emacs.
  • Ausgabe: Die Shell gibt Anweisungen wie "display foo ", "wechselt die Vordergrundfarbe zu grün", "bewegt den Cursor zur nächsten Zeile" usw. Das Terminal handelt nach diesen Anweisungen.
  • Die Eingabeaufforderung ist ein reines Shell-Konzept.
  • Die Shell sieht niemals die Ausgabe der Befehle, die sie ausführt (es sei denn, sie werden umgeleitet). Die Ausgabehistorie (Scrollback) ist ein reines Terminalkonzept.
  • Inter-Anwendung Copy-Paste wird vom Terminal bereitgestellt (normalerweise mit der Maus oder Tastenfolgen wie Strg + Shift + V oder Shift + Einfügen ). Die Hülle kann auch ihren eigenen internen Kopier-Einfügemechanismus haben (z. B. Meta + W und Ctrl <+ Y ).
  • Job-Kontrolle (Starten von Programmen im Hintergrund und deren Verwaltung) wird meist von der Shell ausgeführt. Es ist jedoch das Terminal, das Tastenkombinationen wie Strg + C zum Beenden des Vordergrundjobs und Strg + Z verarbeitet um es zu suspendieren.

Recycelt von Unix & amp; Linux

    
Gilles 04.08.2014, 12:30
52

Eine visuelle Darstellung.

Terminal

Etwas, wo du dich hinsetzen und wie ein Boss arbeiten kannst.

Konsole

Einige Hardware, die eine Menge Zeug macht.

Ein anderes Beispiel für eine Konsole wäre eine Videospielkonsole wie ein Super Nintendo [wo Sie Actraiser spielen können]

Shell

Grundsätzlich eine Anwendung zum Ausführen von Befehlen.

Befehlszeile [Schnittstelle]

Grundsätzlich Befehle, die Sie eingeben.

    
Akiva 04.08.2014 22:09
19

Aus dem Linux-Informationsprojekt :

  

Terminal : Ein Terminal-Fenster, auch als Terminal-Emulator bezeichnet, ist ein reines Textfenster in eine grafische Benutzeroberfläche (GUI), die eine Konsole emuliert.

In unseren Worten Eine GUI-Anwendung, von der aus wir auf eine Benutzerkonsole zugreifen können.

  

Konsole : eine Instrumententafel mit den Steuerelementen für einen Computer

     

Shell : Eine Shell ist ein Programm, das die traditionelle, rein textbasierte Benutzeroberfläche für Linux und andere Unix- wie Betriebssysteme

     

Befehlszeile : Eine Befehlszeile ist das Feld rechts neben der Eingabeaufforderung in einer Nur-Text-Anzeige Modus auf einem Computermonitor (normalerweise ein CRT oder LCD-Panel), in dem ein Benutzer Befehle und Daten eingibt

    
Ten-Coin 04.08.2014 06:39
14

Die Antworten hier scheinen sehr gut zu sein. Aber sie sind zu trocken und technisch für meinen Geschmack, also werde ich eine nehmen ..

Terminal ist das Ende von etwas - wo es endet. Wenn Sie zum Beispiel in einer Stadt die U-Bahn nehmen, ist der Bahnhof, an dem Sie absteigen, Ihr Terminal. Oder in einem Flughafen ist der Ort, an dem die Leute herauskommen, wenn sie ihr Zielland erreichen, das Terminal. Der Grund, warum das Terminal im Flughafen heutzutage sowohl der Ort ist, an dem man Leute an Bord bringt, als auch der Ort, an dem man sie aus dem Flugzeug holt, ist aus offensichtlichen wirtschaftlichen Gründen.

Der Zweck eines Computers besteht darin, Daten zu erhalten, etwas damit zu tun und das Ergebnis auszuspucken. Somit ist das Terminal jedes Gerät, von dem Sie das Ergebnis der Berechnung erhalten können. Ein Bildschirm zum Beispiel. Es kam einfach vor, dass Sie in den ersten Computern normalerweise die Eingabe (Tastatur) und Ausgabe (Bildschirm) als ein einzelnes Gerät hatten. Aus diesem Grund werden heutzutage Terminals als Eingabe- / 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 auf Ubuntu zum Beispiel der Linux-Teil ist. Jetzt, da der Kernel wirklich low-level ist, wird eine Shell bereitgestellt - ein Programm, mit dem der Benutzer auf einfache Weise mit dem Kernel interagieren kann. Das ist zum Beispiel BASH.

Console ist (aus einem Wörterbuch)

  

eine flache Oberfläche, die die Steuerelemente für eine Maschine enthält, für ein Stück   von elektrischen Geräten usw.

Aus diesem Grund werden in der Musikindustrie das Board mit allen Knöpfen oder in einem Space-Shuttle der Command-Table alle als Konsolen betrachtet. Super Nintendo und PS2 werden auch historisch als Konsolen bezeichnet, da die ersten derartigen Unterhaltungsgeräte wie Kästchen mit einer Reihe von Knöpfen aussahen.

Command line ist nur eine Schnittstelle - das Gegenteil von GUI. Es gibt nämlich zwei Arten von Schnittstellen auf einem Computer; CLI (Befehlszeilenschnittstelle) und GUI (grafische Benutzeroberfläche). Der Hauptunterschied besteht darin, dass der erste von der Tastatur eingegeben wird, während der zweite von der Maus eingegeben wird.

    
Pithikos 06.08.2014 12:40
7

Um meine Antwort zusammenzufassen:

Shell ist ein Programm, das processes commands und returns output enthält, wie bash in Linux.

Terminal ist ein Programm mit run a Shell , in der Vergangenheit war es ein physisches Gerät (Vor Terminals waren Monitore mit Tastaturen , sie waren teletypes ) und dann wurde das Konzept in Software übertragen, wie Gnome-Terminal .

So öffne ich Gnome-Terminal , ein schwarzes Fenster erscheint, das Shell ausführt, damit ich meine Befehle ausführen kann.

Die Konsole ist eine spezielle Art von Terminal , sie war auch ein physisches Gerät. In Linux haben wir zum Beispiel virtual console , auf das ich durch Kombination von Strg + Alt + F1 bis F7

zugreifen kann

Konsole bedeutet manchmal, dass die Tastatur und der Monitor physisch an diesen Computer angeschlossen sind.

    
nux 05.08.2014 13:59
7

Diese Begriffe passen oft zusammen, also verwenden die Leute einen der Begriffe, um auf die Sammlung zu verweisen. (d. h. es ist normalerweise aus dem Kontext offensichtlich, dass sie ein Terminalfenster bedeuten, das eine Schnittstelle zu einer Befehlszeilenshell bereitstellt).

Damit das nicht zu langatmig wird, werde ich xterm als Stand-in für XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. sagen. Das gleiche gilt für bash.

Konsole hat mehrere andere spezifische Bedeutungen. Lassen Sie das also vorerst aus.

Terminal : Etwas, das die menschliche Interaktion mit Programmen über einen bidirektionalen Stream von ASCII / UTF8 / anderen Zeichen ermöglicht, normalerweise mit VT100 oder ähnlicher Escape-Code-Verarbeitung. (ZB Rücktaste, Löschen, Pfeiltasten, usw. generieren Escape-Codes. Programme können Escape-Codes drucken, um den Cursor um den Terminalbildschirm zu bewegen, zu fettem Text und / oder Farbe zu wechseln, den Bildschirm zu löschen oder zu scrollen, usw.) Früher war das oft eine dedizierte Appliance mit Bildschirm und Tastatur und einem seriellen Port. Jetzt ist es normalerweise ein Programm wie xterm.

Es gibt Gerätedateien für Programme zum Lesen / Schreiben von / zu Terminals, und virtuelle Terminals haben auch Zugriff auf die andere Seite als Gerätedatei. Hier schreibt xterm Ihre Eingabe, damit bash sie lesen kann.

Jedes Terminal, einschließlich der virtuellen Terminals, bietet eine grundlegende Zeilenbearbeitung, wenn es im Cook-Modus (im Gegensatz zum Roh-Modus) ist. Dies wird durch den Kernel-Code gehandhabt. Es ist Bash, die die Linienbearbeitung bietet, die Sie mit den Pfeiltasten ausführen können. (Versuchen Sie, cat auszuführen, und geben Sie ein, wenn Sie sehen möchten, wie die grundlegende, vom Kernel bereitgestellte Zeilenbearbeitung ist. Backspace funktioniert und ein paar andere Dinge gemäß Ihren Einstellungen.)

Obwohl hinter den Endgeräten viel Kernel-Code steckt, würde man ihn als Terminal-Handling-Code bezeichnen, nicht als Terminal selbst.

Edit: Gilles hat mich davon überzeugt, dass der Begriff "Terminal" richtig verstanden wird. Terminalemulatoren und interaktive Programme, die mit einem Terminal verbunden sind, hängen alle von der Semantik des Terminals ab, die vom Kernel implementiert wird. (Das meiste dieses Verhaltens ist von POSIX standardisiert und ist das gleiche unter Linux / * BSD / anderem Unix.) Ein Vollbild-Texteditor hängt vom Verhalten von Unix-tty-Stuff sowie der Cursor-Bewegung Escape-Code-Behandlung ab, und viele andere Funktionen des Terminal-Emulators.

Eine physische VT100 mit einem Bildschirm, einer Tastatur und einer seriellen Schnittstelle ist jedoch eine Instanz eines Terminals. Es erfordert keinen Unix-Kernel am anderen Ende des seriellen Ports, um vollständig zu sein. Etwas ganz anderes könnte das Senden von Escape-Codes und ASCII-Text sein und dasselbe von ihm erhalten. Es wäre nur ein VT100, kein Unix-Terminal. Ein Terminal-Emulator plus die Unix-tty-Semantik bilden das vollständige Paket eines Unix-Terminals, auf dem normalerweise ein Programm wie bash läuft.

Befehlszeile ist ein Stil der Benutzeroberfläche, in den Sie etwas eingeben und dann die Eingabetaste drücken, um etwas zu bewirken. Es wird auch als Kurzform für eine Befehlszeilenshell verwendet, wie bash oder MS-DOS, aber Sie können auch sagen "es ist ein Befehlszeilenprogramm" über etwas wie fdisk. 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 laufen, arbeiten immer noch mit ihrer Eingabe und Ausgabe zu Dateien umgeleitet, aber Terminal-basierte Vollbildprogramme wie Editoren oder E-Mail-Clients sind nur interaktiv und würden nicht funktionieren.

Eine Shell ist ein Programm zum Starten anderer Programme. In einem Unix-Kontext bedeutet es üblicherweise eine Befehlszeilenshell (d. H. Bourne-Shell oder C-Shell-Äquivalent). Unix-Shells können ihre Eingaben auch aus Dateien, z. B. Shell-Skripten, lesen. Sie sind vollständige Programmiersprachen, mit Variablen, Schleifen und Bedingungen, und viele Programme sind in bash geschrieben (oder nur mit den Shell-Funktionen /bin/sh POSIX, für mehr Portabilität). Es ist auch leicht möglich, eine schnelle for i in *.something; do some_program "$i";done in eine interaktive Shell zu schreiben.

Wenn Sie alles zusammensetzen, erhält eine Shell wie bash (oder ein Programm, das Sie mit einem Shell-Befehl gestartet haben) Zeichen vom Terminalgerät /dev/pts/N , nachdem xterm Ihre Eingabe in die Seite des Pseudo-Terminals geschrieben hat. Wenn Sie cat ausführen, dann drücken Sie ^c , der Kernel-tty-Code wird auf die ^c angewendet und sendet eine SIGINT an den Vordergrundprozess auf diesem Terminal. (Beachten Sie in diesem Zusammenhang die Verwendung von terminal als Unix-tty, nicht als Terminalemulator oder etwas, das an einen seriellen Port angeschlossen ist.) Dies geschieht, weil die Shell das Terminal zuvor in den "gekochten" Modus versetzt hat Starten eines Programms, das heißt der Kernel wirkt auf einige Steuersequenzen. (Der tty-Code hat immer noch nichts mit der Behandlung von VT100-Escape-Codes zu tun, nur ein paar wenige ASCII-Steuercodes.) Wenn Sie anstelle eines xterms das Text-Terminal der Linux-Konsole verwenden, führt der Kernel die VT100-Emulation aus und behandelt all diese Dinge. Linux kann ohne Unterstützung von virtuellen Konsolen Text-Terminals kompiliert werden, aber nicht ohne 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 menschliche Interaktion.

In einem Kernel-Kontext hat die Konsole eine andere spezifische Bedeutung: Es ist das Terminal, auf dem Boot-Nachrichten geschrieben werden. Dies kann eine serielle Schnittstelle sein. Normalerweise ist es natürlich die Textkonsole, die vom Kernel über die Treiber für Grafikhardware und USB / PS2 / AT-Tastaturen implementiert wird. Wenn Sie Linux mit console=tty0 console=ttyS0,115200n8 in der Befehlszeile booten, erhalten Sie Kernelnachrichten auf Ihrem Bildschirm UND auf dem seriellen Port.

Linux implementiert virtuelle Konsolen ( /dev/tty1 bis N ). Sie können mit der Strg + Alt + F N den Inhalt Ihres physischen Bildschirms / Ihrer Tastatur austauschen. Typische Linux Distributionen erstellen 6 und starten getty auf allen. Selbst wenn Sie X11 nicht starten können oder wollen, können Sie sich 6 Mal anmelden und zwischen einem Befehl, einer Manpage und was auch immer wechseln sonst, ohne ein Programm wie Bildschirm zu laufen. Linux (der Kernel) enthält einen Terminal-Emulator im VT100-Stil, um eine Terminalschnittstelle über Ihren Bildschirm und Ihre Tastatur auf den virtuellen Konsolen bereitzustellen.

Die standardmäßigen 6 virtuellen Terminals mit Anmeldeaufforderungen sind der Grund, warum Strg + Alt + F7 Sie zurück in Ihre X11-Sitzung bringt: den X-Server ergreift die nächste verfügbare virtuelle Konsole. (Der X-Server öffnet /dev/input/... direkt, anstatt die Tastatureingaben von /dev/tty7 zu bekommen.)

Also "zu einer Textkonsole wechseln" bedeutet, Strg + Alt + F1 zu drücken und dieses Terminal zu benutzen. Damals, 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 dem Bildschirm sofort. Alt + Links und Alt + Rechts zur vorherigen / nächsten Konsole wechseln. (X11 deaktiviert dies natürlich für seine Konsole, wobei nur das Strg + Alt + F N -Kombination übrig bleibt. )

So console ist der einzige dieser Begriffe, der keine eindeutige technische Bedeutung hat. Es hat ein paar verschiedene. (Je nachdem, wie Sie sich über Terminal-Terminal im Vergleich zu Terminal-Terminal fühlen, könnte man sagen, dass Terminal auch mehrere Bedeutungen hat.)

    
Peter Cordes 05.08.2014 11:16
5

Ich denke, dass in den frühen Tagen der Timesharing-Computer jeder Benutzer ein Terminal hatte (wenn sie einen bekommen konnten!), aber nur die Systembetreiber hatten eine Konsole. Die Konsole könnte für Aufgaben wie das Neustarten des Computers oder das Abrufen von Systemdiagnosen verwendet werden, die von Benutzerterminals nicht möglich waren. Die Konsole befand sich im Maschinenraum, ein wesentlicher Teil des Computers, während die Terminals entfernt sein konnten. Die Konsole würde auch Hardwarelichter 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" ist sehr spezifisch für Unix-Derivate; "Kommandozeile" ist mehr in der Windows / DOS-Tradition. Das Äquivalent auf Mainframes wird üblicherweise als "Job Control Language" bezeichnet.

Diese ursprünglichen Unterscheidungen sind offensichtlich im Laufe der Zeit verschwommen, wenn sich die Technologie ändert.

    
Michael Kay 05.08.2014 00:35
3

Benutzerorientierte kurze Antwort versuchen:

Befehlszeile - die Zeile, in der Sie Befehle eingeben. In der Regel wurde früher 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 Inhalte zu verarbeiten, die Sie in command line eingeben. Daher der Name - benutzerfreundliche Shell für nicht-freundlich OS Kern. Es bietet eine Eingabeaufforderung, z. B. $ oder > , führt eigene Befehle und Anwendungen aus. Sie arbeiten immer mit dem Programm shell 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, weiß, dass es Breite und Höhe ist. Kann Vollbild sein.

terminal - ist ein Gerät mit einer Anzeige für Menschen, das einen Eingabestrom von Zeichen akzeptiert und sie anzeigt. Es gibt keine Rückmeldung an den Benutzer über Höhe oder Breite (nur Hacks) oder Tastatur-Tastendrücke - nur Zeichen reisen zu ihm. Terminal verarbeitet spezielle Sequenzen in diesem Stream, um Dinge farbig zu machen, den Bildschirm zu bereinigen und andere unangenehme Dinge zu tun. Terminals sind flockig, weil es leicht ist, Dinge zu vermasseln, wenn die Datei, die Sie ausgeben, diese speziellen Sequenzen enthält. Sie sind in Netzwerk- und Geräte-Debug-Schnittstellen beliebt, weil Sie nur einen einzigen Stream zum Senden von Ausgaben und zum Steuern des Ausgabegeräts benötigen, und Sie können tap in Konversation eingeben, ohne ein Fenster initialisieren oder erstellen zu müssen.

serielle Konsole - ist eine Konsole, die den Eingangsstrom wie ein Terminal verarbeitet.

    
anatoly techtonik 24.10.2014 12:42
3

Dies ist ein vages Thema, weil die Begriffe sehr zweideutig sind. Ich empfehle dringend, die Links, die ich in dieser Antwort angegeben habe, zu lesen, die auch meine Quellen für diese Antwort sind.

Eine Shell ist die Ebene über dem Kernel:

>
  • Es interpretiert die vom Benutzer eingegebenen Befehle und verarbeitet sie. Die Shell hat im Gegensatz zu Benutzern Zugriff auf den Kernel. Benutzer können nur auf den Kernel zugreifen, indem sie Befehle unter Verwendung einer Shell eingeben und Prozesse (d. H. Laufende Programme) verwenden. Programme verwenden Systemaufrufe , um auf die Kernel-Funktionalität zuzugreifen. Alle Systemaufrufe bilden die System-API.
  • Beispiele für Shells sind in der zweiten Terminaldefinition angegeben.

Ein Terminal hat viele Bedeutungen:

  • (1) Ein Textterminal . Dies ist die Kombination eines Anzeigemonitors und einer Tastatur. Ein Kabel verbindet das Terminal mit dem Computer (oft indirekt). Es wurde Terminal genannt, da es sich am Ende dieses Kabels befand. Diese Terminals waren normalerweise physisch vom Computer getrennt, da zu der Zeit viele Terminals mit einem einzigen Mainframe / Computer verbunden waren, so dass mehrere Benutzer gleichzeitig auf den Computer zugreifen konnten.
  • (2) Ein Terminalfenster a.k.a. Terminalemulator . In Linux ist ein Terminal-Fenster die Emulation einer Konsole, die in einem GUI-Fenster enthalten ist. Es ist die CLI, in die Sie Ihren Text eingeben, und diese Eingabe wird von der Shell gelesen, die Sie verwenden. Es gibt viele Arten von Shells (z. B. bash, dash, ksh88) und Terminals (z. B. konsole, gnome).
  • (3) Eine Erläuterung zu Pseudo-Terminals finden Sie hier . Es ist ein Paar von zwei "Gerätedateien", die für die Kommunikation zwischen einem Prozess und einem Terminalemulator verwendet werden.

Eine Konsole hat viele Bedeutungen:

  • (1) eine Instrumententafel, die die Steuerelemente für einen Computer enthält.
  • (2) Eine Systemkonsole a.k.a. Computerkonsole . Dies ist die Kombination aus dem Bildschirm und einer an einen Computer angeschlossenen Tastatur. Dies ist gleichbedeutend mit dem, was wir "Textterminal" nennen. Manchmal sind auch andere Benutzereingabe-Peripheriegeräte wie eine Maus Teil einer Konsole.
  • (3) Eine Befehlszeilenschnittstelle, die den gesamten Bildschirm abdeckt. Dies steht im Gegensatz zu einem Terminal-Fenster, das eine GUI mit einem X in der rechten oberen Ecke ist, um es zu schließen. Dies sind die beiden Anzeigemodi für CLI (Befehlszeilenschnittstellen) in Unix-ähnlichen Systemen. Ähnlich wie ein Terminalfenster kann die Konsole auch viele Shells ausführen.

In vielen Betriebssystemen können Sie mehrere Konsolen auf einer physischen Konsole ausführen (Konsolendefinition 2). Diese werden als virtuelle Konsolen aka virtuelle Terminals bezeichnet und können über ctrl + alt + Fx aufgerufen werden Kombinationen. Wenn Sie beispielsweise die 3. virtuelle Konsole öffnen möchten, verwenden Sie die Kombination ctrl + alt + F3 .

Konsolen (Definition 3) erscheinen Ihnen vielleicht als Anachronismus, aber Experten sollten sich darüber im Klaren sein, da es viele Betriebssysteme gibt, die keine GUI unterstützen. Wenn eine GUI nicht mehr reagiert, funktioniert die Konsole möglicherweise noch.

    
user1534664 03.12.2015 06:13
2

Die meisten Terminals sind heutzutage streng genommen Terminalemulatoren . Es ist eine Art von Rolle in der Funktionsweise eines UNIX-ähnlichen Systems und gleichzeitig die grundlegende Schnittstelle, die von den Systemen angeboten wird. Tatsächlich baut alles, einschließlich der GUI, darauf auf.
Umgangssprachlich "Terminal" kann sich auch auf Endpunkte in einem Computernetzwerk mit einer Sterntopographie beziehen.

Konsole bezieht sich auf die (Hardware-) Schnittstellen für die Terminals. I.e. Es gibt serielle Konsolen und heutzutage meist virtuelle Konsolen.
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 Eingabe und Ausgabe erfolgte auf der / den Konsole (n).
Sie können zwischen virtuellen Terminals wechseln, indem Sie STRG + ALT + F1 (bis F6 <) drücken: ein Rest von diese Zeiten.
Heutzutage geht das Konzept der "Thin Clients" zurück in diese Richtung der Zentralisierung großer Mengen von Ressourcen und stellt gerade genug Hardware zur Verfügung, um eine Schnittstelle auf dem neuesten Stand der Technik am tatsächlichen Arbeitsplatz bereitzustellen.

Shell ist die "Engine", die Sie im Terminal sehen. Es bietet Interop mit dem System selbst und fügt nette Eigenschaften wie Auto-Vervollständigung, Variablen usw. hinzu.
Er übersetzt zwischen dem tatsächlichen Betriebssystem / Kernel, das Systemaufrufe verwendet, und Ihnen hin und her. Systemaufrufe ohne Shell sind ein bisschen wie das Kodieren von assembler und eine Shell gibt dir mindestens C .

Befehlszeile bezieht sich auf die Methode, Eingabe und Ausgabe über ein Textfenster auszutauschen. Streng genommen ist die Zeile, in die Sie schreiben, die (aktuelle) Befehlszeile. Die Methode wird im Allgemeinen korrekter als Befehlszeilenschnittstelle oder CLI bezeichnet.

  1. kernel
  2. bietet Terminal
  3. Terminal ist über eine Konsole verbunden
  4. Konsole läuft Shell
  5. Befehle und Ausgaben werden über die Befehlszeile (Schnittstelle)
  6. ausgetauscht
Mark 04.08.2014 14:17