Whereis

From ICO wiki

Autor

Joonas-Tanel Kessel A21

Sissejuhatus ja ülevaade

(1) Järgnevas artiklis on ära kirjeldatud käsk nimega whereis ehk kus on. Kasutatakse eelkõige binaarkoodi, lähtekoha- ja manual-failide otsimiseks süsteemist. Whereis-i kasutades võetakse otsitavalt sõnelt ära kõik faili-laiendid, mis pruugivad seda otsingut segada. Seejärel proovib whereis käsk leida otsitavat sõnet Linux süsteemist. Tegemist on lihtsa käsuga, mida on ka lihtne kasutada tänu lisatavatele võtmetele. Käsk üritab kasutada oma otsingus $PATH ja $MANPATH keskkonna muutujaid. Kõige lihtsam viis, et teada saada mis teid whereis käsk kasutab on lõppu lisada -l operaator. Sellisel viisil kuvatakse välja teed, miskaudu otsiti dokumenti või kausta.

Kuigi süsteemilt oodatakse tihti perfektset tagasisidet, tagastab käsk tihti vähem või rohkem kui vajati. Näiteks ei tagasta käsk programmi asukohta arvutis, kuhu ei ole lähtekood peale installeeritud. Mõnede käskude puhul pruugib juhtuda, et ei tagastata käivitatavat faili. Põhjuseks võib olla otse Shell-ile ülesehitatus. Juhul, kui ei leita otsingutes midagi ühegi võtme kohta, ei tagastata ka otsingutulemusi. Kui leitakse mitmeid vasteid, tagastatakse kõik need whereis-i poolt. Whereis käsuga otsides tuleb tähele panna asjaolu, et tehes otsinguid, ei ole kõikide failide puhul võimalik rakendada kõiki võtmeid.

Käsk on mõeldud eelkõige juurkasutaja õigustega kasutajale, kes otsib süsteemist vajaminevaid kolme tüüpi faile(manual, lähtekoha- ja binaarkoodi failid). Whereis-i kasutamisel tuleb eelnevalt tutvuda Linuxi põhimõistetega nagu "täispikk tee" ja "suhteline tee". Samuti on kasutajal vajalikud teadmised ka failitüüpide ja õiguste osas. Whereis on oma olemuselt küll lihtne kasutada aga ilma eelnevate teadmisteta ei ole selle tagastusinfoga suurt midagi peale hakata.

Whereis käsk on üks osa util-linux paketist, mis on saadaval Linux Kernel Archive-ist, järgneval FTP-lingil- ftp://ftp.kernel.org/pub/linux/utils/util-linux


Käsu formaadid

Whereis-i puhul on võimalik otsida nii ilma, kui ka koos võtmega(2).

whereis [-valikud]
whereis [otsitav sõne ilma võtmeta]
whereis -b[otsitav sõne võtmega]

Whereis süntaks

whereis [käsklus/command].
whereis programm.
whereis [valikud] programm
whereis BMS kaust e. directory -f käsklus

Näited whereis kasutusest

Whereis kasutamine failide otsimiseks, kus näitena otsime faili (2)
whereis  linux
Whereis kasutamine binaarfailide otsimiseks, kus näitena otsime "linux" binaarfaile
whereis -b linux

Siinkohal tuleb tähele panna asjaolu, et binaarfailide otsimiseks lisandub käskluse enda järele "-b"


Binaarfailid piiramine kaustades

Selle tõkisega on võimalik piirata kindlate kaustadega binaarfailide otsimist nendes kaustades

Whereis kasutamine juhendifaiide otsimiseks, kus näitena otsime "linux" juhendifaile
whereis -m linux

Siinkohal tuleb tähele panna asjaolu, et juhendifailide otsimiseks lisandub käskluse enda järele "-m"

Whereis kasutamine lähtekoodi otsimiseks, kus näitena otsime "linux" lähtekoodi
whereis -s linux

Siinkohal tuleb tähele panna asjaolu, et lähtekoodi otsimiseks lisandub käskluse enda järele "-s"

Ebaharilikud failid ja nende otsimine

Ebaharilikeks failideks nimetatakse just neid faile, millel on rohkem kui üks sisestus selle faili kohta. Järgnev näide näitab kuidas kasutada whereis käsklust ebaharilike failide otsimiseks.

whereis -m -u *


Whereis kasutamisest kaustapiirangutega (3)

Binaarfailide otsimise limiteerimine kindlate kataloogidega

Käsu järele kirjutatakse tühikutega eraldatud kaustad

whereis -B nimekiri piiravatest kaustadest


Juhendifailide otsimise limiteerimine kindlate kataloogidega

Käsu järele kirjutatakse tühikutega eraldatud kaustad

whereis -M nimekiri piiravatest kaustadest
Lähtefailide otsimise limiteerimine kindlate kataloogidega

Käsu järele kirjutatakse tühikutega eraldatud kaustad

whereis -S nimekiri piiravatest kaustadest
Failide kustutamine nende leidmisel Whereis-iga

Kutstutab kausta, mida whereis käsuga ette kirjutati. Oluline on meeles pidada, et saab kasutada vaid operaatoritega -B, -M või -S

whereis -M -f
Failide otsimiseks kasutatud teekondade kuvamine -l käsu abil.

Võimalik kasutada ka ilma operaatoriteta (-M, -B, -S), kus viimasel juhul jäetakse välja "hard-coded" teekonnad.

whereis [-M] -l


Näide mitme võtme kasutamisest Whereis käsu juures (4)

Toon näitena ülesande, kus proovin leida /usr/bin kataloogist kõik dokumendid, mida ei ole dokumenteeritud /usr/man/man1 kataloogis või oma source-i /usr/bin kataloogis.

Kõigepealt sisenen kataloogi täispika teega

cd /usr/bin

Seejärel kirjutan käsu, et otsida kataloogist käsuga ebaharilikke faile, mis on juhendifailid ja lähtekoodis.

whereis -u -ms

Lisan käsule otsa veel operaatoreid ja kaustu, kus otsin lisaks eelnevale ka piiranguga juhendifaile kaustast /usr/man/man1

whereis -u -ms -M /usr/man/man1

Lisan veel ühe operaatori koos piirava kaustaga, kus viimasest otsin lähtekood, kaustast /usr/src/ -f. Lõpetan käsu *-operaatoriga et kuvataks kõik andmed

whereis -u -ms -M /usr/man/man1 -S /usr/src -f *



Kokkuvõte

Whereis käsk on eelkõige mõeldud 3 tüüpfaili otsimiseks UNIX-tüüpi operatsioonisüsteemidest. Käsule on võimalik juurde liite erinevaid võtmeid ja piiranguid, mis annaksid täpsemaid tulemusi kindlate kaustade või failide otsimisel. Lisaks sellele kui otsitakse teada-tuntud faili aga asukoht on teadmata, saab otsida ka ebaharilike faile (5). Whereis käsul on ka mõned endapoolsed piirangud. Nimelt kõiksugused failid, mis on SHELL-i ülesehitatud, ei tule otsingutulemustes välja ja jätab kasutaja teadmatusse. Isiklikult leian, et Op. süsteemide ja administreerimise kursuse raames on käsk piisavalt huvi tekitav ja aimu andev. Selle käsu raames artikli kirjutamine ja üldse referaadi teema valik millegi tundmatu osas annab Unixi põhiste käskude ja käsurea võimaluste kohta veelgi rohkem infot. Whereis käsu puhul on pelgalt lugedes, ilma praktilise lähenemiseta raske mõista selle tegelikku olemust. Arvan, et segadust pruugib tekitada asjaolu, et whereis mitte ei otsi faile konkreetselt vaid kuvab kasutajale selle asukoha ning seda täispika teena.

Kasutatud kirjandus

(1) http://www.thegeekstuff.com/2013/04/linux-which-whatis-whereis

(2) http://www.cyberciti.biz/faq/unix-linux-whereis-command-examples-to-locate-binary

(3) http://linux.about.com/library/cmd/blcmdl1_whereis.htm

(4) http://man7.org/linux/man-pages/man1/whereis.1.html

(5) http://www.linfo.org/whereis.html