Hlavní navigace

Hrátky z řádky: mc, tail, host a další

Petr Macek 28. 1. 2008

Podruhé se společně setkáváme u tipů a triků pro unixové systémy a jejich příkazovou řádku. Dnes se podíváme především na několik drobností, které nám ulehčí práci s populárním Midnight commanderem. Poté se více zaměříme přímo na příkazovou řádku a představíme si několik malých, ale užitečných prográmků.

Pod minulým článkem byla poměrně bouřlivá diskuze a spousta čtenářů neváhala a poslala své vlastní triky a nápady. Díky za ně, k některým věcem se vrátíme v dalších pokračováních našeho seriálu.

Midnight commander

Velice pěknou vlastností mc je rychlé hledání souborů v adresáři. V panelu si zobrazíte třeba adresář /etc. Bude nás zajímat soubor hosts. Používat pg down nebo šipky je zdlouhavé. Zmáčkněte alt + s a začněte psát slovo hosts. Listing se přesune na první soubor, který začíná slovem hosts. Někde jde použít i ctrls.

Teď si pomůžeme zkratkou, která byla zmiňována v diskuzi u minulého dílu. Chceme například takhle nalezený soubor zabalit gzipem. Můžeme třeba zkratkou ctrl + o skrýt panely (to je velmi užitečná funkce) a napsat gzip hosts. Pokud máte kurzor (kurzor asi není nejvhodnější výraz – prostě zeleně podbarvený řádek) na požadovaném souboru, stačí napsat jen gzip a potom kombinací alt + enter se do příkazového řádku vloží jméno souboru. Je to výhodné u dlouhých nebo složitějších názvů souborů.

Ctrl + u prohazuje panely. Pokud máte listing mode nastavený stejně na oba panely, nemá moc význam. Když ale máte třeba v jednom panelu full a v druhém brief, může se takové rychlé přehození panelů hodit.

Tady upozorním, že namapování některých klávesových zkratek může být v různých distribucích trošku jinak; ale věci jako ctrl + o jsou, doufám, všude stejně.

Užitečné programy a příkazy

Spousta lidí nezná u příkazu mkdir parametr -p. Představte si, že máte založit adresářovou strukturu /home/ftp/pub/install. V případě neznalosti výše zmíněného parametru vás čeká (za předpokladu, že adresář home existuje):

$ mkdir /home/ftp
$ mkdir /home/ftp/pub
$ mkdir /home/ftp/pub/install

Možná o trochu jednodušeji, když se nejprve přepnete do adresáře /home. Ale jde to ještě snadněji, výše zmiňovaný parametr založí všechny adresáře:

$ mkdir -p /home/ftp/pub/install

Na prohlížení logů je dobrý příkaz tail. Když mu nezadáme žádný parametr, zobrazí posledních 10 řádků souboru. Když chceme víc, zadejte třeba

$ tail -n 40 /var/log/maillog

Jsem líný a už dlouho vynechávám písmenko n a funguje to stejně dobře i bez něj:

$ tail -40 /var/log/maillog

Ale zde asi záleží na vaší distribuci, rozhodně vás k tomu nenavádím. Když čekáme v logu na něco konkrétního, je zbytečné tailovat takto. Zkuste

$ tail -f /var/log/maillog

Tail pak neskončí na konci souboru, ale bude čekat a pokračovat, když je do souboru něco připsáno. Ukončíme ctrl + c. Podobně funguje program head, ale zpracovává začátek souboru.

Příkaz host zná asi každý. Já ho často používám k rychlému zjištění MX záznamů. Dříve se na tuto činnost používal program (a někdo stále používá, objevil se třeba ve Windows 2K a vyšších) nslookup.

pm@minastirith pm $ nslookup
> set type=MX
> domena.cz
Server:         195.250.128.34
Address:        195.250.128.34#53

Non-authoritative answer:
domena.cz       mail exchanger = 12 mail2.ignum.cz.
domena.cz       mail exchanger = 11 mail6.ignum.cz.

Authoritative answers can be found from:
domena.cz       nameserver = ns2.ignum.cz.
domena.cz       nameserver = ns1.ignum.com.

Je to ale trošku zdlouhavé, nejprve spustit, potom zadat set type=MX a potom název domény, třeba domena.cz. Někdo použije novější program host:

$ host -t MX domena.cz

Můžeme však i vynechat parametr. Když zadáte jen

$ host domena.cz

získáte stejný výsledek. Ještě obecně k hostu:

$ host [-t typ_zaznamu] domena [server]

Typ záznamu je asi jasný, potom následuje doména, na kterou se ptáme a můžete nakonec zadat i dns server, kterého se chcete zeptat (v nslookupu se server zvolí takto:  server jmeno.serveru.cz).

Občas se stane že potřebujete najít nějaké slovo nebo číslo a nevíte, ve kterém je souboru. Můžete samozřejmě použít příkaz find, ale také můžete zkusit toto:

$ grep -ri hledane_slovo /etc/*

Příkaz nám vyhledá v adresáři /etc i ve všech podadresářích hledané slovo a vypíše jméno souboru + obsah řádku, kde se vyskytuje. Parametr r nám zajistí rekurzivní procházení adresářů, díky i nerozlišujeme velká a malá písmena. Parametr -n se také může hodit, ve výpisu je potom i číslo řádku. Nemusíme se samozřejmě omezovat jen na slovo, můžeme použít i regulární výraz (parametr -e)

Pro dnešek je to vše. Příště se více podíváme na práci se soubory. Čeká nás jejich vypisování, třídění, spojování a rozdělování. A samozřejmě si představíme další užitečné programy.

Našli jste v článku chybu?

28. 1. 2008 0:13

petris (neregistrovaný)
Pokud nekdo nezna mkdir -p, tak spis nez prepnuti do /home udela: mkdir /home/ftp/{,pub/{,install/}} :-P

28. 1. 2008 1:05

petr_p (neregistrovaný)

tail -ČíSLO je sice přípustný zápis, ale zastaralý. To samé platí ohledně nástroje host, který by měl ustoupit pomůcce dig.

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí