Naredbe za koje (možda) niste znali 7: locate, whereis, whatis, apropos, which
Za ovih pet naredbi smo odlučili napisati jedan članak, jer su pojedinačno prejednostavne i imaju premalo funkcija, a opet su na jedan način povezane. Ovi programi nude nekoliko načina pretrage datoteka, naredbi ili stranica manuala za bilo koju naredbu koja vam je u tom trenutku potrebna.
Ukoliko želite pronaći datoteku ili direktorij (nije bitno sjećate se imena cijele naredbe, dovoljno je znati samo dio naziva te naredbe), možete upotrijebiti naredbu locate:
locate
$ locate peri
/usr/share/something/lang/pt_br/help/enrolperiod.html
/usr/share/something/lang/sv/help/enrolperiod.html
/usr/src/kernel/arch/parisc/kernel/superio.c
Naredba locate pronalazi sve datoteke i direktorije koje u svom imenu imaju niz znakova 'peri'. Naredba rabi malu bazu koja se (obično, zanemarit ćemo ovaj put triggere) generira svaki dan putem crona (konkretna skripta je /etc/cron.daily/find). Sama baza se nalazi u direktoriju /var/cache/locate/locatedb, a generira se putem naredbe 'updatedb'.
Iako će biti u većini slučajeva obnova baze jednom dnevno biti sasvim zadovoljavajuća, mana naredbe locate je nesinhroniziranost sa stvarnim stanjem. Iz tog razloga, bazu možete ručno osvježiti, preko već spomenutih naredbi i skripti:
# /etc/cron.daily/find
ili
# cd /
# updatedb
Osvježavanje traje neko vrijeme (naravno, ovisi o brzini poslužitelja), pa budite strpljivi. Konfiguraciju možete vidjeti u /etc/updatedb.conf, iako nije vjerojatno da ćete tamo tamo trebati išta mijenjati. Za potpune informacije pogledajte stranice manula za naredbe locate, updatedb i locatedb.
whereis
Ukoliko tražite specifično samo naredbu (ili njen izvorni kod) i odgovarajuću stranicu manuala (dakle, neće biti ispisane baš sve datoteke koje odgovaraju upitu), pomoć nudi naredba 'whereis':
$ whereis top
top: /usr/bin/top /usr/share/man/man1/top.1.gz
Naredba ponekad može dati i nepredvidljive rezultate (zbog hardcodiranih vrijednosti unutar programa), ali su i dalje upotrebljivi:
$ whereis apache2
apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/share/apache2
/usr/share/man/man8/apache2.8.gz
Naredba whereis, za razliku od ostalih sličnih naredbi, ne pretražuje pomoću baze, stoga su podaci koje ispisuje aktualni i usklađeni sa trenutnim stanjem paketa na sustavu. Pretragu možete dalje ograničiti putem opcija -b (traži samo binarne, odnsono izvršne datoteke), -s (traži samo datoteke izvornog koda) i -m (traži samo dateoteke stranica manuala). Primjer:
$ whereis -m apache2
apache2: /usr/share/man/man8/apache2.8.gz
whatis
Tradicionalno, whatis se mogla pozivati i preko oblika 'man -f'. Za razliku od naredbe sličnog imena whereis, whatis pretražuje samo u zaglavljima stranica manuala. Zaglavlje stranice manuala, kao što vam je poznato, izgleda otprilike ovako:
POSTFIX(1)
NAME
postfix - Postfix control program
SYNOPSIS
postfix [-Dv] [-c config_dir] command
...
Dakle,ukoliko na brzinu želite znati što koja naredba radi, na naredbenu liniju ukucat ćete ovo:
$ whatis postfix
postfix (1) - Postfix control program
Naredba whatis traži samo cijelu riječ (nema skraćivanje):
$ whatis fail2
fail2: nothing appropriate.
No, uporabom opcije '-r' (od regex, regularni izraz), možemo proširiti popis rezultata:
$ whatis -r fail2
fail2ban-client (1) - configure and control the server
fail2ban-regex (1) - test Fail2ban "failregex" option
fail2ban-server (1) - start the server
apropos
Tradicionalno, ova naredba se rabila kao "man -k".
Naredba apropos, za razliku od whatis, pretražuje cijelo zaglavlje stranice manuala, pa će prikazati sve stranice manuala na sustavu koje u zaglavlju spominju traženu riječ. Ta riječ se uopće ne mora pojavljivati u nazivu programa!
$ apropos postfix
access (5) - format of Postfix access table
aliases (5) - format of the Postfix alias database
body_checks (5) - Postfix built-in header/body inspection
...
Na ovaj način možete u jednom potezu pronaći sve relevantne stranice za neki program, bez gledanja u pojedinačne stranice manuala.
Naredbe whatis i apropos, kao i locate, ispisuju rezultate pomoću indeksirane baze, ali to nisu iste baze. U Debianu se baza za whatis i apropos nalazi u datoteci /var/cache/man/index.db.
Ovo znaèi da baza mora biti osvježena kako bi vaše pretraživanje dalo relevantne rezultate. O ovome se brine cron datoteka, ali slično kao i za locate bazu, indeksiranje možete pokrenuti i ručno:
# /etc/cron.daily/man-db
which
Zadnja s prethodnim naredbama srodna (po nama), je naredba which, koja ne traži ništa po datotečnom sustavu (jednostavno, pretražuje trenutnu stazu, $PATH), nego ispisuje koja će se naredba izvršiti ukoliko je otkucate na naredbenoj liniji:
$ which zic
/usr/sbin/zic
Naredba je korisna ukoliko imate dvije ili više naredbi istog imena, ili želite provjeriti je li naredba uistinu ona za koju mislite da će se pokrenuti u trenutnoj stazi ($PATH-u). Ovo je korisno kad postoje dvije ili više naredbi istog imena (klasičan primjer je naredba "host").
- Inačica za ispis
- Logirajte se za dodavanje komentara
- PDF version