GNU/Linux >> Znalost Linux >  >> Linux

Terminály, shelly, konzole a příkazové řádky

Pokud zkoumáte Linux nebo Unix, možná zaslechnete termíny terminál, příkazový řádek, shell a konzole a můžete být oprávněně zmateni tím, který je který a zda jsou totéž. Určitě spolu všechny souvisí, ale každý má nuance, které mají důležité důsledky. Tento článek vás provede terminologií textových rozhraní Linuxu.

Jak fungují počítače

Když se počítač spustí, jádro rozpozná svůj vlastní fyzický hardware a umožní každé komponentě spolu komunikovat. Existuje mnoho různých jader:kdysi dávno existovalo jádro Unix, jádro Sun, jádro BSD a později přišlo jádro Linux, jádro Hurd, jádro Mach a jádro NT.

A to nejsou všechny. Existují specializovaná jádra pro všechny druhy výpočetních zařízení. Některé jsou velmi jednoduché a jiné velmi složité v závislosti na potřebách zařízení, na kterém běží.

Nejzákladnější sada pokynů pro počítač udržuje počítač zapnutý. Ovladače hardwaru, organizované jádrem, udržují ventilátory aktivní, aby nedocházelo k přehřívání, je monitorováno místo na disku, spravovány stavy RAM, detekována nová zařízení a tak dále. Velmi rané počítače dělaly ve svém nečinném stavu ještě méně než toto a každý program, který první počítač spouštěl, byl v podstatě jediným účelem existence, alespoň v době, kdy byl tento program (ve formě děrných štítků) prováděn. Koncept spuštění úlohy na pozadí nebo dvou aplikací najednou byl nepředstavitelný. Pokud jste chtěli zpracovat dvě úlohy najednou, máte druhý počítač.

Interaktivní shell

Jakmile však počítače pokročily, někteří vědci uznali, že programování počítače pro jeden účel pokaždé, když se spouští, je neefektivní a s pokrokem v technologii poddimenzované. Vyvinuli tedy něco, čemu říkali skořápka.

Existují různé vysvětlení, proč byl zvolen termín „skořápka“, ale věrohodným a uspokojivým vysvětlením je, že rozhraní shellu obklopuje jádro stejně jako skořápka obklopuje ořech. Shell je část, se kterou uživatel komunikuje, zatímco požadavky na výpočetní výkon spravuje jádro.

U shellu je důležité pochopit, že znamenal nový věk pro výpočetní techniku. Skořápka přeměnila počítače ze spotřebiče na elektrické nářadí, které mohlo na požádání změnit svou funkci. Počítače se staly interaktivními. Dokonce i v moderních počítačích je shell nejnižší úrovní interakce, kterou můžete mít s počítačem. To z něj dělá nejpřímější způsob, jak dát pokyn počítači o tom, co chcete, aby dělal dál, takže učení shellu je neocenitelnou taktikou zkušených uživatelů.

Skořápka je pro mnoho lidí abstraktní pojem. Při přemýšlení o skořápce je užitečné myslet na konkrétní a je z čeho vybírat. Nejoblíbenější je (GNU) Bash, ale Zsh a Fish jsou oblíbené alternativy Bash. Tcsh a Ksh jsou spolehlivé staré oblíbené položky z raného UNIXu, s přísným dodržováním standardu POSIX. Ash a Dash se snaží být lehké a rychlé, takže jsou ideální pro vestavěné systémy a pro minimální prostředí. Powershell od Microsoftu je open source prostředí založené na .NET.

Příkazový řádek

Když přistoupíte k shellu, zobrazí se výzva. Někteří lidé nazývají výzvu shellu příkazový řádek, což je skutečně popisné:výzva označuje řádek, do kterého můžete zadat příkaz.

Výzva je nějaký symbol, který vám dává vědět, že shell čeká na vaše pokyny. Běžným symbolem je znak dolaru ($ ), ale může to být také znak procenta (% ), úhlová závorka (> ), oktotorpe (# ), nebo něco úplně jiného. To znamená, že když používáte shell, vaše výchozí zobrazení vypadá asi takto:


$

Znatelný rozdíl mezi shelly je syntaxe. Například v Bash a Zsh a Ash a Ksh nastavíte proměnné s deklarací „rovná se“:

$ foo=bar
$ echo $foo
bar

V Tcsh však používáte klíčové slovo set pro proměnné:

$ set foo=bar
$ echo $foo
bar

Nápověda

Na první pohled není rozhraní shellu zrovna uživatelsky přívětivé. Naopak, zdá se, že se od vás očekává, že víte, co dělat s shellem. To není to, na co je většina moderních počítačů zvyklá, protože grafické aplikace uživatelům alespoň poskytují tlačítka a nabídky k prozkoumání, i když přesně nevědí, co aplikace dělá.

I když uživatel pochopí, že shell čeká na vstup, běžná slova, anglicky nebo jinak, vykreslí buď chyby, nebo neužitečný výstup.

Pokud například zadáte help na výzvu Bash získáte seznam vestavěných příkazů, z nichž jen málo samo o sobě poskytuje užitečné výsledky nebo umožňuje další interakci.

V tomto smyslu není shell vaší typickou aplikací. Ve skutečnosti je to většinou příkazový řádek:řádek, do kterého můžete zadávat příkazy. Je na uživateli, aby věděl, jaké příkazy jsou k dispozici, a předpokládá se, že uživatel otevírající shell byl obeznámen alespoň s těmi nejzákladnějšími příkazy, aby se mohl dozvědět více o systému.

Protože tomu tak není vždy, je na veřejných systémech užitečné globálně označit většinou nepoužitelný příkaz help na něco informativního, jako je shellp.

Konzole

K shellu na Linuxu nebo BSD se dostanete tak, že vůbec nespustíte GUI (takže shell je vše, co zbyde), nebo když stisknete Alt+Shift a funkční klávesu 2 až 6. Každá funkční klávesa vás přenese na poskytnutou obrazovku by getty (nebo agetty, nebo něco podobného, ​​v závislosti na tom, co vaše distribuce používá). Obrazovka poskytuje výzvu k přihlášení do shellu a tato obrazovka se často běžně nazývá konzole. Přesněji řečeno, je to getty session nebo emulované zařízení tty.

Na Macu neexistuje způsob, jak se odhlásit ze spouštění GUI na běžícím systému, i když při spouštění můžete použít snag klávesy pro zavedení do režimu pro jednoho uživatele. Režim jednoho uživatele v systému Mac OS deaktivuje mnoho funkcí, včetně správy uživatelů, takže to obecně není vhodné.

Nejběžnějším způsobem přístupu k shellu na moderních počítačích je otevření emulátoru terminálu, který v něm spouští shell.

Terminál

Terminál byl historicky fyzickým zařízením, než vůbec existoval koncept osobního počítače (PC). Terminál byl objekt podobný počítači, ale ve skutečnosti to byla jen obrazovka (nebo někdy jen tiskárna!) s připojenou klávesnicí. Terminálové okno na moderním počítači je emulací tohoto historického objektu a obvykle můžete v emulátoru terminálu spustit jakýkoli shell.

Například na ploše Linuxu můžete spustit jednu instanci terminálu GNOME, která bude sloužit jako okno do prostředí Bash, a další instanci terminálu GNOME, která bude sloužit jako okno do prostředí Tcsh.

Samotný terminál je zde pouze pro umístění běžícího shellu. Emulátor terminálu nezpracovává data ani nespouští příkazy, i když může přidávat funkce uživatelského rozhraní, jako jsou speciální klávesové zkratky, možnost přetahování souborů do prostředí shell, barevná témata a tak dále.

Na všech platformách je k dispozici mnoho emulátorů terminálu. Počítače Linux a BSD se dodávají s xterm jako záložní a obvykle obsahují moderní emulátor pro každodenní použití (jako je GNOME Terminal, Konsole a tak dále). Mac OS se dodává s proprietárním emulátorem terminálu, ale iTerm2 je mnohem lepší náhrada (a jeho licence je GPLv2).

Pro Windows je výchozí nastavení PowerShell, ale existuje mnoho dalších možností s otevřeným zdrojovým kódem, jako jsou ConEmu a Cmder.

Další informace

Další informace o terminálech a shellech, které spouštějí, se můžete dozvědět o tom, jak se pohybovat v shellu, jak spravovat soubory v shellu a jak si přizpůsobit shell. Pokud se budete lépe učit tím, že děláte , pak zvažte absolvování úvodních kurzů z Red Hat Training.

[ Potřebujete pomoc s tím, co psát na terminálu? Stáhněte si Cheat Sheet pro Linux Commands. ]


Linux
  1. Jak odstranit první/poslední „n“ řádky z výstupu příkazu v prostředí Shell?

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

  3. Které shelly nepodporují expanzi dolarových závorek a poptávkové backticks?

  1. Jak identifikovat pracovní adresáře pomocí Shell znaků a proměnných

  2. Konfigurace Yabootu a Debianu pro spouštění do přihlašovacího prostředí příkazového řádku?

  3. Příkaz wc pro Linux

  1. 5 způsobů, jak spouštět příkazy UNIX / Linux (a skripty Shell) na pozadí

  2. Jak počítat počet řádků v souboru v Linuxu (příklady wc a nl)

  3. Příklady vytvoření aliasu příkazu v různých shellech