Svobodný software 19 – Windows nebo příkazovou řádku?

Jak kvalitně se dá pracovat v příkazové řádce? Dokáže textová konzole plně nahradit grafická okenní rozhraní? Je to složité? Má to nějaké výhody? Jak je těžké ovládnout klávesnici?
Všem známý Běžný Franta Uživatel má v odpovědi na tyto otázky zřejmě jasno. Možná, že by ale zapochyboval, kdybychom mu předvedli příkazovou řádku v praxi. Hodně lidí má tohle spojené s DOSem, který poskytoval při práci velmi málo komfortu, a vzpomíná si, jak je potěšily okenní systémy. Odsuzovat samotnou myšlenku příkazové řádky kvůli dřívější negativní zkušenosti s jednou konkrétní implementací je však poněkud zavádějící.

Všichni víme, že myšlenka příkazové řádky není nijak revoluční, ale že to byla vzhledem k vybavení a výkonu počítačů ve své době nutnost. Dnes již tu taková nutnost není a můžeme klidně používat i grafické okenní systémy jako je X Windows+GNOME/KDE/..., jako jsou Microsoft Windows, MacOS a další. Na místě je tedy otázka: „existuje nějaký důvod proč používat příkazovou řádku z čistě praktického hlediska, když nejsme omezeni technikou?“ Má odpověď zní jednoznačně „ano.“

Ano, vyplatí se to, ale... je zde několik problémů. Ten snad největší bych viděl v tom, že je potřeba poměrně dobře ovládat klávesnici. Nedovedu si představit, že bych dával přednost příkazové řádce, pokud bych ťukal do klávesnice jedním prstem. Chtěl bych jen podotknout, že naprosto nechápu důvod, proč se lidé nesnaží naučit s klávesnicí pracovat. Sám jsem si dlouho myslel, jak je to složité a že na toto nechci plýtvat časem. Argument o plýtvání časem je naprosto mimo, protože – pokud to ještě nevíte – prozradím vám sladké tajemství. Naučit se alespoň základy psaní všemi deseti prsty (za základy považuji psaní písmen, číslic a diakritických znamének bez koukání na klávesnici) je otázka několika odpoledne strávených u elektronického výukového programu. Ušetřený čas se asi spočítat nedá.

Nechme prozatím problémů a podívejme se, jak taková práce s příkazovou řádkou vypadá. Pojmu ji spíše jako demonstraci možností než jako nějaký „kurz,“ to není cílem tohoto seriálu.

Po přihlášení na mě vypadne takovýto prompt:

[hanke@chopin hanke]$

hanke@chopin můžeme číst jako „uživatel hanke na počítači chopin“, druhé slovo znamená aktuální adresář. Mohlo by se zdát divné, že jsme v adresáři hanke, můžeme to tedy rychle objasnit.


[hanke@chopin hanke]$ pwd

Pokud tento příkaz, jehož funkcí je vypsání cesty k aktuálnímu adresáři potvrdíme, zjistíme, že se nacházíme v

/home/hanke

čili v domovském adresáři, který se logicky jmenuje stejně jako uživatel.

Příkaz pwd se od většiny základních příkazů trošku liší. Má totiž tři písmena. To by se mohlo zdát legrační, ale je to tak. Většina základních příkazů má pro urychlení práce pouze písmena dvě.

[hanke@chopin hanke]$ ls

Uvidíme výpis všech souborů v adresáři. Možná vás překvapí další „fíčura,“ výpis je totiž barevný. Modře jsou adresáře, žlutě spustitelné programy, růžově zas archivy. Orientace v seznamu je pak podstatně snadnější.

Možná vám něco uteklo mimo obrazovku. To nevadí. Většinou bohatě postačí stisknout SHIFT+PageUP a vrátit se SHIFT+PageDOWN. Pokud byl výstup příliš dlouhý (což se stává vzácně), můžete použít rouru do nějakého programu, který vám bude výsledek zobrazovat po částech. Takovým programem je třeba less:

[hanke@chopin hanke]$ ls | less

Less vám dovolí se ve výstupu programu pohybovat nahoru a dolů obyčejnými kurzorovými šipkami.

Jména příkazů jsou logická a tak se snadno pamatují. Stejně jako ls znamená list (seznam), tak cd znamená change directory (změň adresář), rm znamená remove (odstraň) a např. mv znamená move (přesuň). Mimochodem less se překládá jako „méně,“ což je přesně to, co jsme potřebovali. Opravdu nic složitého.

Dobrá, potřebujeme editovat soubor vyrocni_zprava.tex. K editaci textu můžeme použít vi, vim, emacs a další. Dobrodružné povahy jistě ocení „jediný opravdový a standardní textový editor“ Ed. My zůstaneme u vim.

[hanke@chopin hanke]$ vim vyro[TAB]

Proč pouze 4 písmena a stisk tabelátoru? Klávesa TAB má totiž v příkazové řádce zvláštní funkci – doplňuje. Kdekoliv je to u názvů programů, souborů či adresářů možné, automaticky doplní celý název. To se stane pouze v případě, že máme v daném adresáři jen jeden soubor začínající písmeny vyro. Kdybychom měli i nějaké jiné, třeba vyroky_matematicke.html, tabelátor by pouze pípnul, ale nic by neudělal. Je to logické – neví který ze dvou souborů má vybrat. My si možná ale nepamatujeme, jak se přesně ten náš jmenuje. Nevadí, nebudeme to mazat a psát ls, ale jednoduše stiskneme tabelátor ještě jednou. To nám vypíše všechny možnosti, jak můžeme dále pokračovat. V našem případě vypíše:

vyrocni_zprava.tex
vyroky_matematicke.html

V řádku ale zachová náš rozepsaný text, takže můžeme pokračovat. Doplníme písmeno ,c` a stiskneme tabelátor k definitivnímu doplnění. Potvrdíme ENTER a otevře se nám editor vim s načteným souborem.

Když máme dokončeno potřebné editování, stiskem klávesy : se přeneseme do příkazového řádku editoru vim a píšeme:

w

Vidíme, že vim používá dokonce jednopísmenné zkratky. Přesto si ale zachovává logiku. Písmeno w je od slova write, čili zapiš. Pokračujeme:

!pdfcslatex vyroc[TAB]

Přímo z vimu spustíme pdfcslatex (klon TeXu) s naším souborem jako parametrem. Opět napíšeme jen začátek a necháme automaticky doplnit. Pokud proběhla kompilace úspěšně, opustíme editor.

:q

Písmeno q znamená anglické quit, česky ukončit. Nemusíte si ani nic příliš pamatovat. Jaké písmeno byste třeba zvolili pro přepnutí na jiný soubor? (nápověda – soubor se anglicky nazývá „file“ :)

Dobrá, chtěli bychom si vytisknout vysázený soubor. Použili jsme pdfcslatex, čili českou mutaci LaTeXu generující PDF. Na tiskárnu ale potřebujeme doručit Postscriptový soubor (.ps). Otázka pro čtenáře: „Na základě logiky, jaký příkaz byste zadali, pokud si ho nepamatujete nazpaměť?“

[hanke@chopin hanke]$ pdftops vyroc[TAB].pdf vyroc[TAB].ps
[hanke@chopin hanke]$ pdf2ps vyroc[TAB].pdf vyroc[TAB].ps

Oba dva příkazy fungují. Všimněte si, jak jsme nyní použili tabelátor. Program sice neví, jakou koncovku chceme (máme v adresáři .tex a .ps), ale doplní nám alespoň tu část, kterou zná.

Zbývá již jen poslat jej na tiskárnu.

[hanke@chopin hanke]$ lp vyroc[TAB].ps

Příkaz lp je zkratkou slov local printer, v češtině místní tiskárna.

Dost ukázek, mohli bychom pokračovat donekonečna. I ostatní příkazy jsou pojmenované podobně logicky a s troškou odvahy je můžeme klidně hádat. To všechno by ale stejně bylo na moderní systém málo. Většina ze čtenářů je asi zvyklá na to, že něco jako multitasking v příkazové řádce je buď nesmysl, nebo extrémně složitá záležitost, že na multitasking jsou různá Windows (X, MS). Proto je asi na GNU velmi potěší možnost přepínat mezi několika konzolami (standardně 6, ale je možné nastavit více). To se děje prostou klávesovou zkratkou ALT-Fx. Na každé konzole můžeme pracovat naprosto nezávisle, jako by to byla v grafickém režimu okna.

Práci s příkazy velmi ulehčuje i možnost procházet historií příkazů (tedy příkazy dříve zadanými) pomocí šipek nahoru a dolů. Editovat text na řádce můžete samozřejmě také s pomocí šipek doprava a doleva a nemusíte jej celý mazat, pokud uděláte překlep. Nebudu již mluvit o propracovanosti dokumentace a práce s ní v příkazové řádce, protože tomu jsem se věnoval v minulém dílu seriálu.

Vrátím se tedy k otázce, zda má smysl pracovat v textovém režimu. Nechme za sebou ty všemožné DOSy a uvažujme opravdu propracovanou příkazovou řádku jako je třeba ta v GNU/Linuxu a v jiných Unixech. Nevím, jak pro Běžného Frantu Uživatele, ale mně výrazně urychluje a zjednodušuje práci. Komunita svobodného software nikoho nenutí používat příkazovou řádku, pro takové uživatele máme Gnome, KDE, Enlightenment, WindowMaker a další rozhraní běžící nad X Windows. Spíše ji zde prezentuji jako jednu z výhod, jako jednu z možností, a to velmi dobrých možností.

Pokud umíte s příkazovou řádkou správně manipulovat, je to daleko lepší, než se strefovat ve Windows do různých ikonek a tlačítek. Samotná manipulace s myší je velmi pomalá a už z principu člověk daleko rychleji napíše dané na klávesnici. Existuje ale ještě druhá výhoda, totiž že nepotřebujete přehmatávat mezi myší a klávesnicí. To se zdá spíše jako úsměvné než vážně míněné, ale těžko můžete srovnávat, když nemáte možnost posoudit.

Ačkoliv se to nemusí zdát, příkazová řádka se dá využít i k prohlížení obrázků (s využitím SVGALib), přehrávání MP3 a Ogg, k poslouchání CD. Existuje několik velmi dobrých poštovních klientů a také plnohodnotný webový browser Lynx (Umí všechno, co by měl pro své určení umět. Frames, tabulky, obrázky a jiné grafické prvky nejsou cílem tohoto prohlížeče.) Používám téměř výhradně lynx, pouze pokud se čtenáři rozčilují nad reklamou na Živě :), tak se podívám o čem je řeč, abych nebyl úplně z obrazu :)) Když prahnete po frames a po tabulkách, použijte Links. FTP, SSL, Cookies apod. je pro oba prohlížeče samozřejmostí. Rozhodně se v příkazové řádce nepohybuji v nějakých neandrtálských technologiích, ale mám k dispozici většinu toho, co ostatní pod grafickými rozhraními.

A když už potřebuju něco ve Windows (prohlédnout si video, udělat nějakou grafiku, podívat se na nejnovější hyper-super-java reklamu na živě.cz), tak mi nic nebrání napsat

[hanke@chopin hanke]$ startx

Přeji šťastné lskování, cdčkování, vičkování a rmčkování.

Diskuze (115) Další článek: MusicCity ve sporu se zábavním průmyslem

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,