UNIX

Teksti on kokku pannud Anto Veldre, Balti Õpingute Instituut, 1994-1997

Sisu:

  1. Sissejuhatus
  2. Failide ja kataloogide nimed
  3. Töö failidega
  4. Töö kataloogidega
  5. Tekstiredaktorid
  6. Shellid
  7. Trükkimine
  8. Muutujad
  9. Käsud ja protsessid
  10. Suunamine ja toru
  11. Appi, help needed
  12. Masinas on peale Sinu teisigi kasutajaid
  13. Võrgunduse värk
  14. Stringitöötlus
  15. Teksti vormindamine ja ekraanile toomine
  16. Töö kõvakettaga
  17. Elektronpost ja teised avalikud võrguteenused
  18. Programmeerimine


1 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 täpseid kirjeldusi alati uurida man-käsu abil. Ka on võimalik raamatutest abi nõuda, kuigi väheste eranditega kipuvad need olema ingliskeelsed.

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 (suvandeid, optsioone :-) ), mis täpsustavad käsu toimet. Võtmetele eelneb tavaliselt miinusmärk harvemini ka plussmärk. Käsu üldkuju on selline:
   käsk  -võtmed  parameetrid
kuid loomulikult on ka erandeid. Enamiku käskude taga tohib olla rohkem võtmeid kui üks. 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 ...).



2 Failide ja kataloogide nimed

UNIXil on tavaline puukujuline failisüsteem. Iga faili või kataloogi saab adresseerida kahel eri moel, kas kirjeldades teed (path) temani root-failisüsteemi algusest ("/") ehk siis esitades nime relatiivsel kujul, 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)
/usr/local/bin/elm
see on käsu elm absoluutnimi
alamkataloog
praegusest kataloogist aste allpool paikneva alamkataloogi tähistus
../üks_teine_kataloog
käesolevaga paralleelne (ühist vanemat omav) kataloog
~
Sinu kodukataloog
~liisu
teise kasutaja kodukataloog
.miski_rc
peidetud, punktiga algav fail, millised enamasti sisaldavad mingi programmi alghäälestusi ja paiknevad Sinu kodukataloogis.


3 Töö failidega

Failidega töötamisel on mugav kasutada malli (? üksiku märgi ja * mitme märgi asendajana). Ole ettevaatlik malliga kopeerimisel, kustutamisel või ümbernimetamisel, sest UNIX kirjutab samanimelise faili üe 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.
less failinimi
tuua fail nimega failinimi ekraanile lehekülgede kaupa. Analoogilise toimega on käsud more ja pg.
cp nimi uus_nimi
teha failist nimi (või kataloogist rekursiivselt) koopia nimega uus_nimi.
dd infile outfile
iseäralik kopeerimiskäsk (disk duplicate), mille abil on mugav softi flopidele paljundada.
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.
file nimed
analüüsib failide nimed sisu ja otstarvet.
find kataloog avaldis
otsib failipuus kataloogist kataloog allapoole faile, mis rahuldavad avaldise avaldis tingimusi. Väga keerulise süntaksiga käsk :-(
locate failinimi.
Leiab kiiresti faili asukoha puus (aeg-ajalt uuendatava puu-listingu põhjal, eeldusel et masinas sellist peetakse). Käskude ja nende kaasfailide otsimiseks on mõnes süsteemis käsk nimega whereis
ln failinimi uus_nimi
lingib uue faili uus_nimi vana failiga failinimi. Link on siiski vaid viide faili asukohale, mitte kopeerimine.


4 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)


5 Tekstiredaktorid

ASCII-editore on UNIXile suur hulk. UNIXi raudvara hulka kuulub keeruline, kuid võimas vi, teised nagu pico ja joe on piiratud võimalustega. Üheks kõige võimsamaks ASCII tekstiredaktoriks, mis porditud peaaegu igasse op-süsteemi, on emacs.
vi
standardvahend, on olemas absoluutselt igas UNIXis, kuid on saadaval ka DOSi versioon.
emacs
GNU-projekti editor, mille uusima versiooni algtekstid on alati saadaval ftp abil
microemacs
normaalmõõtudes versioon, algtekstid saadaval ftp abil
pico
postiprogrammi pine originaaleditor, algtekstid saadaval
joe
populaarne eriti Tartu Ülikoolis, algtekstid saadaval
xedit
X/Windowsi all töötav editor
Korralikud, eri kirjastiile toetavad editorid on UNIXi puhul enamjaolt kommertskaup.



6 Shellid

Dialoogi UNIXi kasutaja ja süsteemi vahel korraldab shelliks nimetatav programm. Eri tõugu shelle on ehk kümmekond, korralikuks programmeerimistööks pruugitakse enamasti Bourne'i shelli sh, Korn shelli ksh ja sama perekonna derivaate. Tavakasutajale on kindlasti mugavamad C-shell csh ja Turbo-C-shell tcsh, kuid nendes shellides programmeerimisel võib tekkida ootamatuid ohtusid.
sh
Bourne'i shell. UNIXi standard, on igas süsteemis
csh
Korn'i shell. Bourne'i shelli edasiarendus. On enamikes UNIXites.
bash
Bourne Again Shell. Linuxi standardne shell
zsh
Bourne'i shelli edasiarendus
csh
C-shell. C-keelele sarnase süntaksiga shell, kaasajal olemas igas süsteemis.
tcsh
C-shelli TURBO edasiarendus. Eriti mugav just algajale.


7 Trükkimine

UNIXi all trükkimisel on alati see eelis, et printerid ja nende parameetrid on administraatori poolt juba paika häälestatud. Printimiskäsud sõltuvad suuresti sellest, kas tegu on SYSTEM V tõugu UNIXiga või siis hoopis BSD UNIXi derivaadiga.
lp
SYSTEM V printimiskäsk
lpr
BSD printimiskäsk
lpstat
SYSTEM V all loetleb printerispooleris rippuvaid töid
lpq
BSD all loetleb printerispooleris rippuvaid töid
cancel epson-185
SYSTEM V all võtab printerijärjekorrast maha printerisse epson saadetud töö nr. 185
lprm
sama BSD UNIXi all


8 Muutujad

Shelli ja programmide käitumine oleneb suuresti (keskkonna)muutujatest. Bourne'i shellis (ja sarnastes) märgitakse muutujate nimesid suurte tähtedega, C-shellis (ja sarnastes) väikeste tähtedega. Tavaline muutuja on loetav vaid selle ühe shelli poolt, milles ta defineeriti (lokaalselt), keskkonnamuutuja aga on määratud ka kõigi alamshellide jaoks. 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)
set muutuja=väärtus
omistab muutujale muutuja väärtuse väärtus (C-shell ja sarnased)
export MUUTUJA
ekspordib eelnevalt määratud muutuja keskkonnamuutujaks (Bourne'i shell). Bash'is on lubatud lühikonstruktsioon export MUUTUJA=väärtus
setenv MUUTUJA väärtus
defineerib ja ekspordib keskkonnamuutuja MUUTUJA (C-shell ja analoogsed)
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.



9 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 (X/Windowsi all akent) 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)
mosaic &
täidetakse tagaplaanil (background)
Mis viisil käsk ka ei käivitataks, süsteem omistab sellele alai unikaalse protsessi numbri (process ID). Tagaplaanil täidetavatele käsudele omistatakse lisaks veel ka jobi number (job number). Tagaplaanijobisid saab uurida järgmiste käskudega (va Bourne'i shellis):
jobs
esitab loetelu tagaplaanile surutud käskudest koos jobinumbrite (%n) ja -seisundi äranäitamisega
stop %n
seiskab jobi %n. Saab taaselustada käsuga bg %n
kill %n
tapab jobi numbriga %n (see on pöördumatu tegevus)
kill -9 %%
tapab viimati backgroundi pandud protsessi
notify %n
sunnib teavitama jobi %n seisundi muutustest
fg %n
tõstab jobi %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)
ps -aux
sama, BSD käsk
kill pid
tapab protsessi, mille ID on pid
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
Käskudega at ja batch on võimalik käskude täitmist ühekordselt ajastada (näiteks öisele ajale). Käsuga crontab saab defineerida oma ajatabeli, sinna kantakse käsud, mida on vaja pidevalt täita &uu;hel ja samal kellaajal.



10 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. csh ja tcsh puhul ei saa veavoogu väljundvoost eraldi ümber suunata.
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 >& out-err.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
last | more
uuritakse viimaseid masinasviibijaid, kuid kuna tabel kindlasti ületab ekraanitäit, suunatakse väljund programmi, mis võimaldab teha seda lehekülje haaval


11 Appi, help needed

UNIXi jaoks tavaline viis abi saamiseks on manuaali lugemine. Enamikes süsteemides on manuaal installeeritud ka elektronkujul ning mingi konkreetse käsu kohta saab abi leida käsuga man:
   man käsu_nimi
Seejuures tuleb teada käsu nime, mille kohta abi otsitakse. Kui otsitava käsu nimi pole teada, siis on olukord keerulisem, kuid paljudes süsteemides on õnneks olemas vahendid käsunime leidmiseks eelnevalt koostatud loendi, näiteks /usr/man/windex põhjal (siin sõltub palju loendite kvaliteedist):

Linuxi puhul tasub abi otsida veel ka kataloogist /usr/doc, kuhu tekstifailid hea tava kohaselt ladestatakse (kettaseeria F Slackware Linuxi puhul)
apropos võtmesõna
loetleb vastavat võtmesõna sisaldavaid man'i lehekülgi.
man -k võtmesõna
sama
xman
X/Windowsi all töötav man'ilugeja. Abi saamiseks vajutada help-nupule
info
GNU projekti tarkvara hüperteksti stiilis kirjeldus
xinfo
sama, X/Windows keskkonnas
insight
Motif interface SGI dokumentatsiooni lugemiseks


12 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.
newgroup
käsk, millega saab muuta iseenda grupikuuluvust (administraatori poolt eraldatud grupihulga piires)
su
käsk, millega saab muuta oma identiteeti (kasutajatunust). Arusaadavatel põhjustel on selle käsu kasutamine lubatud vaid administraatorile
id, whoami
käsud oma identiteedi kindlakstegemiseks
passwd
käsk oma salasõna vahetamiseks
UNIXi puhul on loomulik, et ühe ja sama süsteemi kasutajad soovivad omavahel kontakteeruda, ka selleks on olemas vastavad käsud ja vahendid.
who
näitab, kes on hetkel süsteemi sisse logitud
w
sama, näitab ära, kes millega tegeleb. On kõrgendatud turvaastmega süsteeme, kus see käsk annab infot vaid küsija enda kohta.
finger nimi
annab infot kasutajate identiteedi kohta. Sama käsk ilma argumendita väljastab sisselogitud kasutajate nimekirja. finger mille argumendiks on kasutaja@masin, uurib vastava kasutaja kohta infot ka teistest Interneti masinatest (sageli on see funktsioon turvaettekäändel kasutuks muudetud)
last
annab infot viimaste sisselogimiste kohta. Infot saab küsida eraldi nii kasutajate (last kasutajanimi) kui ka terminaliliinide (last -t terminal) kohta
news
on käsk kohalike uudiste lugemiseks. Omaenda uudiseid tuleb lugemiseks panna vastavasse kataloogi (/usr/news)
hello, wall, write ja talk
on käsud kasutajatevaheliseks suhtlemiseks reaalajas. Neist talk on mugavaim kasutada.


13 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.

Arvutiside seisukohast omab tähtsust usaldatavuse mõiste. Ühe ja sama asutuse või organisatsiooni arvutid tavaliselt ei raiska omavahelise võrguühenduse autentsuse kontrolliks aega ega vahendeid (trusted hosts). Traditsiooniline mehhanism usaldatavuse kontrollimiseks põhineb kodukataloogis asuval .rhosts failil, kuhu kirjutatakse sisse usaldatavad masinad. r-seeria (remote) käskude toime oleneb eelkõige .rhosts faili sisust. Sellisel lähenemisel on küll ka turva-alaseid puudusi...

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.
rlogin masin
sama, .rhosts failil baseeruva kontrollmehhanismiga. rlogin-ühendus on 8-bitise ASCII suhtes läbipaistvam, kui telnet-ühendus.
rsh masin
annb shelli masinasse. Ligipääsu reguleerib .rhosts fail.
xrsh masin
sama, X/Windows ligipääsuga
ftp masin
luuakse spetsiifiline ühendus failide transpordiks. ftp-käsu sisemine süntaks on tavalise shelliga võrreldes tublisti lihtsustatud. Kasutajale mugavamad failitirimise riistad on ncftp ning ka lynx
rcp masin:failinimi masin:failinimi
.rhosts failil baseeruv kopeerimismehhanism
Käsud talk finger ja mail toimivad kogu Interneti ulatuses, kui argumendina kasutada täielikku Interneti aadressi (kasutaja@masin.domeen.riik).

Keerulisema struktuuriga võrguteenuste tarbimiseks saab kasutada programme fsp (ftp edasiarendus), gopher, lynx, X/Windowsi all ka programme mosaic ja netscape (täistekstiandmebaaside kasutamine). Useneti uudiseid saab lugeda programmidega rn, tin jt. Kahjuks puuduvad need programmid seni enamike UNIXite standardvarustuse hulgast ning need tuleb igal üksikul juhul eraldi hankida.

Graafilise keskkonna puhul on kasulik teada käsu xterm olemasolust ja iseärasustest.



14 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:
cmp fail1 fail2
võrdleb kahte (ka mitte-ASCII) faili ning ütleb, kas failid erinevad ning mitmendast baidist alates.
diff tekstifail1 tekstifail2
võrdleb tekstifaile ning toob välja kõik erinevused nende vahel koos reanumbritega.
patch
eelmisele vastupidine käsk. diff-käsu väljundi põhjal modifitseerib tekstifaili. Mõte on selles, et kui megabaite pikast programmipaketist tehakse järgmine versioon, siis levitatakse vaid erinevust (eelmise versiooniga võrreldes) ning igaüks saab patchimise teel ise uue versiooni konstrueerida.
cut
eraldab sisendfaili igal real etteantud väljad, kusjuures saab määrata ka väljade eraldusmärki. Väga mugav asi liigsete andmete kõrvaldamiseks tabelist.
paste
selle käsu abil saab mitmest algfailist ühte kokku seada, kusjuures iga rea esimene sõna võtakse esimesest failist, teine sõna teisest failist jne.
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.
pr
pr sõnast print teisendab sisendi trükkimiseks viisakale kujule. Eraldi annab seada leheküljenumbreid ja tiitleid, veergude arvu, märkide arvu horisontaal- ja vertikaalsihis. Programm on ideaalne kasutada, kui on vaja suvalist ASCII teksti oma printeri lehega klappima panna.
uniq
töötleb sorditud tekstifaili ning kõrvaldab sellest korduvad read. cat files | sort | uniq on sobiv käsukonveier mitme sõnastiku kokkumiksimiseks.
tr
tähendab translate ning on mõeldud mingi teatud sümboli asendamiseks teisega. tr "\033" "E" fail1 > file2 asendab ESC koodid suure E-tähega ning salvestab tulemuse teise faili.
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. Toome ka näite awk-programmist.
Sama kategooria edasiarendusena nimetaksime veel programme nimega bison, yacc (yet another compiler of compilers), (f)lex. Karta võib, et nende järgi tunnevad vajadust vaid elukutselised programmeerijad ja ehk ka make-käsk. Uusim suund on kasutada enamike mainitud tekstijärajate asemel perli.



15 Teksti vormindamine ja ekraanile toomine

Traditsiooniline tekstitöötlus UNIXi all näeb ette, et mistahes tekst valmistatakse ette ASCII editoriga ( vi vms). Kõige lihtsam viis ASCII-tekstile viisakat väljanägemist anda on töödelda seda käsuga pr.

Juhul, kui tekst peab sisaldama kujunduselemente (eri kirjasuurusi, -tüüpe nagu italic ja bold), siis peab ASCII-tekst sisaldama kokkuleppelisi korraldusi (näiteks \fBsõna\fB), mis teksti vaatamisel või trükkimisel asendatakse vastava kujunduselemendiga. Sellist tegevust nimetatakse vormindamiseks (formaatimiseks) ning tüüpiline korraldusi sisaldav tekst näeb välja umbes taoline:
   .SH FILES
   .TP 5
   \fB\*d/?/*\fR
   Compiled terminal description database.
   .SH SEE ALSO
   \fBcurses\fR(3X), \fBterminfo\fR(\*n).
   .\"#
   .\"# The following sets edit modes for GNU EMACS
   .\"# Local Variables:
   .\"# mode:nroff
   .\"# fill-column:79
   .\"# End:
Standartne UNIXi vormindusprogramm on troff, samuti on tuntud selle teisendid nroff ja GNU groff. Seda tüüpi tekstivorminduse eeliseks on asjaolu, et teksti on võimalik ette valmistada mistahes tekstiredaktoriga ja edastada üle 7-bitise sidekanali. Puuduseks on suhteliselt suur keerukus ja harjumatus.

Veel keerukamate, pilte ja valemeid sisaldavate materjalide ettevalmistamiseks kirjastustöös on vabalt saadaval J. Knuthi poolt kirjutatud TeX (häälda: tehh) ja tema teisendid (n LaTeX).
latex
käivitab LATEXi
xdvi
*.dvi faili vaatamisek X/Windowsi all
dvips
teisendab *.dvi faili *.ps kujule
a2ps, text2ps
teisendab ASCII faili *.ps kujule
ghostview
PostScript failide (*.ps) vaatamiseks X/Windows keskkonnas


16 Töö kõvakettaga

UNIXi failisüsteem on keeruline, kuid töötab stabiilselt. Tavakasutajat ei lubata iialgi füüsilise ketta poole 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. SCO puhul on otstarbekas kasutada käsku /etc/dfspace, BSD tüüpi UNIXite puhul käsku df -df, mõlemal juhul saadakse tulemus kilobaitides.
quota
on mehhanism kasutaja poolt haaratava kettamahu piiramiseks. Systeemi administraator saab seada lävesid kasutajate ja 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 DOS-i CHKDSK.EXE taolist.
ls-i
näitab failide ja inode-tabeli vahelist vastavust
defrag
on Linuxi käsk failisäsüsteemi defragmenteerimiseks (midagi Norton Speediski taolist
sum ja cksum
on vahendid failide kontrollsummade leidmiseks
mkfs
on vahend uue failisüsteemi loomiseks kõvaketta partitsioonil
Mingil määral kuuluvad jooksva teema alla ka vahendid arhiveerimiseks ja tagavarakoopiate tekitamiseks:
backup
on SCO UNIXi arhiveerimiskäsk
cpio
copy in copy out, standartne arhiveerimiskäsk
tar
tape archiever, enimkasutatav arhiveerimiskäsk.


17 Elektronpost ja teised avalikud võrguteenused

mail (Mail),
on UNIXi standartne postiprogramm, millega saab elektronkirju lugeda ja kirjutada.
elm
on menüüstiilis töötavatest postiprogrammidest enimlevinud. Kuulub vaba tarkvara hulka.
pine
eelmisele analoogne posti-interface
sendmail
posti edastamise ja transportimise programm enamikes UNIXites. Töötab deemonina, pole mõeldud vahetuks kasutamiseks.
tin
programm Useneti uudiste lugemiseks. Eeldab, et masinas oleks installeeritud mõni uudiste transpordi süsteem nagu cnews või inn
gopher
Minnesota Ülikoolis välja töötatud infosüsteem, sama nime kannab ka klientprogramm
lynx
täistekstinfosüsteemide (gopher, WWW) klientprogramm, töötab ASCII-terminalil
mosaic
täistekstinfosüsteemide graafiline klient X/Windowsi all
netscape
sama


18 Programmeerimine

UNIXi all toimub programmeerimine enamasti shellis või siis UNIXi jaoks klassikalises C-keeles. Harvemini kasutatakse ka assemblerit (as) või FORTRANi. Viimasel ajal on väga populaarne programmeerida perlis

. Kurioosumitena olgu märgitud ka ftp abil vabalt hangitav Pascal-to-C kompilaator ning BASIC-keele versioon bwbasic.
cc algtekst.c
kompileerib faili algtekst.c põhjal kokku masinkoodis programmi
gcc
GNU projekti raames väljatöötatud kompilaator, sisaldab ka C++ kompilaatori
as
assembler
f77, fort77
Fortrani kompilaator, enamikes süsteemides puudub
Kompileerimisel on vaja cc käsule sageli lisada mitmesuguseid võtmeid:
-o nimi
annda kompileeritud programmile a.out asemel nimeks nimi
-g
tekitada debugiimisotstarbel täiendav sümbotabel
-c
mitte linkida, piirduda kompileeritud objektfailiga *.o
-lcurses
linkimisel kasutada teeki (library) nimega curses
-Lkataloog
defineerib teeke sisaldava kataloogi
-Otase
määrab valmiskoodi optimiseerimistaseme (iga järgmine tase on töömahukam
Koodi uurimiseks ja kvaliteedi kontrolliks on enamikes UNIXi distributsioonides olemas spetsiaalsed debugerid nagu gdb (GNU projekti debugger) koos X/Windows interfaceiga xdb või Microsofti CodeViewv cv (SCO all). Debugerite kasutamine eeldab Sümboltabeli olemasolu programmi lõpuosas, seega siis -g võtmega kompileerimist. Mõningates süsteemides on käsk lint, millega saab C-keelsest tekstist loogikavigu otsida ja porteeritavuse astet määrata, samuti C Beautifier cb, mis kirjutab C-keelse algteksti kenasti ringi järgides taandridu ja muid vormistuslikke ilunõudeid.

Mahukate programmipakettide puhul on mõttekam teha kompileerimist käsu make juhatuse all.
make
kompileerib ja lingib programmi, arvestades seejuures muudatusi üksikutes osades.Instruktsioonid võtab Makefile nimelisst failist.
ar
arhivaator, mida kasutatakse objektfailide teekidega manipuleerimiseks.