Sedláme Linux, 8. díl: procesy

Už osmé pokračování našeho seriálu přináší tentokrát další pohled na procesy a jejich řízení. Následovat bude popis vyhledávacích nástrojů. Tím završíme základní operace s příkazovou řádkou.

Zabíjení procesů...

V minulé části našeho seriálu jsme skončili povídáním o nástroji kill. Ten slouží k ukončování procesů a úloh. Cílem tohoto článku není přesné vysvětlení detailů toho, jak tento příkaz funguje, ale určité základní obeznámení bychom si projít měli.

Systém nám umožňuje zaslat každému procesu nějaký signál. Tento signál pak upraví chování procesu a tím tedy v konečném důsledku i chování samotného programu. Jestliže použijeme zápis:

kill PID

kde PID je identifikační číslo procesu, bude tomuto procesu zaslán signál TERM, který ho slušně požádá o ukončení práce a "uklizení" (tj. likvidaci dočasných souborů, apod.). Jestliže však proces neuposlechne, můžeme použít trošku "tvrdší" metodu, kterou je zaslání signálu KILL. Tento signál nemůže proces ignorovat a musí ihned ukončit svůj běh. Abychom zaslali procesu tento signál, uvedeme mezi příkazem kill a číslem PID parametr -KILL, případně -9. Signálů, které můžeme procesům zasílat, je mnohem víc, ale z hlediska uživatele nás nemusí příliš zajímat.

Jestliže se v systému vyskytuje více spuštěných procesů pro jednu aplikaci a vy se rozhodnete její běh ukončit, asi raději sáhnete po nástroji killall. Jako parametr zadáváte název aplikace. I zde můžete využívat signály. Zápis pak může vypadat například takto:

killall -9 mc

Vyhledávání souborů

Přejděme teď ale od procesů trošku dál. Co uděláme, když budeme chtít v příkazovém režimu vyhledávat soubory? Na výběr máme pěknou řádku nástrojů...

Vyhledání spouštěcího souboru a manuálové stránky

Pro vyhledání spouštěcího souboru nějakého programu a jeho plné cesty spolu s plnou cestou k manuálové stránce, slouží příkaz whereis. Jako parametr zadáváme název aplikace, tedy například:

whereis perl

Vyhledání aplikace

Abychom nalezli potřebnou aplikaci, tedy například příkazový interpret jazyka Perl, můžeme použít také nástroj which:

which perl

Rychlé vyhledání souboru

Trošku jiné to ale je, když potřebujeme nalézt například obrázek nebo textový dokument, zkrátka nějaký "nespouštěcí" soubor. V tomto případě můžeme využít příkazu locate. Jako parametr mu zadáme název vyhledávaného souboru a potvrdíme klávesou Enter.

Update databáze

Je ale třeba si uvědomit, že příkaz locate ve skutečnosti neprochází disk, ale vyhledává soubor ve svojí databázi, která je odrazem souborové a adresářové struktury disku. Pokud tedy zadáme název souboru, bude tento soubor vyhledáván v databázi a když bude nalezen, vypíše se jeho plná cesta.

To s sebou ovšem přináší jedno riziko - databáze stárne tak rychle, jak dlouho se systémem pracujeme. Když ráno spustíme počítač a pár hodin na něm pracujeme, bude souborová struktura třeba už docela jiná. V případě, že pak budeme chtít vyhledat nějaký soubor, můžeme dostat mylnou informaci.

Je proto nutné provádět pravidelný update této databáze. Ve většině distribucí je její aktualizace nastavena implicitně tak, aby se prováděla například každý den. Pokud to však není váš případ nebo se rozhodnete po větších změnách provést kompletní aktualizaci ihned, pak použijte argument -U (musíte přitom být přihlášeni jako root):

locate -U

Následně budete moci opět libovolně vyhledávat v aktuální verzi databáze.

Vyhledávání procházením disku

Existuje ale ještě jeden způsob, jak vyhledávat soubory - aktivním procházením disku. Žádná databáze, žádné srovnávání, ale klasické procházení jednotlivých adresářů, jak jsme na to zvyklí jinde. Tento způsob je samozřejmě 100% aktuální, ale také mnohem pomalejší, než u příkazu locate.

Pokud chceme vyhledat soubor podle jména, použijeme zápis:

find /home -name soubor.txt

Nejprve tedy specifikujeme adresář, který bude prohledáván. Jestliže budete chtít procházet celý disk, zapište zde pouze /. Následně specifikujeme, že chceme vyhledávat podle jména souboru (-name) a pak už jen uvedeme toto jméno.

Specifikaci kritéria pro vyhledávání nesmíme opomenout, neboť příkaz find umožňuje také vyhledávání podle posledního času změny, vlastníka souboru nebo skupiny. To se může hodit, když manuálně rušíme účet některého uživatele. V takovém případě se totiž zruší jeho domovský adresář (pokud neuvedeme, že jej chceme zachovat), ale jeho soubory jinde v systému zůstanou beze změny. Jednoduše si je tedy vyhledáme příkazem:

find / -user kmartin

A pak už je jen odstraníme...

Můžeme také vyhledávat soubory podle velikosti. K tomu využíváme parametr -size následovaný číselným vyjádřením velikosti v blocích (1 blok = 512 bytů), bytech nebo kilobajtech. Tedy například:

find / -size +300b
find / -size -45000k
find / -size 35b
find / -size 15

První příkaz vyhledá soubory větší než 300 bytů. Druhý nalezne soubory menší než 45000 kilobajtů, třetí vyhledá soubory s velikostí právě 35 bytů a poslední s velikostí přesně 15 bloků (!).

Nebudu vás už trápit příkazovým režimem. Jeho základní ovládnutí je za námi a každý z vás by měl být v tuto chvíli schopen s GNU/Linuxem na základní úrovni pracovat. V příští části se podíváme na Midnight Commander.

Diskuze (87) | Fujifilm uvádí FinePix S5000 Zoom - jako zrcadlovka!

Témata článku: Linux, Poslední update, Signál, Základní nástroj, Proces, Základní struktura, Díl, Term, PID, Byte, Lin

Určitě si přečtěte


Aktuální číslo časopisu Computer

Zachraňte nefunkční Windows

Jak nakupovat a prodávat kryptoměny

Otestovali jsme konvertibilní notebooky

Velký test 14 herních myší