Triky pro začátečníky (2)

20. 7. 2000
Doba čtení: 4 minuty

Sdílet

V dnešním díle budeme pokračovat prací v shellu - přesněji v jeho nejpoužívanější variantě bashi. Ovšem většina tipů by měla fungovat i v ostatních shellech, jako je například ksh nebo csh. Pokud ne, tak se podívejte do jejich manuálových stránek (man ksh).

Podívejme se nejdříve na expanzi parametrů. Představte si, že hledáte nějaký soubor ve svém domovském adresáři. Nevzpomínáte si přesně na jeho název, ale pamatujete si, že začínal písmenem a. Pro jednoduchost zapomeňme na existenci příkazu find, který by zkušenějším uživatelům značně ulehčil práci. Výpis všech souborů v aktuálním adresáři získáme použitím příkazu ls. Jenže nás zajímají soubory začínající písmenem a. Jak na to? Jednoduše. Napíšeme příkaz ls a* a je to. Hvězdička totiž zastupuje libovolný řetězec a to i nulové délky. Takže výraz a* zachytí slova a, , ahojabrakadabra.

Abyste si vše mohli krásně procvičit, vytvoříme si testovací soubory. Nejdříve si otevřete nějaký terminál. V něm napište mkdir test. Takto jste si vytvořili adresář test. Pak do něj vejděte příkazem cd test. Nyní vytvořte testovací soubory příkazem touch alena anketa adresy binary.xpm bitmapa.tgz eva.txt. Příkaz touch mění údaj o posledním přístupu na zvolený soubor a pokud tento soubor neexistuje, vytvoří jej.

Hvězdička ale nemusí být jen na konci výrazu. Může se vyskytovat kdekoliv a nic nám nebrání ji použít vícekrát. Příkaz ls e nám zobrazí soubory adresy alena anketa eva.txt. U prvního souboru první hvězdička zachytí al, e jsme určili explicitně a na je zachyceno druhou hvězdičkou. Podobně u zbylých souborů. Snad vás může zarazit eva.txt, ale u tohoto souboru si vzpomeňte, že hvězdička nahrazuje i řetězec o nulové délce.

Dalším zástupným znakem je otazník. Ten vám nahradí libovolný jeden znak. Takže pokud nevíte, zda hledáte Alenu či Ilonu, zkuste příkaz ls ?l?na. Hned budete vědět, s kým jste to měli čest se seznámit :-). Možná trochu reálnější případ: už jste si určitě všimli, že Linux (stejně jako všechny ostatní Unixy) rozlišuje malá a velká písmenka. Takže Alena a alena jsou dva rozdílné soubory. Pokud tedy víte, že hledáte Alenu a nejste si jisti, jaké počáteční písmenko jste použili, zkuste příkaz ls ?lena.

Dalším trikem jsou hranaté závorky. Ty mají podobný význam jako otazník. Oba nahrazují pouze jediné písmeno. Jenže otazník si nevybíral a zastupoval všechny znaky, kdežto závorky zastupují jediný znak ze seznamu písmen, která jste uzavřeli do hranatých závorek. Například ls [ae]* vám zobrazí všechny soubory začínající písmeny a nebo e. Jasné? Někdy by bylo moc dlouhé vypisovat všechna písmena, která chcete použít. Pokud tato písmena (nebo aspoň jejich části) tvoří posloupnost, můžeme si ulehčit psaní (a zpřehlednit příkaz) použitím pomlčky. Napíšeme první znak, za něj ihned pomlčku a nakonec umístíme poslední znak řady. Takže [a-e] je totéž jako [abcde]. Vyzkoušejte si to třeba na příkazu ls [a-e]*. A mimochodem, pokud potřebujete použít pomlčku jako obyčejný znak, dejte ji na začátek nebo konec seznamu.

Dejme tomu, že chcete zobrazit všechny soubory, které nemají na začátku svého názvu písmeno a. Opravdu se vám chce vypisovat všechny možnosti? Mě ne. Raději použiji tento příkaz: ls [^a]*. Znak stříšky na začátku seznamu totiž působí jako negace výrazu. Takže ^a znamená libovolný znak kromě písmene a.

Velice užitečným zástupným znakem je i tilda, pokud ji umístíme na začátek výrazu. Obecně se totiž stará o cestu k uživatelským domovským adresářům. Pokud je použita samostatně a nenásleduje za ní text (kromě lomítek), má význam vašeho domovského adresáře. Viz ls ~, který vám vypíše obsah vašeho domovského adresáře. Pokud ale hned za tildu umístíte přihlašovací jméno některého vašeho kolegy, výraz se vám expanduje do cesty k jeho domovskému adresáři. Například ~literakl. Tento trik se vám bude hodit, když budete potřebovat něco zkopírovat z/do vašeho adresáře, zatímco jste někde hluboko na vašem disku. Ať jste kdekoliv, příkaz cp *.png ~/temp zkopíruje všechny obrázky typu PNG do adresáře temp ve vašem domovském adresáři.

Přesměrování standardního vstupu a výstupu si necháme na příště, raději přeskočím ke slíbené virtuální konzoli. Pokud sedíte fyzicky u počítače s Linuxem, máte k dispozici několik konzolí, na kterých můžete pracovat. Nebudu se snažit vysvětlit, co to konzole je a místo toho vám ukážu, jak s ní pracovat. Pokud nepoužíváte Calderu či Corel Linux, určitě jste si všimli, že během startu vám naskakuje spousta řádek s informacemi. Právě toto je konzole číslo jedna. Až se Linux celý nabootuje, pak se buď přepne do grafického režimu a nebo se vám objeví výzva k přihlášení. Pokud jste v grafickém systému XWindow, na konzoli se dostanete současným stiskem kláves Control, Alt a F1.

bitcoin_skoleni

Nyní se přihlašte a začněte něco dělat. Třeba si vypište obsah domovského adresáře. Teď vás ale napadne, že chcete dělat něco úplně jiného, jenže nechcete přijít o rozdělanou práci. Pod dosem byste měli smůlu a museli byste si vybrat. Ne tak pod Linuxem. Prostě stiskněte Alt a F2. A máte k dispozici další konzoli, kde můžete začít pracovat znovu nezávisle na ostatních konzolích. Prostě Linux je ideální pro nás roztěkané :-). Takových konzolí (virtuálních přístupových bodů k počítači) je v Linuxu obvykle šest až osm, přičemž poslední slouží pro grafický režim. Přepíná se mezi nimi pomocí kláves Alt a FX, kde X je pořadové číslo virtuální konzole. Druhou možností je je současný stisk klávesy Alt a šipky doleva či doprava. Pokud se chcete vrátit zpátky do X Window Systému, zkuste Alt a F7. Pokud to nepomohlo, buď jste ty Xy ještě nespustili nebo jsou umístěny na jiné pozici a pak nezbývá než použít metodu pokusu a omylu. Pokud chcete naopak přepnou z Xkek na jinou konzoli, použijte Control Alt Fx.

To je prozatím vše, příště si povíme něco o použití prostředního tlačítka myši :-).

Autor článku