Retsisin nats käskude juhendit Dreamile kohasemaks.
Sissejuhatus
Tegelikult on alustamiseks vaja teada vaid vähest hulka käskusid - just neid, mida me allpool kirjeldame. Kui Sa masinas juba iseseisvalt toime tuled, siis saad käskude kirjeldusi alati uurida --help võtme abil.
UNIXi käskudel on mõnikord arusaamatud nimed ning maksimaalselt lühike süntaks. Tehakse vahet suurte ja väikeste tähtede vahel. Enamik käske sisaldavad siiski vaid väikesi tähti. Käsu järele lisatakse võtmeid, mis täpsustavad käsu toimet. Võtmetele eelneb tavaliselt miinusmärk. Käsu üldkuju on selline:
käsk -võtmed parameetrid
Enamiku käskude taga tohib olla rohkem võtmeid kui üks. Samuti võivad võtmed üldse puududa. Käsureale tohib võtmeid üksikult välja kirjutada (käsk -1 -2 -3 ...), kuid samahästi on lubatud ka võtmed kokku kirjutada (käsk -123 ...).
Lühivõtmed on tavaliselt ühe miinusmärgiga. Lühivõtmeid iseloomustab üksik sümbol miinusmärgi järel. Uuemal ajal kasutatakse ka pikemaid, kahe miinusmärgiga võtmeid, kus võtme nimetus on tavalise sõna pikkune (--help näiteks).
Failide ja kataloogide nimed
UNIXil on tavaline puukujuline failisüsteem. Iga faili või kataloogi saab adresseerida kahel eri moel:
- 1) absoluutne tee (alates puu juurest), mis algab kaldkriipsuga ("/")
2) suhteline tee, lähtudes kohast, kus Sa ise parasjagu failipuus paikned.
Näiteid:
.
punkt tähistab seda kataloogi, kus Sa parasjagu oled (current directory)
..
kaks punkti tähistavad üks tase ülevalpool paiknevat kataloogi (parent directory)
/bin/ls
see on käsu ls absoluutnimi
alamkataloog
praegusest kataloogist aste allpool paikneva alamkataloogi tähistus
../üks_teine_kataloog
käesolevaga paralleelne (ühist vanemat omav) kataloog
~
Sinu kodukataloog
.miski_fail
peidetud, punktiga algav fail, millised enamasti sisaldavad mingi programmi alghäälestusi ja paiknevad Sinu kodukataloogis.
Töö failidega
Failidega töötamisel on mugav kasutada asendussümbolit (? üksiku märgi ja * mitme märgi asendajana). Ole ettevaatlik asendussümboliga kopeerimisel, kustutamisel või ümbernimetamisel, sest UNIX kirjutab samanimelise faili üle vähimagi hoiatuseta.
cat failinimi
tuua ekraanile faili failinimi sisu
head failinimi
tuua ekraanile faili failinimi 10 esimest rida. Kui võtmeks panna number n, siis tuuakse ekraanile n esimest rida sellest failist, näiteks head -20.
tail failinimi
tuua ekraanile faili failinimi 10 viimast rida. Kui võtmeks panna number n, siis tuuakse ekraanile n viimast rida sellest failist, näiteks tail -20.
more failinimi
tuua fail nimega failinimi ekraanile lehekülgede kaupa. Analoogilise toimega on käsud less ja pg.
cp nimi uus_nimi
teha failist nimi (või kataloogist rekursiivselt) koopia nimega uus_nimi.
dd infile outfile
iseäralik kopeerimiskäsk, mis kopeerib faile madalal bititasemel.
mv vana_nimi nimi
annab failile vana_nimi uue nime nimi või nihutab selle teise kataloogi (nimi/vana_nimi).
rm nimi
kustutab faili nimega nimi. -i võtme puhul küsitakse siiski enne luba.
find kataloog avaldis
otsib failipuus kataloogist kataloog allapoole faile, mis rahuldavad avaldise avaldis tingimusi. Kõige lihtsam avaldis on -name otsisõna. Üldiselt on find väga võimsa, kuid keerulise süntaksiga käsk
ln failinimi uus_nimi
lingib uue faili uus_nimi vana failiga failinimi. Link on siiski vaid viide faili asukohale, mitte kopeerimine.
vi
tekstiredaktor, mille abil on võimalik muuta tekstifaili sisu.
Töö kataloogidega
mkdir nimi
luua kataloog nimega nimi
rmdir nimi
kustutada kataloog nimega nimi (vaid juhul kui see on tühi)
cd nimi
siseneda kataloogi nimega nimi
pwd
teatab, kus kataloogis Sa hetkel asud.
ls nimi
näitab kataloogi nimi sisu. Kui parameeter puudu, siis selle kataloogi sisu, kus Sa hetkel viibid. Käsul on hulk võtmeid (-a näitab peidetud faile, -l annab täiskujul kataloogilistingu)
Muutujad
Shelli ja programmide käitumine oleneb suuresti (keskkonna)muutujatest. Bourne'i shellis märgitakse muutujate nimesid läbiva suurtähega. Shell on programm, mis korraldab dialoogi kasutaja ja süsteemi vahel. Eri tõugu shelle on ehk kümmekond, kõige levinum on Bourne'i shell sh. Muutuja lugemisel kasutatakse tema nime ees $ märki.
echo $MUUTUJA
esitab muutuja MUUTUJA väärtuse
MUUTUJA=väärtus
omistab muutujale MUUTUJA väärtuse väärtus (Bourne'i shell ja sarnased)
export MUUTUJA
ekspordib eelnevalt määratud muutuja keskkonnamuutujaks (Bourne'i shell).
set
näitab kõiki defineeritud muutujaid.
env
näitab kõiki defineeritud keskkonnamuutujaid.
which käsk
otsib $PATH muutuja ulatuses käsku ning näitab selle absoluutnime
Shelli muutujad on olemuselt stringmuutujad, vaid erikonstruktsioonidega on võimalik neid kasutada kui arvmuutujaid.
Käsud ja protsessid
Käsku saab käivitada kahel erineval moel - nn esiplaanil ja tagaplaanil (foreground ja background). Esimesel juhul loetakse standardsisendiks klaviatuur ning standardväljundiks ekraan. Teatud puudusena on siis klaviatuur käsu lõppemiseni hõivatud. Käsu surumisel backgroundi see seos kaob ning klaviatuuri saab edasi kasutada. Käsu käivitamiseks tagaplaanil lisatakse käsu lõppu &-märk (ampersand, and). Võrdlus:
ls -al
täidetakse esiplaanil (foreground)
newcamd &
täidetakse tagaplaanil (background)
Mis viisil käsk ka ei käivitataks, süsteem omistab sellele alai unikaalse protsessi numbri (process ID).
kill n
tapab protsessi numbriga n (see on pöördumatu tegevus)
kill -9 n
tapab jõuga protsessi numbriga n
fg n
tõstab protsessi n esiplaanile tagasi
Kõiki protsesse saab uurida ja juhtida järgmiste käskudega:
ps
loetleb konkreetse aknaga (ekraaniga) seotud protsessid
ps -ef
loetleb üles kõik masinas toimivad protsessid (System V käsk)
CTRL+Z
peatab esiplaanil käivitatud käsu. Õigem oleks rääkida suspend-signaalist (vt man stty), mis tõepoolest peaaegu alati on defineeritud kui CTRL+Z
bg
surub peatatud esiplaaniprotsessi tagaplaanile
Suunamine ja toru
Igal käsul on 3 kindlaksmääratud suhtluskanalit: standardsisend (standard input), millest käsk võtab oma andmed, standardväljund (standard output), kuhu käsk kirjutab oma tulemused ning veel veavoog (standard error), kuhu käsk kirjutab veateated.
Kokkuleppeliselt eeldatakse, et kuni pole antud teistsugust korraldust, on käsu sisendiks vaikimisi klaviatuur ja väljundiks ekraan. Ka veavoog suunatakse vaikimisi ekraanile. Vajaduse korral saab kõiki mainitud andmevoogusid ümber suunata ka mistahes teise faili > ning < märkide abil.
Kui soovitakse väljundit ja veavoogu eraldi suunata, siis konstruktsioon 1> märgib standardväljundit eraldi ning 2> veaväljundit eraldi.
käsk < input.txt > output.txt
sisend võetakse failist input.txt ning väljund suunatakse faili output.txt
käsk >> output.txt
tulemus lisatakse faili output.txt lõppu
käsk 1> output.txt 2> error.txt
väljund läheb faili output.txt, veavoog aga faili error.txt
käsk >& outerr.txt
väljund ja veavoog koos suunatakse samasse faili
Faili suunamise asemel saab ühe käsu väljundvoo ühendada otse teise käsu sisendvooga - selline ühendus kannab nimetust toru (pipe ning selle märgiks on püstkriips |. Käsukonveier võib olla ka mitmeastmeline.
ps -ef | grep string
protsessitabelist otsitakse sõna string
ls -l | more
uuritakse kataloogi sisu, kuid kuna tabel võib ületada ekraanitäit, suunatakse väljund programmi, mis võimaldab teha seda lehekülje haaval
Masinas on teisigi kasutajaid
Mistahes UNIX-süsteem on harva ühe inimese kasutada. Seetõttu sisaldab UNIX juba algselt andmekaitse ja grupitöö elemente.
chmod
käsk ligipääsu reguleerimiseks failidele ja kataloogidele. Näide: chmod u+x failinimi (lisatakse eXecute-tunnus faili omaniku jaoks)
chown
selle käsuga saab faili omanikku vahetada. Arusaadavatel põhjustel ei saa võõrast faili enda omaks muuta.
chgrp
käsk, millega saab muuta faili grupikuuluvust.
whoami
käsk oma identiteedi kindlakstegemiseks
passwd
käsk oma salasõna vahetamiseks
Võrgunduse värk
UNIXi puhul eeldatakse, et masin omab füüsilist ühendust TCP/IP arvutivõrguga, olgu selleks kohalik võrk või isegi ülemaailmne Internet.
Võrgukäskudest on vaja teada järgmisi:
telnet masin
tekitab võrguühenduse masinasse. Masina nimi võib olla antud domeeni nime või IP-numbri kujul. Teise masina ressursse saab kasutada justkui asutaks tema füüsilise terminali taga.
ftp masin
luuakse spetsiifiline ühendus failide transpordiks. ftp-käsu sisemine süntaks on tavalise shelliga võrreldes tublisti lihtsustatud.
Stringitöötlus
UNIXi üheks kõige enam arendatumaks osaks on stringitöötlemise utiliidid. Koos shelli programmeerimisvahenditega moodustub erakordselt võimas töötlemiskeskkond, milles saab sõnu, tähti ja lauseid otsida ning asendada, tulemusi mistahes väljundformaati teisendada ning UNIXi teistele käskudele edastada. Vaatleme enimtarvitatavaid stringitöötlemise utiliite:
grep
käsk stringi otsimiseks failist. Sõna asemel saab otsimisel kasutada ka etteantut malli.
sort
sordib tekstifaili read tähestikulisse järjekorda, kusjuures otsimist saab toimetada esimese, teise jne välja järgi.
uniq
töötleb sorditud tekstifaili ning kõrvaldab sellest korduvad read. cat files | sort | uniq on sobiv käsukonveier mitme sõnastiku kokkumiksimiseks.
wc fnimi
loendab sõnu (wc - word count), märke ja ridu failis nimega fnimi.
On programme, mis võimaldavad etteantud reeglite kohaselt tekstifaili analüüsida ja järeldusi teha:
sed
stream editor, võimaldab tekstivoogu töödelda automaatselt, etteantud reeglite järgi.
awk
oma loojate Aho, Winbergeri ja Kernighani järgi nime saanud tekstitöötluskeel, mille abil saab välja selekteerida ja ümber paigutada sõnu ja fraase.
Töö kõvakettaga
UNIXi failisüsteem on keeruline, kuid töötab stabiilselt. Tavakasutajat ei lubata iialgi füüsilise ketta poole otse pöörduda - vajadusel saab seda teha vaid süsteemi administraator. Kasutaja ei pruugi isegi teada, millise füüsilise seadma peal tema faile hoitakse.
Siiski on olemas utiliidid, mis annavad aimu kettakasutusest ning võimaldavad seda reguleerida.
du
disk usage, annab ettekujutuse kataloogi või faili salvestamiseks kulunud kettablokkidest.
df
disk free, teatab vaba ketamahu failisüsteemide kaupa.
mount
ilma argumendita loetleb root-failisüsteemi külge monteeritud teistest failisüsteemidest. Ainult root-kasutajal on õigus failisüsteeme kokku ja lahti monteerida.
Administraatori töövahenditest oleks vaja märkida järgmisi käske:
fsck
on failisüsteemi loogilise korralsoleku käsk, midagi DOSi CHKDSK.EXE taolist.
mkfs
on vahend uue failisüsteemi loomiseks kõvaketta partitsioonil
Mingil määral kuuluvad jooksva teema alla ka vahendid arhiveerimiseks ja tagavarakoopiate tekitamiseks:
tar
tape archiever, enimkasutatav arhiveerimiskäsk.
NB!
Selle teksti koostamisel on kõvasti malli võetud dokumendist DESY-USG/93/08 , 30 november 1993.
Copyright © 1994-1997 Balti Uuringute Instituut
Copyright © 1995 Anto Veldre