náhled|Práce v shellu Bash Prostředí příkazového řádku (zkratka CLI, ) je ve výpočetní technice uživatelské rozhraní, které uživateli umožňuje zadávat příkazy počítači z klávesnice a sledovat jeho reakce na obrazovce (případně na elektrickém psacím stroji). U sálových počítačů tímto způsobem pracovala operátorská systémová konzole, v unixových systémech a v operačních systémech jako CP/M nebo MS-DOS tímto způsobem uživatel komunikuje s interpretem příkazů (shellem), který umožňuje zadávat příkazy a spouštět programy. Typickým fyzickým rozhraním u unixových systémů byl obrazovkový terminál, po nástupu osobních počítačů jejich klávesnice a monitor. V tradiční podobě se nepoužívala myš ani menu a textový výstup se postupně vypisoval na další řádky na obrazovce a po jejím zaplnění se provedlo buď její vymazání a výpis pokračoval od prvního řádku nebo se text posunul o řádek nahoru a psalo se do uprázdněného spodního řádku („scrollování“). Pro určité typy prací je tento způsob komunikace s počítačem velmi efektivní, a proto je toto rozhraní k dispozici i v Microsoft Windows (cmd.exe, PowerShell) a moderních unixových systémech, které poskytují grafické uživatelské rozhraní (GUI), včetně systému macOS (terminál). Ovládání pomocí vestavěného prostředí příkazového řádku má také mnoho programů.
Jako textové uživatelské rozhraní (TUI) se obvykle označuje zmodernizovaná podoba rozhraní příkazového řádku, která umožňuje používat celou plochu obrazovky, používá barvy a rámečky pro zlepšení orientace, menu pro usnadnění ovládání a obvykle umožňuje i používání myši. U mnoha systémů a programů nelze určit jasnou hranici mezi „tradičním“ prostředím příkazového řádku a TUI.
Popis funkce Příkazový řádek zobrazuje výzvu (prompt) a (blikající) kurzor. Uživatel vkládá příkazy napsáním jejich názvu a stiskem klávesy „Enter“. Interpret příkazů pak vložený text přijme, analyzuje a spustí příslušný program. Pro komunikaci uživatelem příkazový řádek používá hardwarový textový terminál nebo softwarový emulátor terminálu, jako je např. program PuTTY. Spuštěný program může na terminál vypsat hlášení o svém běhu, výsledek operace, vyžádat si další vstup a podobně. Po ukončení programu je opět zobrazena výzva (prompt).
Koncept CLI pochází z doby po roce 1950, kdy byly dálnopisy (teletype, TTY) připojovány k počítačům a poskytovaly okamžitě informace o svém stavu (na rozdíl od dávkově orientovaného zpracování pomocí vkládání děrných štítků). Po něm následovaly textové a grafické terminály.
Využití Příkazový řádek je dodnes přítomen i v grafických uživatelských rozhraních a je dále zdokonalován.
Unixové systémy Terminál je tradičním způsobem ovládání ve všech unixových systémech. Dostupný je přímo v textovém uživatelském rozhraní, kde je spuštěn shell, který vytvoří příkazový řádek. V grafickém prostředí je shell spouštěn uvnitř speciálních programů, které emulují textový terminál (xterm, Gnome terminal, Konsole…).
DOS DOS používá textové uživatelské rozhraní. Příkazový řádek vytváří program COMMAND.COM, který byl inspirován unixovými shelly, ale je proti nim výrazně zjednodušen.
Microsoft Windows V prostředí Microsoft Windows je spouštěn program cmd.exe, který vytvoří okno s textovým terminálem a v něm vytvoří příkazový řádek.
Použití je ovšem daleko širší a výsledkem CLI ovládání mohou být i grafické výstupy. Příkladem může být například CAD systém AutoCAD, prostředí pro statistické výpočty S a R.
Vzhled příkazového řádku ve Windows – ◘ X C:\Windows\System32\cmd.exe Microsoft Windows [Verze 6. 1. 7601] Copyright (c) 2009 Microsoft Corporation. Všechna práva vyhrazena.
C:\Users\Uživatel>
Prompt Prompt (výzva) indikuje, že příkazový řádek je připraven zpracovat další příkaz. Jeho vzhled a obsah je možné nastavit, obvykle obsahuje aktuální adresář a je zakončený znakem > (Microsoft Windows, MS-DOS, unixový tcsh), $ (unixové shelly) nebo # (unixové shelly pro systémového administrátora – uživatel root).
V systémech DOS a Windows lze obsah promptu nastavit příkazem prompt nebo nastavením proměnné prostředí PROMPT, v unixových shellech proměnnými prostředí PS1 a PS2. Součástí unixových promptů bývají i řídicí sekvence ANSI, které umožňují změnu barvy písma promptu a nastavení titulku okna nebo popisku ikony aplikace.
V následující ukázce použitelné pro bash je prvním příkazem vypsána hodnota proměnné PS1 (znak dolar následovaný mezerou) a druhým příkazem je prompt změněn, aby vyslal řídicí sekvenci ANSI, která nastaví titulek okna na číslo terminálu a jméno aktuálního adresáře, a jako prompt se zobrazí zeleně uživatelské jméno a jméno stroje a hnědě cesta k aktuálnímu adresáři (tento tvar používá příkaz scp pro zadání souborů na vzdáleném stroji): $ echo "'$PS1'" '\$ ' $ PS1='\[\e]0;\]$(tty | sed "s:.*/::"): \w\[\a\]\n\[\e[32m\]\u@\h:\[\e[33m\]\w\[\e[0m\]\n\$ '
kolarp@bat:~/texty/wiki $
V literatuře a popisech interakce při použití příkazového řádku se jako prompt unixového shellu často používají pouze znaky $ a #.
Formát příkazu Příkazy zadávané v příkazovém řádku mají tvar:
prikaz [přepínače] [parametry]
Při použití přesměrování standardního vstupu a výstupu např.:
prikaz [přepínače] [parametry] < [vstupníSoubor] > [vystupníSoubor]
Výhody příkazového řádku náhled|Oprava překlepů v unixovém shellu tcsh Většina uživatelů počítačů je navyklá pracovat v grafickém rozhraní a ne vždy si uvědomují, že příkazový řádek poskytuje nemálo výhod:
Příkaz se vždy vykonávají stejným příkazem, který se může upravovat různými přepínači. Ve většině grafických rozhraní se dostupné funkce nacházejí jako volby v menu, které se ovšem program od programu liší. Také je velká pravděpodobnost, že daná operace ani není na stejném místě, ale „zastrčená“ někde v podmenu jiného podmenu. Při pohledu na zadaný příkaz zkušenější uživatel jednoduše může odhadnout, co daný příkaz vykoná. I když při zřídka používaných operacích je nutné si vždy nastudovat přesnou syntaxi příkazu. Příkazový řádek může být často použit jako skriptovací programovací jazyk a může vykonávat příkazy v dávkách bez zásahu uživatele. Takovýto skript může být kdykoliv a kdekoliv vykonán, a to i počítačovým laikem. V grafickém rozhraní se musí uživatel většinou proklikávat k určité operaci vždy od začátku, což je velice zdlouhavé. Často používaným příkazům se dá přiřadit určité heslo (alias), které pak stačí zadat do příkazové řádky a předem nastavený příkaz (nebo sada příkazů) se provede. Klávesnice je často lepším vstupním zařízením než myš. Dokonce i lidé, kteří se s klávesnicí nikdy nesetkali, jsou schopni několikrát po sobě vepsat písmena „abcde“ ve stejném pořadí. To ovšem neplatí o ovládání myši, u které je pro takovéto uživatele nadmíru složité provést dvakrát identický pohyb kurzorem. Mimo jiné lze chyby v napsaném příkaze snadno a rychle odstranit pomocí kláves DELETE nebo BACKSPACE ještě před vykonáním. V GUI se může snadno stát, že po zadání příkazu již není cesty zpět. Pokročilé příkazové řádky ukládají prováděné příkazy do historie a umožňují návrat ke dříve zadaným příkazům pomocí šipek na klávesnici nebo vyhledávání podle vzorku textu. Podle nastavení může být historie příkazů dostupná i z dřívějších sezení. To ulehčuje a také zrychluje práci. Rozhraní příkazového řádku vyžaduje mnohem menší přenosovou rychlost při vzdáleném ovládání. CLI může bez problémů běžet při rychlosti 9600 bps, přičemž GUI potřebuje za stejný čas přenést mnohem více dat. CLI má také mnohem nižší HW nároky. Není potřeba myš.
Nevýhody příkazového řádku Uživatel si musí osvojit znalosti příkazů a různých znakových řetězců, což trvá o mnoho déle a vyžaduje o mnoho více úsilí než osvojení práce s GUI GUI často nabízí různé možnosti řešení určitého problému a informuje o nich uživatele. CLI nabízí pouze prázdný prompt a předpokládá, že uživatel přinejmenším zná potřebnou syntaxi. Příkazový řádek vyžaduje, aby si uživatel uvědomil, co má vlastně dělat, a ne jenom rozpoznat, co mu systém nabízí. CLI má strmější křivku učení než GUI: více času a úsilí musí být vynaloženo na naučení základů a až poté je možné vykonávat základní úlohy. Proto je CLI nevhodný pro začátečníky.
Kritici tvrdí, že rozhraní příkazového řádku je využívané tvůrci programů jen kvůli jejich neschopnosti a nebo nedostatku motivace vytvořit kompletní grafické rozhraní. Místo vytvoření úplného grafického rozhraní totiž vývojáři někdy vytváří jen základní funkce a potom umožní přístup k dalším nízkoúrovňovým funkcím pomocí příkazového řádku.
Související články Grafické uživatelské rozhraní Textové uživatelské rozhraní Terminál (informatika) Konzolová aplikace
Externí odkazy
Seriál Hrátky z řádky In the Beginning was the Command Line (anglicky)
Kategorie:Uživatelské rozhraní Kategorie:Softwarová architektura