Hrátky z řádky: Hledání s locate, whereis a grep

Petr Macek 31. 3. 2008

Opět se setkáváme u pravidelné pondělní dávky tipů a triků z černé řádky. O hledání souborů by se dalo napsat několik dílu našeho seriálu. Dnes si ukážeme pouze základní programy. Na závěr si představíme program nmap, který umožňuje například prozkoumat TCP/IP porty nebo zjistit, co je v síti živé.

Hledání

Pro příznivce Midnight Commanderu mám dobrou zprávu. I on zvládá hledání. Spousta lidí asi ohrne nos, ale midnight zvládá víc než jen jednoduché hledání. Klávesou F9 do menu, potom nabídka command (nebo rychle klávesouESC a potom ?). Zadáváte adresář, v kterém chcete hledat nebo jej můžete zvolit tlačítkem Tree. Ve jméně souboru můžeme použít zástupné znaky * a ?. Je možné vyhledávat soubory podle jejich obsahu, k tomu je políčko content. Zde je možné používat i regulární výrazy. Když se pak zobrazí výsledek, můžete rovnou soubory prohlížet (klávesa F3) nebo editovat (F4). Když prohlížení/edit ukončíte, dostanete se zpět na seznam vyhledaných souborů. Zajímavou vlastností je tzv. panelizace. Když hledáte například *.mp3 a zobrazí se výsledek, klikněte dole na „Panelize“. Všechny nalezené soubory se zobrazí v jednom okně a můžete je třeba hromadně smazat.

Je to sice šikovná věc, ale linux/unix systémy mají pro hledání daleko mocnější nástroje, jako je treba příkaz locate a find. Podíváme se na ně.

Program locate neprochází adresářovou strukturu, pouze prohledává svou databázi, v které má zatříděné soubory a adresáře. Takže stačí zadat například:

bash-2.05b$ locate umount
/rescue/umount
/sbin/umount
/usr/local/share/swat/help/manpages/smbumount.8.html
/usr/local/share/swat/help/manpages/umount.cifs.8.html
/usr/share/man/man8/umount.8.gz
/usr/src/sbin/umount
/usr/src/sbin/umount/Makefile
...

Výhoda locate je v rychlosti, neprochází se totiž data na disku, jen se prohlíží databáze. Ta se v pravidelných časových intervalech aktualizuje (většinou denně nebo týdně) pomocí programu locate.updatedb (takto se jmenuje ve FreeBSD, v Linuxu je to updatedb). A v tom spočívá i nevýhoda – pokud jste vytvořili soubor před pár minutami, locate jej pravděpodobně nenajde. Při update databáze se indexují jen některé filesystémy; co přesně se indexuje se můžete dozvědět v konfiguraci (ve FreeBSD /etc/locate.rc).

Další utilitou je whereis. Ta vyhledává jen něco a někde:

  • v adresářích, které jsou standardně určené pro spouštění ( /bin, /sbin, /usr/bin/usr/sbin)
  • v adresáři s manuálovými stránkami
  • v adresářích uvedených v proměnné PATH
  • ve zdrojových kódech ( /usr/src)

Můžeme hledat ve všech těchto lokacích:

[pm@minastirith pm]$ whereis umount
umount: /sbin/umount /usr/share/man/man8/umount.8.gz /usr/src/sbin/umount

Nebo například jen v manuálových stránkách:

[pm@minastirith pm]$ whereis -m umount
umount: /usr/share/man/man8/umount.8.gz

Podobně se chová program which, ten ale prohledává pouze adresáře zadané v uživatelově proměnné PATH a hledá spustitelné soubory:

[root@minastirith pm]#  which mount
/sbin/mount

Which zobrazí první nalezený, zároveň je to ten, který je v adresáři v proměnné path uveden nejdříve. Pokud bychom měli například ještě druhý příkaz mount v adresáři /bin, našel by se ten. Pokud chceme vidět všechny nálezy, slouží k tomu parametr -a:

[root@minastirith pm]#  which mount
/bin/mount
/sbin/mount

Již dříve tu bylo zmiňováno prohledávání souborů podle obsahu. Následující příklad najde všechny soubory, v kterých se vyskytuje slovo poklad a nezáleží na velikosti písmen:

grep -ri poklad *

Nmap

Velice užitečná utilitka, běžně se používá ke scanování portů. Tím si můžeme stroj trochu oťukat a zjistit co na něm běží.

$nmap www.mujserver.cz
Starting Nmap 4.20 ( http://insecure.org ) at 2008-03-25 21:52 CET
Not shown: 1683 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
80/tcp   open     http
135/tcp  filtered msrpc
136/tcp  filtered profile
...

A vidíme ftp, ssh, mail a www server. Nmap lze také použít ke zjištění, co je v síti živé:

root@mail ~ # nmap  -sP 192.168.0.0/24

Starting Nmap 4.20 ( http://insecure.org ) at 2008-03-25 22:00 CET
Host 192.168.0.81 appears to be up.
MAC Address: 00:1A:4B:23:D6:F4 (Unknown)
Host 192.168.0.180 appears to be up.
MAC Address: 00:14:38:95:D8:67 (Hewlett Packard)
Host 192.168.0.181 appears to be up.
MAC Address: 00:15:60:E2:F1:F2 (Hewlett Packard)
Host 192.168.0.193 appears to be up.
MAC Address: 00:0F:FE:09:46:6B (G-pro Computer)
Host 192.168.0.253 appears to be up.
Host 192.168.0.254 appears to be up.
MAC Address: 00:1C:C4:A7:E7:14 (Unknown)
Nmap finished: 256 IP addresses (6 hosts up) scanned in 7.977 seconds

Zároveň se nám dle MAC adres snaží napovědět výrobce. I to se může někdy hodit. Pokud nmap nepozná výrobce karty, můžete zkusit například www.coffer.com/mac_fin­d.

Nmap má spoustu funkcí a parametrů, spusťte si jen nmap a zobrazí se malý help. Můžete například provádět UDP scan, scanovat jen vybrané porty. Pokud budete scanovat moc, nemusí se to každému líbit a může se začít bránit – například začne omezovat počet spojení za vteřinu nebo se s vámi přestane bavit úplně.

Lupa.cz: Babiš: nevím o návodu, jak obejít blokování webů

Babiš: nevím o návodu, jak obejít blokování webů

120na80.cz: Vyzrajte na návaly a pocení v přechodu

Vyzrajte na návaly a pocení v přechodu

Podnikatel.cz: Eshopy s dopravou zdarma. Zválcují ostatní?

Eshopy s dopravou zdarma. Zválcují ostatní?

Vitalia.cz: Tetanus v USA – i po odřeninách

Tetanus v USA – i po odřeninách

Lupa.cz: Jak EET vidí ajťák aneb Drahá vražda UX

Jak EET vidí ajťák aneb Drahá vražda UX

DigiZone.cz: Živí mrtví budou na AMC koncem srpna

Živí mrtví budou na AMC koncem srpna

DigiZone.cz: Konec geoblokace online médií?

Konec geoblokace online médií?

Vitalia.cz: Mražené ryby z Makra byly falšované

Mražené ryby z Makra byly falšované

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

DigiZone.cz: ČT neskončí s nízkým rozlišením podle plánu

ČT neskončí s nízkým rozlišením podle plánu

DigiZone.cz: DAB+ versus FM, ČRo a ČRa proti APSV

DAB+ versus FM, ČRo a ČRa proti APSV

120na80.cz: Zjistěte, zda je vaše klíště infikované

Zjistěte, zda je vaše klíště infikované

Lupa.cz: Přenos hokeje padal kvůli útoku, tvrdí O2

Přenos hokeje padal kvůli útoku, tvrdí O2

Lupa.cz: Nová podoba Instagramu? Katastrofa

Nová podoba Instagramu? Katastrofa

Podnikatel.cz: Rošáda v živnostech. Týká se vás?

Rošáda v živnostech. Týká se vás?

Vitalia.cz: Syndrom PC vidění: stačí dvě hodiny denně

Syndrom PC vidění: stačí dvě hodiny denně

DigiZone.cz: Šlágr TV dostala pokutu 100 000 Kč

Šlágr TV dostala pokutu 100 000 Kč

Lupa.cz: Zaplatíme ti, když ti seženeme práci

Zaplatíme ti, když ti seženeme práci

Root.cz: Zákon o hazardu je v rozporu s ústavou

Zákon o hazardu je v rozporu s ústavou

Vitalia.cz: SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí