GNU/Linux >> Znalost Linux >  >> Linux

Přesný rozdíl mezi ‚terminálem‘, ‚shell‘, ‚tty‘ a ‚konzolí‘?

Myslím, že tyto termíny téměř odkazují na totéž, když jsou použity volně:

  • terminál
  • shell
  • tty
  • konzole

Co přesně každý z těchto termínů označuje?

Přijatá odpověď:

Terminál je na konci elektrického drátu, krunýř je domovem želvy, tty je zvláštní zkratka a konzola je druh skříně.

No, každopádně etymologicky vzato.

V unixové terminologii je stručná odpověď, že

  • terminál =tty =prostředí pro vstup/výstup textu
  • konzole =fyzický terminál
  • shell =interpret příkazového řádku

Konzole, terminál a tty spolu úzce souvisí. Původně znamenaly kus vybavení, jehož prostřednictvím bylo možné komunikovat s počítačem:v raných dobách unixu to znamenalo zařízení ve stylu dálnopisu připomínající psací stroj, někdy nazývané dálnopis nebo zkráceně „tty“. Název „terminál“ přišel z elektronického hlediska a název „konzole“ z hlediska nábytku. Velmi brzy v historii unixu se elektronické klávesnice a displeje staly normou pro terminály.

V terminologii unixu tty je zvláštní druh souboru zařízení, který implementuje řadu dalších příkazů (ioctls) nad rámec čtení a zápisu. Ve svém nejběžnějším významu terminál je synonymem pro tty. Některé tty jsou poskytovány jádrem jménem hardwarového zařízení, například se vstupem přicházejícím z klávesnice a výstupem na obrazovce textového režimu nebo se vstupem a výstupem přenášeným po sériové lince. Jiné tty, někdy nazývané pseudo-tty , jsou poskytovány (prostřednictvím tenké vrstvy jádra) programy nazývanými emulátory terminálu , jako je Xterm (běžící v systému X Window), Screen (který poskytuje vrstvu izolace mezi programem a jiným terminálem), Ssh (který propojuje terminál na jednom počítači s programy na jiném počítači), Expect (pro skriptovací terminál interakce) atd.

Slovo terminál může mít také tradičnější význam zařízení, jehož prostřednictvím se komunikuje s počítačem, typicky s klávesnicí a displejem. Například terminál X je druh tenkého klienta, počítač pro speciální účely, jehož jediným účelem je ovládat klávesnici, displej, myš a příležitostně další periferní zařízení pro lidskou interakci, přičemž skutečné aplikace běží na jiném, výkonnějším počítači.

Konzole je obecně terminál ve fyzickém smyslu, který je podle určité definice primárním terminálem přímo připojeným ke stroji. Konzole se operačnímu systému jeví jako (implementovaný v jádře) tty. Na některých systémech, jako je Linux a FreeBSD, se konzole jeví jako několik ttys (mezi těmito tty se přepínají speciální kombinace kláves); Abychom to zmátli, jméno dané každému konkrétnímu tty může být „konzole“, „virtuální konzole“, „virtuální terminál“ a další varianty.

shell je primární rozhraní, které uživatelé uvidí po přihlášení a jehož primárním účelem je spouštění jiných programů. (Nevím, zda původní metafora je, že shell je domácí prostředí pro uživatele, nebo že shell je to, v čem běží jiné programy.)

Související:Centos – Jak nainstalovat desktopová prostředí na CentOS 7?

V kruzích unix shell se specializuje na příkazový řádek, soustředěný kolem zadání názvu aplikace, kterou chcete spustit, následovaných názvy souborů nebo jiných objektů, se kterými by měla aplikace pracovat, a stisknutím klávesy Enter. Jiné typy prostředí slovo „shell“ nepoužívají; například okenní systémy zahrnují „správce oken“ a „pracovní prostředí“, nikoli „skořápku“.

Existuje mnoho různých unixových shellů.
Mezi oblíbené shelly pro interaktivní použití patří Bash (výchozí na většině instalací Linuxu), zsh (který zdůrazňuje výkon a přizpůsobitelnost) a fish (který zdůrazňuje jednoduchost).

Skořepiny příkazového řádku obsahují konstrukce řízení toku pro kombinování příkazů. Kromě psaní příkazů na interaktivní výzvu mohou uživatelé psát skripty. Nejběžnější shelly mají společnou syntaxi založenou na Bourne_shell. Při diskusi o „programování shellu “, shell je téměř vždy implikován jako shell ve stylu Bourne. Některé shelly, které se často používají pro skriptování, ale postrádají pokročilé interaktivní funkce, zahrnují Korn shell (ksh) a mnoho variant ash. Téměř každý systém podobný Unixu má nainstalovaný shell ve stylu Bourne jako /bin/sh , obvykle popel, ksh nebo bash.

V administraci unixového systému shell uživatele je program, který je vyvolán, když se přihlásí. Normální uživatelské účty mají shell příkazového řádku, ale uživatelé s omezeným přístupem mohou mít omezený shell nebo nějaký jiný specifický příkaz (např. pro účty pouze pro přenos souborů).

Dělba práce mezi terminálem a skořápkou není úplně zřejmá. Zde jsou jejich hlavní úkoly.

  • Vstup:Terminál převádí klávesy na ovládací sekvence (např. Levýe[D ). Shell převádí řídicí sekvence na příkazy (např. e[Dbackward-char ).
  • Úpravu řádků, historii vstupu a dokončení zajišťuje shell.
    • Terminál může místo toho poskytovat vlastní editaci řádku, historii a dokončení a odeslat řádek do shellu pouze tehdy, když je připraven ke spuštění. Jediný společný terminál, který funguje tímto způsobem, je M-x shell v Emacsu.
  • Výstup:Shell vydává pokyny jako „display foo ““, „přepnout barvu popředí na zelenou“, „přesunout kurzor na další řádek“ atd. Terminál se řídí těmito pokyny.
  • Výzva je čistě koncept shellu.
  • Shell nikdy nevidí výstup příkazů, které spouští (pokud není přesměrován). Historie výstupu (scrollback) je čistě koncept terminálu.
  • Meziaplikační kopírování a vkládání zajišťuje terminál (obvykle pomocí myši nebo sekvencí kláves, jako je Ctrl +Shift +V nebo Shift +Vložit ). Shell může mít také svůj vlastní interní mechanismus kopírování a vkládání (např. Meta +W a Ctrl +Y ).
  • Řízení úloh (spouštění programů na pozadí a jejich správa) většinou provádí shell. Je to však terminál, který zpracovává kombinace kláves jako Ctrl +C pro ukončení úlohy v popředí a Ctrl +Z jej pozastavit.

Linux
  1. Rozdíl mezi vestavěným příkazem a příkazem, který není?

  2. Rozdíl mezi uvozovkami „…“, „…“, $“…“ a $“…“ ve skořápce?

  3. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  1. Jaký je rozdíl mezi &> a >&v bash?

  2. Jaký je rozdíl mezi ls a l?

  3. Rozdíl mezi příkazy v bash skriptu a příkazy v terminálu

  1. Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?

  2. Rozdíl v použití mezi proměnnými shellu a proměnnými prostředí?

  3. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?