Vraag Wat is het verschil tussen Terminal, Console, Shell en Command Line?


Wat is het verschil tussen Terminal, Console, Shell en Command Line?


173
2017-08-04 04:35


oorsprong


(1/2) Agent Cool is meestal correct, maar de definitie van console die hij biedt is een verouderde, gezien dit onderwerp. Zijn link heeft de juiste informatie, als je hem echter volgt. Lees de geheel definitie op zijn link. Console wordt los gebruikt om veel gelijkaardige dingen te betekenen, maar vooral verwijst het gewoonlijk naar de LOCAL AANBEVATTE menselijke input en output apparaten, b. toetsenbord, display en misschien muis. - 0xSheepdog
(2/2) Dit lijkt misschien een pedant punt, maar als een doorgewinterde systemadmin zal ik het je vertellen Het is niet. Wanneer een systeem een ​​probleem heeft en volledig gecrashed / down / offline lijkt te zijn, moet u de fysieke console van het systeem om te zien of het nog steeds werkt, maar gewoon de netwerkconnectiviteit verliest. Dit kleine detail kan u gegevens, informatieverwerking enz. Besparen of kosten. Pedantisch, ja. Maar belangrijk. - 0xSheepdog
@ 0xSheepdog U wilt deze opmerkingen mogelijk uitbreiden tot een volledig antwoord (inclusief definities of uitleg voor de andere voorwaarden), als zodanig geplaatst. Het is niet slecht voor een vraag om meerdere antwoorden te hebben (behalve misschien als ze precies dezelfde informatie en op dezelfde manier overbrengen). Ik weet niet zeker waarom de belangrijke praktijk van het lokaal controleren van een machine feitelijk afhankelijk is van het kennen / noemen van zijn fysieke menselijke interface als console, maar er is misschien een argument dat het belangrijk is voor effectieve communicatie met collega's of het gebruik van documentatie. (U zou dat in uw antwoord kunnen verduidelijken.) - Eliah Kagan
Vanwege hun nauwe relatie (zie alle goede antwoorden) worden deze termen soms synoniem gebruikt, wat waarschijnlijk de aanleiding was om dit te vragen. - Mark
Zien: Wat is het exacte verschil tussen een 'terminal', een 'shell', een 'tty' en een 'console'? bij Unix & LinuxSE. - Piotr Dobrogost


antwoorden:


Het korte antwoord is dat

  • terminal = tekstinvoer / uitvoeromgeving
  • console = fysieke terminal
  • shell = opdrachtregelinterpreter

Console en terminal zijn nauw met elkaar verbonden. Oorspronkelijk bedoelden ze een apparaat waarmee je met een computer kon omgaan: in de begintijd van Unix betekende dat een telex-stijl apparaat dat lijkt op een typemachine, soms een teletypewriter genoemd, of "tty" in steno. De naam "terminal" kwam uit het elektronische oogpunt en de naam "console" vanuit het oogpunt van meubilair. Al heel vroeg in de Unix-geschiedenis werden elektronische toetsenborden en beeldschermen de norm voor terminals.

In Unix-terminologie, a terminal is een bepaald soort apparaatbestand die een aantal extra commando's implementeert (ioctls) verder dan lezen en schrijven. Sommige terminals worden geleverd door de kernel namens een hardwareapparaat, bijvoorbeeld met de invoer afkomstig van het toetsenbord en de uitvoer naar een tekstmodusscherm of met de invoer en uitvoer verzonden via een seriële lijn. Andere terminals, soms pseudo-terminals of pseudo-tty's genoemd, worden (via een dunne kernellaag) geboden door programma's genaamd terminal emulators. Sommige typen eindemulators omvatten:

  • GUI-toepassingen die worden uitgevoerd in de X Window System: xterm, Gnome Terminal, Konsole, Terminator, etc.
  • Scherm en tmux, dat een isolatielaag biedt tussen een programma en een ander eindstation
  • ssh, dat een terminal op de ene machine verbindt met programma's op een andere machine
  • Verwachten, voor het scripten van terminale interacties

Het woord terminal kan ook een meer traditionele betekenis hebben van een apparaat waarmee men een interactie heeft met een computer, meestal met een toetsenbord en beeldscherm. Een X-terminal is bijvoorbeeld een soort thin client, een computer voor speciale doeleinden die als enige doel heeft om een ​​toetsenbord, beeldscherm, muis en zo nu en dan andere randapparatuur voor menselijke interactie aan te sturen, waarbij de daadwerkelijke toepassingen op een andere, krachtigere computer worden uitgevoerd.

EEN troosten is over het algemeen een terminal in fysieke zin die volgens een bepaalde definitie de primaire terminal is die direct is verbonden met een machine. De console verschijnt voor het besturingssysteem als een (kernel geïmplementeerde) terminal. Op sommige systemen, zoals Linux en FreeBSD, verschijnt de console als verschillende terminals (tty's) (speciale toetscombinaties schakelen tussen deze terminals); alleen al om dingen te verwarren, de naam die aan elke specifieke terminal wordt gegeven, kan "console", "virtuele console", "virtuele terminal" en andere variaties zijn.

Zie ook Waarom is een virtuele terminal "virtueel" en wat / waarom / waar is de "echte" terminal?.


EEN opdrachtregel is een interface waarbij de gebruiker een opdracht typt (die wordt uitgedrukt in een reeks tekens - meestal een opdrachtnaam gevolgd door een aantal parameters) en op de knop drukt. terugkeer toets om die opdracht uit te voeren.

EEN schelp is de primaire interface die gebruikers zien wanneer ze inloggen, waarvan het primaire doel is om andere programma's te starten. (Ik weet niet of de originele metafoor is dat de shell de thuisomgeving voor de gebruiker is, of dat de shell is waar andere programma's in draaien.)

In unix-kringen, schelp heeft zich gespecialiseerd om a opdrachtregel shell, gecentreerd rond het invoeren van de naam van de applicatie die men wil starten, gevolgd door de namen van bestanden of andere objecten waarop de applicatie moet reageren, en druk op de Enter-toets. Andere soorten omgevingen (met de opmerkelijke recente uitzondering van Gnome Shell) gebruiken meestal niet het woord "shell"; raamsystemen zijn bijvoorbeeld "vensterbeheerders"En"bureaublad omgevingen", Geen" schaal ".

Er zijn veel verschillende Unix-shells. Ubuntu's standaard shell is Bash (zoals de meeste andere Linux-distributies). Populaire alternatieven zijn onder meer zsh (dat de nadruk legt op kracht en aanpasbaarheid) en vis (wat de nadruk legt op eenvoud).

Opdrachtregelhells bevatten flowcontroleconstructs om opdrachten te combineren. Naast het typen van opdrachten bij een interactieve aanwijzing, kunnen gebruikers ook scripts schrijven. De meest voorkomende shells hebben een gemeenschappelijke syntaxis op basis van de Bourne_shell. Bij het bespreken van "shell programmering", Wordt de shell bijna altijd geïmpliceerd als een schaal in Bourne-stijl. Sommige shells die vaak worden gebruikt voor scripting maar geen geavanceerde interactieve functies hebben, zijn onder andere de Korn-schaal (ksh) en veel as varianten. Vrijwel elk Unix-achtig systeem heeft een shell in Bourne-stijl geïnstalleerd zoals /bin/sh, meestal ash, ksh of bash. Op Ubuntu, /bin/sh is scheutje, een asvariant (gekozen omdat deze sneller is en minder geheugen gebruikt dan bash).

In unix systeembeheer, van een gebruiker schelp is het programma dat wordt aangeroepen wanneer ze zich aanmelden. Normale gebruikersaccounts hebben een opdrachtregelshell, maar gebruikers met beperkte toegang kunnen een beperkte schaal of een andere specifieke opdracht (bijvoorbeeld voor accounts die alleen voor bestanden worden overgedragen).


De verdeling van arbeid tussen de terminal en de schaal is niet helemaal duidelijk. Dit zijn hun belangrijkste taken.

  • Invoer: de terminal converteert sleutels naar regelsequenties (bijv. Links → \e[D). De schaal zet regelsequenties om in commando's (bijv. \e[D → backward-char).
  • Regelversie, invoerhistorie en voltooiing worden geleverd door de shell.
    • De terminal kan in plaats daarvan zijn eigen regeleditie, geschiedenis en voltooiing opgeven en alleen een regel naar de shell verzenden wanneer deze gereed is om te worden uitgevoerd. De enige gemeenschappelijke terminal die op deze manier werkt is M-x shellin Emacs.
  • Uitgang: de shell zendt instructies uit zoals "display" foo"," Zet de voorgrondkleur op groen "," verplaats de cursor naar de volgende regel ", enz. De terminal werkt op deze instructies.
  • De prompt is puur een shell-concept.
  • De shell ziet nooit de uitvoer van de opdrachten die het uitvoert (tenzij omgeleid). Uitgangsgeschiedenis (scrollback) is puur een terminalconcept.
  • Kopiëren tussen verschillende toepassingen wordt verzorgd door de terminal (meestal met de muis of met sleutelreeksen zoals Ctrl+Verschuiving+V of Verschuiving+invoegen). De schaal kan ook zijn eigen interne kopieer-plakmechanisme hebben (bijv. meta+w en Ctrl+Y).
  • Taakbesturing (programma's op de achtergrond starten en beheren) wordt meestal uitgevoerd door de shell. Het is echter de terminal die toetscombinaties zoals behandelt Ctrl+C om de taak op de voorgrond te doden en Ctrl+Z om het op te schorten.

 Gerecycled uit Unix en Linux 


120
2017-08-04 10:30



Ik zou het niet met u eens moeten zijn dat terminal een goede term is voor een terminal-apparaatbestand en / of de terminal-afhandelingscode in de kernel (tty ioctls, raw / cooked, basic line editting). terminal = het spul dat vluchtcodes verwerkt, toetsaanslagen omzet in tekens en tekent op een scherm (of prints op papier / tape). Zie mijn antwoord voor meer details. - Peter Cordes
@PeterCordes Op dit detailniveau is er geen onderscheid. POSIX definieert terminal als synoniem voor eindapparaat, in de betekenis van een apparaatbestand. Dat is de Unix-betekenis. Het is toevallig het spul dan handelt ontsnappingscodes af, verandert toetsaanslagen in tekens en tekent op een scherm (of verzendt over het netwerk, of logt in een bestand, enz.). - Gilles
hrm, ja, terminal wordt in die zin ook wel gebruikt. Met de aanname dat er een terminalemulator is, of een seriële poort met een terminalapparaat erop, aan het ene uiteinde van het terminalapparaat dat de kernel verwerkt. De kernel tty-afhandeling (in de gekookte modus) verwerkt slechts een paar besturingscodes (signalen op ^ c, regelbewerkingen op ^ u / ^? (Delete). Ik probeer een lijn te trekken tussen de tty-code en het deel van Linux die een VT100-achtige terminal implementeert op een grafische kaart en een USB / ps2 / AT-toetsenbord. Je kunt Linux zonder dat compileren, maar niet zonder tty. - Peter Cordes
@PeterCordes In de kernelconfiguratie kan ondersteuning voor terminals worden weggelaten (het is handig voor een aantal zeldzame ingebedde systemen met een extreem krap geheugen); het wordt gecontroleerd door CONFIG_TTY. Ondersteuning voor terminal-emulators (beter pseudo-terminals genoemd - "terminalemulator" omvat niet altijd telnetd, scherm, verwacht, ...) wordt bestuurd door CONFIG_UNIX98_PTYS. Ondersteuning voor pc tekstweergave en toetsenbord of iets dergelijks wordt geregeld door CONFIG_VT. Zien drivers/tty/Kconfig in de kernelbron. - Gilles
Oeps, ik had geen recente kernelbron die rondslingerde. CONFIG_TTY is pas in 2012 toegevoegd. Hoe dan ook, hopelijk helpt dat iedereen die zijn hoofd probeert te wikkelen over wat de verschillende stukjes van de puzzel zijn en hoe ze bij elkaar passen. - Peter Cordes


Een visuele representatie.

Terminal

enter image description here

Iets waar je aan kunt zitten en als een baas kunt werken.

Troosten

enter image description here

Sommige hardware die een heleboel dingen doet.

Een ander voorbeeld van een console is een videogameconsole zoals een Super Nintendo [waar je Actraiser kunt spelen]

schelp

enter image description hereenter image description here

Kortom een ​​applicatie voor het uitvoeren van opdrachten.

Opdrachtregel [Interface]

enter image description hereenter image description here

Eigenlijk alles waar je opdrachten in invoert.


52
2017-08-04 20:09



Je hebt mijn idee gestolen - ik zou in principe hetzelfde antwoord geven. Dus je kunt een upvote hebben. Het punt is natuurlijk dat hoewel deze termen tegenwoordig meestal synoniem zijn, termen als "terminal" en "console" hun oorsprong vinden in oudere computerconcepten. - thomasrutter
Goede inspanning. Eenvoudig en gemakkelijk - A Umar Mukthar


Van de Linux Informatie Project:

Terminal : Technisch gezien is een terminalvenster, ook wel een terminalemulator genoemd, een venster met alleen tekst in een grafische gebruikersinterface (GUI) die een console emuleert.

In Onze woorden: een GUI-toepassing, van waaruit we toegang hebben tot de console van een gebruiker.

Troosten: een instrumentenpaneel met de bedieningselementen voor een computer

schelp : Een shell is een programma dat de traditionele, tekst-alleen gebruikersinterface voor Linux en andere Unix-achtige besturingssystemen biedt

Opdrachtregel : Een opdrachtregel is de ruimte rechts van de opdrachtprompt in een weergavemodus met alle tekst op een computermonitor (meestal een CRT- of LCD-scherm) waarin een gebruiker opdrachten en gegevens invoert


19
2017-08-04 04:39



"Terminal" staat voor een fysiek tekstscherm. Wat je zegt is eigenlijk "terminalemulator". - Registered User
@RegisteredUser Een terminalemulator is een soort terminal. Het woord terminal is niet beperkt tot fysieke terminals (het gebruikelijke woord daarvoor is troosten). - Gilles
Deze definitie van opdrachtregel is fout. Een opdrachtregel is niet beperkt tot een weergavemodus met alle tekst. - Gilles
@ Gilles Ik heb het van One web-Link gepakt. U hebt het juiste antwoord goed gezegd. - Ten-Coin
@AgentCool Ik twijfel niet aan je vermogen om te kopiëren en plakken. Ik twijfel aan je bronkeuze. Wat u plaatst is uw verantwoordelijkheid, of u het nu schreef of niet. - Gilles


De antwoorden hier lijken erg goed. Ze zijn echter te droog en technisch naar mijn smaak, dus ik zal het proberen.

Terminal is het einde van iets - waar het eindigt. Als u bijvoorbeeld de metro neemt in een bepaalde stad, is het station waar u naar toe gaat uw terminal. Of op een luchthaven wordt de plaats waar mensen naar buiten komen als ze hun land van bestemming bereiken, beschouwd als de terminal. De reden dat de terminal op het vliegveld tegenwoordig zowel de plek is waar mensen aan boord komen als de plek waar je ze uit het vliegtuig haalt, is om voor de hand liggende economische redenen.

Het doel van een computer is om gegevens te verzamelen, er iets mee te doen en het resultaat uit te spugen. Dus de terminal is een apparaat van waaruit je het resultaat van de berekening kunt krijgen .. een scherm bijvoorbeeld. Het gebeurde gewoon dat je op de eerste computers meestal de invoer (toetsenbord) en de uitvoer (scherm) als een enkel apparaat had. Daarom worden terminals tegenwoordig als invoer / uitvoerapparaten beschouwd. Een muis, toetsenbord, scherm, camera, het zijn allemaal terminals.

Shellis een OS-ding. Op een computer heb je de kernel die op Ubuntu bijvoorbeeld het Linux gedeelte is. Omdat de kernel echt een laag niveau heeft, is er een shell beschikbaar - een programma waarmee de gebruiker op een eenvoudige manier op de kernel kan reageren. Dat is wat BASH bijvoorbeeld is.

Console is (uit een woordenboek)

een plat oppervlak dat de bedieningselementen voor een machine bevat, voor een stuk   van elektrische apparatuur, etc.

Dat is de reden waarom in de muziekindustrie het bord met alle knoppen, of in een space shuttle de opdrachttafel, ze allemaal als consoles worden beschouwd. Super Nintendo en PS2 worden in het verleden ook consoles genoemd sinds de eerste dergelijke entertainmentapparaten op dozen leken met een aantal knoppen erop.

Command line is slechts een interface - het tegenovergestelde van GUI. Er zijn namelijk twee soorten interfaces op een computer; CLI (opdrachtregelinterface) en GUI (grafische gebruikersinterface). Het belangrijkste verschil is dat de eerste wordt ingevoerd via het toetsenbord terwijl de tweede invoer krijgt van de muis.


14
2017-08-06 10:40



Wat bedoel je "het tegenovergestelde van GUI"? - Koray Tugay
Met tegengestelde bedoel ik dat je CLI of GUI hebt. Ik heb nu een beetje meer verduidelijkt in het antwoord. - Pithikos


Om mijn antwoord samen te vatten:

schelp is een programma dat processes opdrachten en returns uitvoer, zoals bash in Linux.

Terminal is een programma dat run een schelp , in het verleden was het een fysiek apparaat (Vóór terminals waren monitoren met toetsenborden, dat waren ze teletypes) en vervolgens werd het concept omgezet in software , graag willen Gnome-Terminal .

Dus ik open Gnome-Terminal , er verschijnen zwarte vensters die lopen schelp dus ik kan mijn commando's uitvoeren.

Console is een speciaal soort terminal , het was ook een fysiek apparaat. bijvoorbeeld in Linux die we hebben virtual console waar ik ze kan openen door een combinatie van Ctrl + alt + F1 tot F7 .

Troosten soms betekent het toetsenbord en de monitor fysiek aangesloten op deze computer.


7
2017-08-05 11:59





Deze termen gaan vaak samen, dus mensen gebruiken een van de termen om naar de verzameling te verwijzen. (d.w.z. het is meestal duidelijk vanuit de context dat ze een terminalvenster betekenen dat een interface biedt voor een opdrachtregelshell).

Om te voorkomen dat dit te langdradig wordt, zeg ik gewoon xterm als een vervanger voor XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. Idem voor bash.

Troosten heeft meerdere andere specifieke betekenissen, dus laat dat voor nu.

Terminal: Iets dat menselijke interactie biedt met programma's via een bidirectionele stroom van ASCII / UTF8 / andere tekens, meestal met VT100 of vergelijkbare escape-codeverwerking. (Backspace, delete, pijltjestoetsen, etc. genereren bijvoorbeeld escape-codes.) Programma's kunnen escape-codes afdrukken om de cursor over het terminalscherm te bewegen, naar vetgedrukte tekst en / of kleur te schakelen, het scherm te wissen of te scrollen, enz.) vroeger was dit vaak een speciaal apparaat met een scherm en toetsenbord en een seriële poort. Nu is het meestal een programma zoals xterm.

Er zijn apparaatbestanden voor programma's om te lezen / schrijven van / naar terminals, en virtuele terminals hebben ook de andere kant toegankelijk als een apparaatbestand. Dit is waar xterm je invoer schrijft, zodat bash het kan lezen.

Elke terminal, inclusief virtuele, biedt elementaire lijnbewerking wanneer deze in de gekookte (in tegenstelling tot onbewerkte) modus is. Dit wordt afgehandeld door kernelcode. Het is bash dat de regelbewerking biedt die je kunt doen met de pijltjestoetsen. (Probeer te rennen cat en typ als je wilt zien hoe de basisbewerkingen in kernel-voorziene lijnen eruit zien. Backspace werkt, en een paar andere dingen volgens je stty-instellingen.)

Hoewel er veel kernelcode achter de terminalapparaten zit, zou dit worden aangeduid als terminal-handling-code, niet als een terminal zelf.

Bewerken: Gilles heeft me overtuigd dat verwijzen naar een tty als terminal een juist gebruik is. Terminal Emulators en interactieve programma's die op een terminal zijn aangesloten, zijn allemaal afhankelijk van de terminale semantiek die door de kernel wordt geïmplementeerd. (Het meeste van dit gedrag is gestandaardiseerd door POSIX en is hetzelfde voor Linux / * BSD / andere Unix.) Een teksteditor op volledig scherm hangt af van het gedrag van Unix tty-spullen en de manipulatie van de escape-code met de cursorbeweging, en vele andere functies van de terminalemulator.

Een fysieke VT100 met een scherm, toetsenbord en seriële poort is echter een instantie van een terminal. Er is geen Unix-kernel aan de andere kant van de seriële poort vereist om voltooid te zijn. Iets heel anders zou het kunnen zijn om de escape-codes en ASCII-tekst te verzenden en er hetzelfde van te ontvangen. Het zou echter gewoon een VT100 zijn, geen Unix-terminal. Een terminalemulator plus de Unix-tty-semantiek vormen het volledige pakket van een Unix-terminal waarop een programma zoals bash normaal draait.

Opdrachtregel is een stijl van gebruikersinterface, waar je iets typt, druk dan op Return om iets te laten gebeuren. Het wordt ook gebruikt als een afkorting voor een command-line shell, zoals bash of MS-DOS, maar je kunt ook zeggen "het is een commandoregel-tool" over zoiets als fdisk. Gezien alleen programma's die een terminal gebruiken voor hun gebruikersinterface, zijn de twee belangrijkste families de opdrachtregel en de tekst op volledig scherm (bijvoorbeeld een editor zoals vi of emacs -nw).

Commandoregelprogramma's die normaal gesproken op terminals werken, werken vrijwel altijd met hun invoer en uitvoer omgeleid naar bestanden, maar terminalgebaseerde programma's op volledig scherm zoals editors of e-mailclients zijn alleen interactief en zouden niet werken.

EEN schelp is een programma voor het starten van andere programma's. In een Unix-context is het gebruikelijk om command-line shell (dat wil zeggen, Bourne shell of C shell equivalent) te betekenen. Unix-shells kunnen ook hun invoer van bestanden lezen, d.w.z. shellscripts. Het zijn volledige programmeertalen, met variabelen, loops en conditionals, en veel programma's zijn geschreven in bash (of met alleen de /bin/sh POSIX shell-functies, voor meer draagbaarheid). Het is ook gemakkelijk om snel een berichtje te schrijven for i in *.something; do some_program "$i";done  in een interactieve shell.

Alles samenvoegen, een shell-achtige bash (of welk programma dan ook dat je begon met het uitvoeren van een shell-commando) zal personages ontvangen van de /dev/pts/N terminal device na xterm schrijft je invoer naar zijn kant van de pseudo-terminal. Als je rent caten druk dan op ^c, de code van de kernel tty werkt op de ^c en stuur een SIGINT naar het proces op de voorgrond op die terminal. (Let op het gebruik van terminal in deze context om de Unix tty te betekenen, niet een terminalemulator of iets aangesloten op een seriële poort.) Dit gebeurt omdat de shell de terminal in de "gekookte" modus zet voordat een programma wordt gestart, wat betekent dat de kernel werkt op bepaalde controle- opeenvolgingen. (De tty-code heeft nog steeds niets te maken met het omgaan met VT100-escape-codes, slechts een paar low-ASCII-besturingscodes.) Als je in plaats van een xterm de tekstterminal van de Linux-console gebruikt, voert de kernel de VT100-emulatie uit, en omgaan met al dat spul. Linux kan worden gecompileerd zonder ondersteuning voor virtuele consoletekstterminals, maar niet zonder tty-ondersteuning.

Troosten wordt soms gebruikt als een synoniem voor terminal (KDE heeft zelfs een terminalemulator genaamd Konsole).

Zoals 0xSheepdog opmerkt, heeft het ook een andere betekenis: lokaal aangesloten hardware voor menselijke interactie.

In kernelcontext heeft console een andere specifieke betekenis: het is de terminal waar bootberichten worden geschreven. Dit kan een seriële poort zijn. Normaal gesproken is het natuurlijk de tekstconsole die door de kernel wordt geïmplementeerd bovenop de stuurprogramma's voor grafische hardware en USB / ps2 / AT-toetsenborden. Als je Linux opstart met console=tty0 console=ttyS0,115200n8 op de opdrachtregel krijg je kernel-berichten op je scherm EN op de seriële poort.

Linux implementeert virtuele consoles (/dev/tty1 naar N). Je kunt wisselen met welke je fysieke scherm / toetsenbord bestuurt Ctrl+alt+FN. Typische Linux-distros maken 6 en beginnen getty in alle gevallen, dus zelfs als u X11 niet kunt of wilt starten, kunt u zes keer inloggen en schakelen tussen een opdracht, een manpagina en wat dan ook, zonder een programma zoals scherm uit te voeren. Linux (de kernel) bevat een terminalemulator in VT100-stijl voor een terminalinterface via je scherm en toetsenbord op de virtuele consoles.

De standaard 6 virtuele terminals met aanmeldingsprompts is waarom Ctrl+alt+F7 brengt u terug naar uw X11-sessie: de X-server grijpt de volgende beschikbare virtuele console. (De X-server wordt geopend /dev/input/... rechtstreeks, in plaats van het verkrijgen van uw toetsaanslagen /dev/tty7, hoewel.)

Dus "wisselen naar een tekstconsole" betekent indrukken Ctrl+alt+F1 en gebruik die terminal. Toen computers traag waren en niet over veel RAM beschikten, brachten sommige mensen een groot deel van hun tijd door op de tekstconsoles, omdat ze snel waren, je een leuk lettertype kon instellen en zelfs de grootte van de terminal kon veranderen om kleinere karakters te hebben, maar meer op het scherm tegelijk. alt+Links en alt+Rechts wissel naar vorige / volgende console. (X11 schakelt dit uit voor zijn console, natuurlijk, alleen de Ctrl+alt+FN combo.)

Zo troosten is de enige van deze voorwaarden die geen enkele welomschreven technische betekenis heeft. Het heeft een paar verschillende. (Afhankelijk van hoe je je voelt over terminal-correct versus terminal plus tty-afhandeling, zou je kunnen zeggen dat die terminal ook meerdere betekenissen heeft.)


7
2017-08-05 09:16



Troosten wat betekent dat de "hoofd" fysieke terminal zich niet alleen in een kernelcontext bevindt. Het is hetzelfde betekenis in /dev/console. Troosten is niet bijzonder dubbelzinnig - hoewel het af en toe wordt gebruikt in de meer algemene betekenis van terminal, dat is vrij zeldzaam (zeldzamer dan terminal wordt gebruikt om specifiek een console te betekenen). - Gilles
juist, ja, echo foo | sudo tee / dev / console> / dev / null wordt op het scherm afgedrukt, als je huidige VT in de tekstmodus staat (inclusief framebuffer-console, niet alleen letterlijk VGA-tekstmodus). Als je met de console op een seriële poort hebt opgestart, denk ik dat het daar zou gaan. Je zou kunnen zeggen dat / dev / console het apparaatbestand is voor wat de kernel behandelt als de systeemconsole. Niets anders in het systeem moet een idee hebben van het feit dat er helemaal een console tty is (behalve voor boot-recovery spul dat een shell start op de console TTY als het systeem niet opstart naar multi-user modus.) Meestal vanaf initrd) - Peter Cordes
De xorg X-server (strings / usr / bin / Xorg) gebruikt geen / dev / console om hardwaretoegang te krijgen. Het gebruikt wel / dev / tty0, en / dev / tty% d, en / dev / vc /% d, om zichzelf op zijn eigen VT op te zetten. Ik ben er vrij zeker van dat Xorg nog steeds prima werkt op een pc die is opgestart met de kernelconsole op een seriële poort. En dat de virtuele terminals in de tekstmodus nog steeds werken. Hoe meer ik dit beschouw, des te meer ik ernaar kijk console in een kernelcontext te bekijken als slechts een speciale terminal, geselecteerd tijdens het booten. (Linux kan zijn consoleberichten op meerdere terminals in één keer uitvoeren, als u dat vraagt.) - Peter Cordes


Ik denk dat al in de beginjaren van computers met tijdverdeling, elke gebruiker een terminal had (wanneer ze er een konden krijgen!), Maar alleen de systeemoperators hadden een console. De console kan worden gebruikt voor taken zoals het opnieuw opstarten van de machine of het verkrijgen van systeemdiagnostiek die niet mogelijk was vanaf gebruikerseindstations. De console bevond zich in de machinekamer, een intrinsiek onderdeel van de computer, terwijl de terminals op afstand konden zijn. De console zou ook hardwarelampjes en schakelaars bevatten, niet alleen tekstinvoer en -uitvoer.

Ik zou zeggen dat de commandoregel een gebied is waar een gebruiker een commando kan typen, terwijl de shell het programma is dat dat commando interpreteert / gehoorzaamt. De term 'schaal' is heel bijzonder voor Unix-derivaten; "command-line" is meer in de Windows / DOS-traditie. Het equivalent op mainframes wordt meestal een "taakbesturingstaal" genoemd.

Het is duidelijk dat deze oorspronkelijke verschillen na verloop van tijd vervaagd zijn als de technologie verandert.


5
2017-08-04 22:35





Een gebruikersgericht kort antwoord proberen:

opdrachtregel - de regel waar u commando's invoert. Meestal werd dit gebruikt om aan te geven dat u iets moet uitvoeren in het tekstmodusvenster (opdrachtregelinterface) van uw besturingssysteem.

schelp - het eigenlijke programma dat door het besturingssysteem wordt uitgevoerd om dingen te verwerken die u invoert command line. Vandaar de naam - gebruiksvriendelijke shell voor niet-vriendelijke OS-kern. Het biedt opdrachtprompt, zoals $ of >, voert zijn eigen opdrachten en apps uit. Je werkt altijd via de shell programma en nooit rechtstreeks met console of terminal werken.

troosten - is een venster waarin uw tekstmodusprogramma's worden uitgevoerd. Dit venster verwerkt toetsaanslagen, weet dat het breedte en hoogte is. Kan op volledig scherm worden weergegeven.

terminal - is een apparaat met display voor mensen dat invoerstroom van personages accepteert en laat zien. Er is geen feedback aan de gebruiker over de hoogte of breedte (alleen hacks) of toetsaanslagen op het toetsenbord - alleen karren reizen ernaar. Terminal verwerkt speciale reeksen in deze stream om dingen gekleurd te maken, het scherm op te ruimen en andere vervelende dingen te doen. Terminals zijn schilferig, omdat het gemakkelijk is om dingen te verprutsen als het bestand dat u aan het piping-naar-output bent die speciale sequences bevat. Ze zijn populair in netwerk- en device debug interfaces, omdat je slechts één stream nodig hebt om output te verzenden en het output-apparaat te besturen en je kunt gewoon tap in gesprek zonder de noodzaak om te initialiseren of een venster te maken.

seriële console - is een console die de invoerstroom als een terminal verwerkt.


3
2017-10-24 10:42





Dit is een vaag onderwerp, omdat de termen erg dubbelzinnig zijn. Ik raad ten zeerste aan om de links te lezen die ik in dit antwoord heb verstrekt, die ook mijn bronnen voor dit antwoord zijn.

EEN schelp is de laag boven de kernel:

  • Het interpreteert de opdrachten die door de gebruiker zijn ingevoerd en verwerkt deze. De shell heeft toegang tot de kernel, in tegenstelling tot gebruikers. Gebruikers hebben alleen toegang tot de kernel door opdrachten in te voeren met behulp van een shell en door processen te gebruiken (dat wil zeggen programma's uitvoeren). Programma's gebruiken systeem oproepen voor toegang tot de kernelfunctionaliteit. Alle systeemaanroepen vormen samen de systeem-API.
  • Voorbeelden van shells worden gegeven in de tweede einddefinitie.

EEN terminal heeft veel betekenissen:

  • (1) A tekstterminal. Dit is de combinatie van een beeldscherm en een toetsenbord. Een kabel verbond de terminal met de computer (vaak indirect). Het werd een terminal genoemd omdat het zich aan het uiteinde van deze kabel bevond. Deze terminals waren meestal fysiek gescheiden van de computer, omdat vroeger veel terminals waren verbonden met een enkel mainframe / computer, zodat meerdere gebruikers tegelijkertijd toegang tot de computer konden hebben.
  • (2) A terminal venster alias terminal-emulator. In Linux is een terminalvenster de emulatie van een console, opgenomen in een GUI-venster. Het is de CLI waar je je tekst in typt, en deze invoer wordt gelezen door de shell die je gebruikt. Er zijn vele soorten shells (bijvoorbeeld bash, dash, ksh88) en terminals (bijvoorbeeld konsole, gnome).
  • (3) Voor een toelichting op pseudo-terminals, kijk deze. Het is een paar van twee 'apparaatbestanden' die worden gebruikt voor communicatie tussen een proces- en een terminalemulator.

EEN troosten heeft veel betekenissen:

  • (1) een instrumentenpaneel met de bedieningselementen voor een computer.
  • (2) A Systeemconsole alias computer console. Dit is de combinatie van de beeldschermmonitor en een toetsenbord dat op een computer is aangesloten. Dit is synoniem met wat we een 'tekstterminal' noemen. Soms maken ook andere randapparatuur voor gebruikersinvoer, zoals een muis, deel uit van een console.
  • (3) Een opdrachtregelinterface die het volledige scherm beslaat. Dit staat in contrast met een terminalvenster, dat een GUI is met een X in de rechterbovenhoek om het te sluiten. Dit zijn de twee weergavemodi voor CLI (opdrachtregelinterfaces) in Unix-achtige systemen. Net als bij een terminalvenster, kan de console ook vele shells uitvoeren.

Vaak kunt u met besturingssystemen meerdere consoles uitvoeren op een fysieke console (console-definitie 2). Deze worden genoemd virtuele consoles alias virtuele terminals, en is toegankelijk via ctrl + alt + Fx combinaties. Als u bijvoorbeeld de 3e virtuele console wilt openen, gebruikt u de combinatie ctrl + alt + F3.

Consoles (definitie 3) kunnen u als een anachronisme lijken, maar experts moeten er vertrouwd mee zijn, omdat er veel besturingssystemen zijn die GUI's niet ondersteunen. Als een GUI niet meer reageert, werkt de console mogelijk nog steeds.


3
2017-12-03 05:13





Meest terminals tegenwoordig zijn strikt genomen terminal emulators. Het is een type rol in de werking van een UNIX-achtig systeem en tegelijkertijd de basisinterface aangeboden door de systemen. Eigenlijk bouwt alles, inclusief de GUI, er bovenop.
Vrijwel "terminal" kan ook verwijzen naar eindpunten in een computernetwerk met een ster-topografie.

Troosten verwijst naar de (hardware) interfaces voor de terminals. D.w.z. er zijn serie- consoles en tegenwoordig meestal virtueeldegenen.
Het venster dat in de volksmond "console" -venster wordt genoemd, is een shell die via een virtuele console is verbonden met een terminal van het systeem.

Vroeger, toen computers duur waren, had een faciliteit mogelijk een echte computer en meerdere terminals erop aangesloten via seriële kabels ("seriële console"). Het besturingssysteem, bewerkingen, enz. Werden uitgevoerd op de fysieke computer, invoer en uitvoer gebeurden op de console (s).
U kunt schakelen tussen virtuele terminals door op te drukken CTRL+ALT+F1(door naar F6): een overblijfsel van die tijden.
Vandaag gaat het concept van "thin clients" terug in deze richting van het centraliseren van enorme hoeveelheden resources en het leveren van net voldoende hardware om een ​​state-of-the-art interface op de eigenlijke werkplek te bieden.

schelp is de "motor" die u in de terminal ziet. Het biedt interop met het systeem zelf en voegt leuke functies toe zoals automatisch aanvullen, variabelen, enz.
Het vertaalt zich heen en weer tussen de feitelijke OS / kernel die systeemoproepen en u gebruikt. Systeem aanroepen zonder shell lijken een beetje op coderen assembler en een schelp geeft je tenminste C.

opdrachtregel verwijst naar de methode voor het uitwisselen van invoer en uitvoer via een tekstvenster. Strikt genomen is de regel waarin u typt de (huidige) opdrachtregel. De methode wordt in het algemeen correcter genoemd opdrachtregelinterface of CLI.

  1. pit
  2. biedt terminal
  3. terminal is verbonden via een console
  4. console draait shell
  5. opdrachten en uitvoer worden uitgewisseld via de opdrachtregel (interface)

2
2017-08-04 12:17



Opdrachtregelinstructies worden niet begrepen door de kernel, maar door een schaal. Het "kernkader van instructies dat de kernel begrijpt" zou systeemaanroepen zijn. De "standaard UNIX-opdrachtregelinterface" is een shell, er is geen scheiding tussen die en de "leuke functies". Een "terminal-emulator-venster" is geen console. - Gilles
@ Gilles aangepast. Natuurlijk verwarren sommige dingen mijzelf daar. - Mark