Příkazový řádek

Příkazový řádek (zkratka CLI, ) ve Windows a Terminál v OSx představují uživatelské rozhraní, ve kterém uživatel komunikuje s programy nebo operačním systémem zapisováním příkazů do příkazového řádku. Na rozdíl od textového rozhraní a grafického uživatelského rozhraní nevyužívá myš ani menu a nedovede pracovat s celou plochou obrazovky (terminálu).

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. Příkazový řádek může být spuštěn v textovém terminálu nebo pomocí emulace 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 
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. Obvykle to bývá nějaká užitečná informace ukončená znakem >, $ nebo #. Pokud uživatel pracuje ve zvláštním režimu, například jako systémový administrátor (uživatel root), bývá prompt ukončen jiným znakem, který má na tuto skutečnost upozornit.

V unixovém shellu, ale i v systémech DOS a Windows lze prompt definovat podle svých potřeb (proměnná PS1 a PS2, resp. příkaz prompt).

Příklad:
 kun@konik: /var/www$

Prompt unixového shellu se také často označuje (třeba v knihách) pouze jako znak "$" (dolar)

Formát příkazu 
Příkazy zadávané v příkazovém řádku mají formální tvar:

 prikaz [přepínače] [parametry]

S přesměrováním pak například:

 prikaz [přepínače] [parametry] < [vstupníSoubor] > [vystupníSoubor]

Výhody příkazového řádku 
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:

 Operace 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 operace 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)

Uživatelské rozhraní
Softwarová architektura