Komande predstavljaju skup instrukcija cije se izvrsenje zahteva od racunara. Programi koji se izvrsavaju odmah, bez kompajliranja, nazivaju se izvrsnim programima ili komandama. Veci broj programa sa srodnim funkcijama cine alate (tools). Tako se u UNIX-u srecu alati za editovanje teksta, razvojne alati i slicno.
Sve komande UNIX-a se, prema svojim funkcijama, mogu svrstati u neku od sledecih klasa:
Sintaksa komandi:
command option(s) argument(s) < Enter >command | ime komande odnosno programa cije se izvrsavanje zahteva, | |
option(s) | opcije koje odredjuju nacin izvrsenja komandi | |
argument(s) | podaci nad kojima se izvrsava komanda |
U komandama se mogu koristiti univerzalni znaci *,[] , ?.
UNIX je CASE SENSITIVE operativni sistem, odnosno string otkucan VELIKIM i malim slovima nema isto znacenje.
Na slici 6. prikazano je kako se komande izvrsavaju.
Komande vrse kontrolu i definisu akcije na UNIX-u. Svaku komandu jedinstveno odredjuje njeno ime i argumenti. Konvencija koja je, pri objasnjenju sintakse komandi, koriscena u narednom tekstu je sledeca:
text | -tekst koji treba otkucati na isti nacin kao sto pise. |
[option] | -opcioni argumenti. |
italic text | -tekst koji treba zameniti odgovarajucom vrednoscu. |
[ option1 | option2 ] | - option1 ili option2. |
Password: | -poruke koje se dobijaju od racunara. Svi primeri su takodje prikazani u ovom fontu. |
< Ctrl > | -taster koji treba pritisnuti. |
% | -promt kojim se sistem javlja kada je spreman da prihvati komandu obicnog korisnika. |
# | -promt kojim se sistem javlja kada je spreman da prihvati komandu super korisnika. |
Neki znaci koji se sa tastature dobijaju kombinovanjem kontrolnih i standardnih tastera imaju specijalna znacenja. Najznacajniji su:
< Ctrl > S | -izlaz na ekranu se privremeno zaustavlja. |
< Ctrl > Q | -izlaz na ekranu se nastavlja. |
< Ctrl > D | -najjednostavniji nacin odjavljivanja sa sistema. |
< Ctrl > C | -prekid procesa. |
< Ctrl > Z | -privremeno zaustavljanje procesa. |
Login procedura je procedura kojom se korisnik prijavljuje sistemu. Svaki korisnik ima svoj racun na sistemu. Racun sadrzi dve informacije koje ga jedinstveno odredjuju:
Password treba da bude duzine najmanje 6 znakova (8 su vazeci) i moze da sadrzi VELIKA slova, mala slova, brojeve, znake interpunkcije, pa cak i kontrolne znake.
primer:
Login: user_name Password: password IRIX System V Release 5.3 IRIX Copyright (c) 1988, 1989, 1990 Silicon Graphics, Inc All Rights Reserved %
Pri unosenju passworda se na ekranu nece nista prikazivati cime se sprecava mogucnost da neovlascena lica vide tudje passworde. Ukoliko je password nekorektno unet desava se sledece:
Login:tanja Password: nekorektan Login incorect Login:
Proces odjavljivanja sa sistema je jednostavan i obavlja se komandom:
% logoutili pritiskom na tastere < Ctrl > D.
PASSWD(1) |
passwd je komanda kojom se menja ili postavlja prvi password novoprijavljenog korisnika.
primer:
% passwd Old password: old_password New password: new_password Re-enter new password: new_password
CAL(1) |
Ispisuje kalendar zahtevane godine, i/ili meseca. Ako komanda nema argumenata ispisuje se kalendar tekuceg meseca.
mesec - vrednosti su od 1 - 12
godina - moze imati vrednosti od 1 do 9999
primer:
% cal 2 1962 February S M Tu W Tn F S . .
CLEAR(1) |
Brise sadrzaj koji se trenutno nalazi na displeju monitora i postavlja prompt i kursor u prvu liniju.
DATE(1) |
Ukoliko argumenti nisu dati, na ekranu se ispisuje tekuci datum i vreme. U suprotnom, definise se novi datum i novo vreme sistemskog sata. Ovo zadnje moze da uradi samo super korisnik.
mm | - mesec |
dd | - dan |
hh | - sat (24 sata) |
mm | - minuti |
yy | - poslednje dve cifre godine |
primeri:
% date Thu Mar 30 21:12:05 MET DST 1996 % date 10080045
U zadnjem primeru je postavljen datum: 8 oktobar tekuce godine, 12:45 a.m.
MAN(1) |
Komanda man predstavlja najbrzi nacin da se dodje do odredjenih objasnjenja vezana za UNIX operativni sistem. Skoro cela UNIX dokumentacija je smestena na disk. Ovom komandom se uputsvo za specificirani naslov izdvaja iz man baze i stampa na displej monitora. Argument title moze biti ime komande, ime specijalnog fajla, ili sistemskog poziva. UNIX dokumentacija je podeljena u vise sekcija, kako je prikazano u sledecoj tabeli. Moze se desiti da jedan entitet postoji u vise sekcija. Na primer, postoji komanda write ali i sistemski poziv pod istim imenom. U ovakvim slucajevimo, do zeljenog objasnjenja se dolazi eksplicitnim zadavanjem rednog broja sekcije u pozivu man komande. man sa opcijom -k vrsi pretrazivanje kompletne baze (ili sekcije, ako je zadata) po kljucnoj reci title.
Sekcija | opis |
---|---|
1 | Commands |
6 | Demos and Games |
2 | System Calls |
3 | Subroutines |
4 | File Formats |
5 | Miscellaneous |
7 | Special Files |
1M | Maintenance |
primeri:
% man ls Reformatting entry. Wait ... % man 2 write Reformatting entry. Wait ... % man -k slip
FIND(1) |
Komanda find se rekurzivno krece kroz hijerarhiju fajl sistema pocev od direktorijuma starting_dir trazeci fajlove koji zadovoljavaju logicki izraz matching_criteria i nad takvim fajlovima izvrsava akcije actions. U opisu kreiranja matching_criteria, argument n predstavlja decimalnu vrednost gde +n znaci vise od n, -n manje od n dok n znaci tacno n. Logicki izraz se formira od sledecih primitiva:
-atime n | istinito ako je fajlu pristupano u n dana |
-mtime n | istinito ako je fajl modifikovan u n dana |
-size n[c] | istinito ako velicina fajla iznosi n blokova gde je blok, kod vecine verzija UNIX-a velicine 512 bajtova. Ako iza n sledi c, velicina fajla je u broju znakova. |
-type c | istinito ako je fajl tipa c (f-obican fajl, d-direktorijum, ...) |
-name name | istinito ako je ime fajla name (dozvoljeno koriscenje * i ?) |
-user usr | istinito ako je vlasnik fajla usr |
-group grp | istinito ako je grupa fajla grp |
-perm p | istinito ako je pristupna dozvola fajlu p. Pristupna dozvola se zadaje oktalno (videti chmod). |
uvek istinito. Ispisivanje puta trazenog fajla | |
-exec cmd | istinito ako cmd vrati nulu. Ako iza cmd sledi '{}', onda se komanda izvrsava nad fajlom koji zadovoljava matching_criteria. |
-ok cmd | slicno kao -exec samo pre izvrsavanja komande cmd nad pronadjenim fajlom, od korisnika se trazi da verifikuje akciju sa y. |
-prune | iskljucivanje fajla iz akcije. |
Vise komandi se odvajaju separatorom ;.
primeri:% find / -name proba -print /users/tanja/tmp/proba
Trazi se od root direktorijuma fajl sa imenom proba i pronadjen je na direktorijumu /users/tanja/tmp.
% find /usr/people -size +1000 \(-mtime +30 \ -o -atime +120 \) -exec ls -l '{}' ';'
Od direktorijuma /usr/people traze se fajlovi cija je velicina veca od 1000 blokova, nisu menjani vise od 30 dana ili kojima nije pristupano vise od 120 dana. Pronadjeni fajlovi se listaju.
% find /usr/people/tanja \(-name a.out -o -name core \ -o -name ".BAK.*"\) -atime +14 -exec rm -f '{}' ';'
Ispod direktorijuma /usr/people/tanja, pronadji sve fajlove a.out, core i one cije ime pocinje sa .BAK., kojima nije pristupano vise od 14 dana i izbrisi ih.
GREP(1) |
Komanda grep pretrazuje navedene fajlove (ili standardni ulaz). Svaka linija koja zadovoljava expression stampa se na standardni izlaz. U slucaju da se istovremeno pretrazuje vise fajlova, ispred svake linije stampa se i ime fajla iz koje potice. Dozvoljene su sledece opcije:
-v | Prikazuju se sve linije koje ne zadovoljavaju expression |
-c | prikazuje se samo broj linija sa poklapanjima |
-l | prikazuju se samo imena fajlova u kojima je ustanovljeno poklapanje |
-h | ne prikazuju se imena fajlova |
-n | pored imena fajla stampaju se i brojevi linija |
-s | ne prikazuju se poruke o greskama |
-i | velika i mala slova se tretiraju isto |
primeri:
% grep automation srle.txt and automation placement
Prikazi sve linije iz fajla srle.txt koje sadrze rec automation.
% grep automation srle.txt tanja.txt srle.txt: and automation placement % grep '???' poruka He really wondered why? Why??? % grep -li serial *.h
CD(1) |
Promena tekuceg (radnog) direktorijuma. Komanda kojom se omogucava kretanje po stablu fajl sistema.
primeri:% cd dir4 | -tekuci direktorijum je dir4 |
% cd .. | -vracanje na prethodni, parent direktorijum |
% cd | -vracanje na HOME direktorijum |
% cd ../dir2/dir3 | -relativno kretanje po stablu |
% cd / | -root direktorijum postaje tekuci |
% cd /users/tanja/dir2/dir3 | -primer sa apsolutnim putem |
% cd - | -vracanje na direktorijum koji je bio tekuci pre zadnje cd komande |
LS(1), LL(1) |
Lista sadrzaj direktorijuma name. Ukoliko direktorijum nije zadat, lista se tekuci direktorijum.
-a | -lista se celokupan sadrzaj direktorijuma ukljucujuci i skrivene fajlove (cija imena pocinju sa .) |
-l | -lista se sadrzaj direktorijuma u dugackom formatu |
-p | -direktorijumi u listi su oznaceni kosom crtom (/) |
-F | -u listi, direktorijumi su oznaceni sa (/), a izvrsni fajlovi sa (*), |
-C | -lista sadrzaja se stampa u vise kolona. |
Obicno je ll alias za ls -al.
primeri:% ls proba.c novi.c Makefile % ls -aF .login .profile proba.c novi.c a.out* tmp/ % ls -l -r--r--r-- 1 root sys 1145 Oct 23 18:41 READ.ME -rw-rw-rw- 1 tanja user 85 Nov 7 14:47 boja.c -rwxrwxrwx 1 tanja user 1046 Nov 15 13:01 create
Pored imena, dugacki listing za svaki fajl ili direktorijum daje i sledece informacije: tip fajla, pristupne dozvole, broj hard linkova, vlasnika fajla, grupu kojoj fajl pripada, velicinu u bajtovima, datum i vreme kreiranja, i na kraju, ime fajla.
MKDIR(1) |
Kreira direktorijum sa imenom dirname gde ime moze da bude zadato kao apsolutni ili relativni put.
primer:% mkdir /usr/people/tanja/newdir
RMDIR(1) |
Brise prazan direktorijum sa imenom dirname.
primer:% cd /usr/people/tanja % rmdir newdir
PWD(1) |
Komanda pwd ispisuje apsolutni put radnog, to jest tekuceg direktorijuma.
primer:% pwd /home/srle
CAT(1) |
cat cita sadrzaj fajlova file1, file2, ... i ispisuje ih na standardni izlaz.
primeri:% cat proba Ovo je probni fajl za demonstraciju komande CAT I linija II III Kraj
% cat file1 file2 > file3
Stampa se sadrzaj fajlova file1 i file2, umesto na standardni izlaz (zbog redirekcije) u treci fajl file3.
CHMOD(1) |
Komanda chmod vrsi promenu pristupnih dozvola jednom ili vecem broju fajlova koji su zadati sa name. Nova pristupna dozvola je definisana sa mode.
UNIX operativni sistem omogucava selektivno definisanje korisnika koji imaju pristup odredjenom fajlu ili direktorijumu. Za svaki fajl ili direktorijum postoje tri klase korisnika:
Takodje, svaki fajl ili direktorijum ima tri nacina pristupa:
U odnosu na prethodno opisane klase i pristupe za svaki fajl ili direktorijum definisan je mod:
rwx | rwx | rwx |
---|---|---|
vlasnik | grupa | ostali |
Ukoliko stoji "-" pristup je zabranjen. Postoje i druge dozvole pristupa:
Komandom chmod moguce je menjati pristup fajlu. Argument mode definise se na sledeci nacin:
I oktalno
II simbolicki
% chmod 444 dat1 % ls -l dat1 -r--r--r-- 1 tanja user 1046 Nov 15 13:01 dat1 % chmod 644 dat1 % ls -l dat1 -rw-r--r-- 1 tanja user 1046 Nov 15 13:01 dat1 % chmod a=r,u+w dat1 % ls -l dat1 -rw-r--r-- 1 tanja user 1046 Nov 15 13:01 dat1 % chmod a-rwx * % ll ---------- 1 tanja user 1046 Nov 15 13:01 dat1 % chmod u+rw,g+r,o+r * % chmod u+rw,go+r * % ll -rw-r--r-- 1 tanja user 1046 Nov 15 13:01 dat1
UMASK(1) |
Definisanje default pristupnih dozvola. To znaci, nakon izvrsavanja ove komande, svi novokreirani fajlovi ce imati definisani mod. Pristupna dozvola se generise kao oktalni komplement zeljenog pristupa.
primer:Ako se zeli da novi fajlovi imaju pristupne dozvole 750 (rwxr-x---) argument komande umask se generise kao 777-750=027.
% umask 027 % echo "ghjgjghj" > proba % ll proba -rw-r----- 1 srle users 9 Mar 31 11:15 proba
Bez obzira sto je x pristupna dozvola za vlasnika i grupu dozvoljena definisanom maskom, fajl proba je nema jer nije izvrsni.
CHOWN(1) |
Promena vlasnika fajlova file, ... u owner
primer:# ls -l *.c -rw-rw-rw- dejan user 751 Nov 18 12:16 prvi.c -rw-rw-rw- dejan user 102 Nov 20 20:48 drugi.c # chown tanja *.c # ls -l *.c -rw-rw-rw- tanja user 751 Nov 18 12:16 prvi.c -rw-rw-rw- tanja user 102 Nov 20 20:48 drugi.c
CHGRP(1) |
Komanda kojom se menja grupa specificiranom fajlu.
group - ime nove grupe,
file - ime fajla kome se menja grupa.
primer:
% ls -l *.c -rw-rw-rw- tanja user 751 Nov 18 12:16 prvi.c -rw-rw-rw- tanja user 102 Nov 20 20:48 drugi.c % chgrp cad *.c % ls -l *.c % ls -l *.c -rw-rw-rw- tanja cad 751 Nov 18 12:16 prvi.c -rw-rw-rw- tanja cad 102 Nov 20 20:48 drugi.c
CMP(1) |
Komanda za poredjenje sadrzaja dva fajla. Ukoliko su fajlovi identicni, nema komentara, ali ukoliko ima razlika ispisuje se broj bajtova i broj linija u kojima se nalaze razlike.
-l ispisuje razlike izmedju dva fajla,
-s vraca samo kod (0-iste, 1-razlicite, 2-ne moze da pristupi argumentu).
primer:% cmp proba.c proba1.c
DIFF(1) |
diff dir1 dir2
diff file1 file2
Slicno kao cmp, uporedjuje sadrzaj dva fajla. Za razliku od cmp, diff je u stanju da uporedjuje i direktorijume. Osim ovoga, daje siri i precizniji izvestaj o eventualnim razlikama.
CP(1) |
cp file new_file
cp file1 [file2 ...] dest_directory
cp dir1 [dir2 ...] dest_directory
Komandom cp mogu se obaviti sledece akcije:
prinmeri:
% ls proba.c % cp proba.c novi.c % ls proba.c novi.c % ls -p proba.c tmp/ % cp proba.c tmp % ls -p proba.c tmp/ % cd tmp % ls novi.c
MORE(1) |
Lista se sadrzaj fajla strana po strana gde je velicina stranice jednaka broju linija koje monitor moze da prikaze. Ukoliko program nije stigao do kraja fajla, na dnu ekrana ce biti ispisano --More--. Pritiskom na taster < Enter > ispisuje se jos jedna linija, a pritiskom na taster < Space >, jos jedan ekran. Ova komanda takodje moze da posluzi u slucajevima kada prikazaivanje rezultata neke druge komande zahteva vise prostora nego sto to monitor moze da pruzi. Stranicenje rezultata ovakve komande vrsi se njenim pajpovanjem sa komandom more.
primeri:% more program.c % ls -l | more
MV(1) |
Promena imena fajla ili premestanje fajla na drugi direktorijum.
primeri:% ls proba.c tmp % mv proba.c novi.c % ls novi.c tmp % ls -p novi.c tmp/ % mv novi.c tmp % ls -p tmp/ % cd tmp % ls novi.c
RM(1) |
Komanda za brisanje fajla name.
-i - brisanje fajla uz verifikaciju,
-r - rekurzivno brisanje,
-f - brise bez provere dozvola.
% rm /users/tanja/tmp/novi.c % rm -r tanja
Upozorenje!!! Sa zadnjom varijantom komande treba biti oprezan jer brise sve fajlove na direktorijumu, poddirektorijumima ispod njega i sam direktorijum.
LN(1) |
Komanda ln kreira fajl new_name koji je link ka vec postojecem fajlu name. Parametar name moze biti i direktorijum ili specijalni fajl. Ako je parametar -s zadat, kreira se simbolicki, a ako nije, nastaje hard link. Kako je vec objasnjeno, ovo je mehanizam koji omogucava da se jednom fizickom fajlu dodele fise imena. To znaci da imena name i new_name nakon izvrsavanje ove komande postaju ekvivalentna.
COMPRESS(1) |
compress kompresuje fajl file_name i daje mu novo ime sa ekstenzijom .Z. uncompress je suprotno od compress.
U novije vreme se pojavljuju i drugi programi za ove namene. Na primer, DOS-like zip i unzip, ili gzip i gunzip ali njihovo postojanje na konkretnom sistemu zavisi od administratora.
SPLIT(1) |
Komanda split deli jedan veliki fajl in_file na vise malih. Velicina manjih fajlova se definise u broju linija -l opcijom ili u bajtovima -b opcijom. Imena novih fajlova pocinju sa prefix a split dodaje sufikse aa, ab, ac, i tako dalje. Ako se prefix ne zada podrazumeva se 'x' tako da nastali fajlovi imaju imena xaa, xab,...
primeri:
% ll -rw-r--r-- 1 srle users 51889 Mar 26 23:23 arhiva.zip % split -b 10k arhiva.zip % ll -rw-r--r-- 1 srle users 51889 Mar 26 23:23 arhiva.zip -rw-r--r-- 1 srle users 10240 Mar 26 23:25 xaa -rw-r--r-- 1 srle users 10240 Mar 26 23:25 xab -rw-r--r-- 1 srle users 10240 Mar 26 23:25 xac -rw-r--r-- 1 srle users 10240 Mar 26 23:25 xad -rw-r--r-- 1 srle users 10240 Mar 26 23:25 xae -rw-r--r-- 1 srle users 689 Mar 26 23:25 xaf % rm xa* % split -b 15k arhiva.zip sp % ll -rw-r--r-- 1 srle users 51889 Mar 26 23:23 arhiva.zip -rw-r--r-- 1 srle users 15360 Mar 26 23:27 spaa -rw-r--r-- 1 srle users 15360 Mar 26 23:27 spab -rw-r--r-- 1 srle users 15360 Mar 26 23:27 spac -rw-r--r-- 1 srle users 5809 Mar 26 23:27 spad % cat sp* > novo.zip % rm sp* % ll -rw-r--r-- 1 srle users 51889 Mar 26 23:23 arhiva.zip -rw-r--r-- 1 srle users 51889 Mar 26 23:32 novo.zip
UUENCODE(1) i UUDECODE(1) |
Uuencode i uudecode se koriste za prenos binarnih fajlova kroz medijume koji podrzavaju samo tekstualne podatke. Takav medijum je, na primer, elektronska posta. Komanda uuencode cita podatke is fajla file i koduje ih samo vidljivim ascii znacima. Kodovani podaci se stampaju na standardni izlaz tako da, ako se zeli formiranje fajla, treba koristiti redirekciju. uudecode cita podatke iz file koji je kreiran programom uuencode, dekoduje ih a rezultat ove operacije smesta u fajl pod imenom name koji je zadat jos pri kodovanju.
primeri:
% ll -rw-r--r-- 1 srle users 51889 Mar 26 23:44 arhiva.zip % uuencode arhiva.zip novo.zip > arhiva.uu % ll -rw-r--r-- 1 srle users 71521 Mar 26 23:52 arhiva.uu -rw-r--r-- 1 srle users 51889 Mar 26 23:44 arhiva.zip % uudecode arhiva.uu % ll -rw-r--r-- 1 srle users 71521 Mar 26 23:52 arhiva.uu -rw-r--r-- 1 srle users 51889 Mar 26 23:44 arhiva.zip -rw-r--r-- 1 srle users 51889 Mar 26 23:53 novo.zip
UNAME(1) |
Ispisuje verziju instaliranog UNIX operativnog sistema.
primer:% uname -a IRIX IRIX 5.3 06011629 IP6
WHOAMI(1) |
Ispisuje ime tekuceg korisnika.
primer:% whoami srle
WHO(1) |
Daje spisak korisnika koji trenutno rade na sistemu. Izlaz ima oblik:
name line timegde je:
name - korisnicko login ime,
line - ime komunikacione linije,
time - vreme kada je korisnik prijavljen sistemu.
% who srle console Nov 24 13:45 tanja ttyp1 Nov 24 14:21 dejan ttyp2 Nov 24 15:05
Slicnu funkciju uma i komanda w s tom razlikom sto daje detaljnije informacije o logovanim korisnicima i njihovim trenutnim aktivnostima.
primer:
% w 11:31am up 1:11, 2 users, load average: 0.00, 0.00, 0.00 User tty from login@ idle JCPU PCPU what srle tty2 10:29am 1 w srle tty1 10:24am 30 29 joe komande.html
DU(1) |
Daje zauzece diska u broju blokova (1 blok obicno iznosi 512 byte).
-s daje samo totalnu duzinu fajla ili direktorijuma
definisanih sa names
-a ispisuje duzinu svih fajlova na direktorijumu,
-b velicina se ispisuje u bajtovima,
-k velicina se ispisuje u KB,
names - ime fajla ili direktorijuma. Ako je izostavljen
podrazumeva se tekuci direktorijum.
% du 8 ./WorkSpace 1 ./dumpster 22
Ovako pozvana komanda daje informacije o tekucem direktorijumu i direktorijumima ispod.
% du file 4 filename
Daje duzinu fajla file.
ENV(1) |
U toku registrovanja novog korisnika na njegov HOME direktorijum kopiraju se odredjeni start-up fajlovi koji definisu njegovu radnu okolinu. Komandom env mogu se videti parametri radne okoline a medju njima najznacajniji su sledeci:
HOME | HOME direktorijum tekuceg korisnika, |
PATH | spisak direktorijuma gde se nalaze komande, |
SHELL | shell koji se koristi, |
TERM | tip terminala, |
fajl gde se smesta prispela posta, | |
LOGNAME | login ime, |
PWD | tekuci direktorijum, |
USER | ime tekuceg korisnika, |
HOST | ime racunara, |
DISPLAY | display za X11 Windows System, islicno. |
primer:
% env HOME=/home/srle PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11/bin:.:/usr/TeX/bin:/home/srle/bin: SHELL=/bin/tcsh TERM=vt100 MAIL=/var/spool/mail/srle LOGNAME=srle PWD=/home/srle/kurs USER=srle HOST=light
Naknadno, promenljive radne okoline se mogu promeniti komandom setenv ili izbrisati komandom unsetenv.
primer:
% setenv TERM vt100 % unsetenv DISPLAY
TAR(1) |
Komanda za zapis, citanje i listanje sadrzaja arhive. Argumenti:
-c - zapis od pocetka arhive.
-r - zapis na kraju arhive (dodavanje fajlova starom sadrzaju,
za System V pogledati komandu mt).
-t - listanje sadrzaja arhive.
-x - citanje sadrzaja arhive i zapis na disk.
-f - definisanje arhive (naredni argument je
specijalni fajl trake ili ime obicnog fajla arhive).
-v - za vreme snimanja ili citanja arhive ispisuju se imena
fajlova koji se trenutno obradjuju (verbose mod).
name - ime fajla ili direktorijuma koji se arhivira ili restaurira
(ukljucuju se i podirektorijumi).
% tar -tvf /dev/tape
Lista sadrzaj arhive koja je smestena na traci.
% tar -cvf /dev/tape *.c
Snimanje od pocetka trake svih fajlova sa ekstenzijom c.
% tar -rvf /dev/tape proba
Snimanje fajla proba na kraju arhive.
% tar -cvf /dev/tape srledir
Snimanje na traku direktorijuma srledir, ukljucujuci celo podstablo.
% tar -xvf /dev/tape proba
Rekonstrukcija sadrzaja fajla proba tj. kopiranje fajla proba sa trake na disk.
Kako je UNIX multi-user operativni sistem stampaci se povezuju preko spooler-a (Simultaneous Pheripheral Outpu On-Line). Ovakav mehanizam omogucava koriscenje izlaznih uredjaja od strane vise korisnika bez konflikta.
LP(1) |
Komanda kojom se zahteva izlaz na stampac. Opcija -d (destination) odredjuje zahtev za drugim stampacem. Ukoliko se ona ne navede smatra se da se zahteva default stampac.
CANCEL(1) |
Komanda kojom se zahteva prekid stampanja tj. zahtev se izbacuje iz reda cekanja. Postoji veliki broj opcija: moze se zahtevati prekid odredjenog zahteva, prekid svih zahteva nekog korisnika, prekid svih zahteva za odredjenim stampacem itd.
LPSTAT(1) |
Komanda kojom se dobijaju sve informacije vezane za status spooler-a i red cekanja zahteva.
Na BSD sistemima pogledati komande lpr, lpq i lprm.
SHUTDOWN(1M) |
Za BSD UNIX:
/etc/shutdown [-h | -r] [sec]Prekida sve procese, zaustavlja ili restartuje sistem. Moze je izvrsiti samo sistem administrator (prijavljen na sistemu kao root).
# /etc/shutdown - h 0 . . . System halted ...
Zaustavljanje sistema.
# /etc/shutdown -r 0 Login:
Restartovanje sistema.
Za System V:
/etc/shutdown [-y] [-ggrance_period] [-iinit_state]# shutdown -g0 -y
Zaustavljanje sistema.
# shutdown -g0 -i6 -y
Restartovanje sistema.
SU(1) |
Omogucava privremeni login na root ili neki drugi korisnicki racun bez odjavljivanja sa svog racuna. Naravno, da bi ovo bilo moguce, neophodno je poznavanje passworda drugog racuna. Pri promeni korisnika, radna okolina se ne menja sve dok se su ne izvrsi sa -. Odjavljivanje sa novog racuna se obavlja standardnom (sa < Ctrl >D ili logout komandom).
primeri:% su password: xxxxxx
Privremeno prijavljivanje kao super korisnik.
% su - zeljko password: xxxxxx
Privremeno prijavljivanje kao korisnik zeljko.
KILL(1) |
Komanda koja ubija aktivirane procese.
signo - broj signala koji se salje procesu
signame - ime signala koji se salje procesu (videti signal(5))
PID - identifikator procesa
% kill 6135 % kill -INT 6135
Signalizira se procesu broj 6135 da prekine izvrsavanje dajuci mu sansu da se regularno zavrsi (da izbrise privremene fajlove i slicno)
% kill -9 6135 % kill -KILL 6135
Odmah prekidaju proces broj 6135.
PS(1) |
Stampa na ekranu informacije o trenutno aktivnim procesima.
Opcije:
-e - stampa informacije o svim procesima;
-f - generise potpuni listing;
% ps -ef PID TTY TIME COMMAND 0 ? 0:00 sched 1 ? 0:02 init 2 ? 0:00 vhand 3 ? 0:00 bdflush 561 console 0:01 grcond 594 console 0:00 Xsgi 180 ttyd2 0:00 getty
Daje detaljnu listu trenutno aktivnih procesa. Pojedine kolone imaju sledeca znacenja:
UID | - user ID; |
PID | - ID procesa; |
TTY | - ime komunikacione linije (? ukoliko nije terminal); |
TIME | - vreme startovanja procesa; |
COMMAND | - ime komande koja se izvrsava. |
% ps
Daje listu procesa koji su startovani sa tekuceg terminala.
% ps -u user_name
Daje listu aktivnih procesa korisnika user_name.
Na BSD sistemima, opcije ps komande se razlikuju ali je najcesce u upotrebi ps -ax koja daje detaljnu listu aktivnih procesa i ekvivalentna je komandi ps -ef na System V UNIX-u.
Sa ostalim korisnicima UNIX sistema moze se komunicirati na vise nacina. Najcesce korisceni su preko usluga koje nude mail, write i talk programi.
Pomocu mail programa korisnik moze poslati poruku drugom korisniku u njegovo postansko sanduce (mailbox), bez obzira da li je korisnik trenutno prijavljen sistemu ili ne.
Program write omogucava interaktivnu razmenu poruka dva korisnika koji istovremeno rade na sistemu.
Program talk nudi slicne mogucnosti kao i write s tom razlikom sto talk efikasnije kontrolise displej monitora pa je i interaktivna komunikacija dva korisnika UNIX sistema preglednija.
MAIL(1) |
Omogucava razmenu poste sa drugim korisnicima. Sistem je slican uobicajenoj posti. Poruke u obliku pisama salju se korisnicima. Nakon prijavljivanja sistemu svaki korisnik biva obavesten da li za njega ima prispelih poruka.
Za svakog korisnika je na direktorijumu /usr/spool/mail kreiran po jeda fajl za pristigle poruke. Poruke koje su procitane cuvaju se u korisnickom mailbox-u na HOME direktorijumu.
Slanje pisama obavlja se komandom:
% mail user ... Uneti sadrzaj poruke ... < Ctrl> D
Unapred pripremljeno pismo se salje korisniku komandom:
% mail user < pismo
ili vecem broju korisnika:
% mail user1 user2 ... usern < pismo
Slanje poste korisnicima kroz mrezu obavlja se upotrebom e-mail adrese koja ima sledeci oblik:
ime_korisnika@ime_drugog_sistemaprimer:
% mail srle@ban.junis.ni.ac.rs
Nakon prijavljivanja sistemu korisnik dobija poruku:
You have mail
a pristiglu postu cita takodje mail komandom:
U ovom slucaju, mail ulazi u interaktivni rad kada su na raspolaganju sledece komande:
? < Enter > | citanje sledeceg pisma |
? d < Enter > | brisanje tekuceg pisma |
? d n m < Enter > | brisanje poruka od n do m |
? s n file < Enter > | zapisivanje poruke u fajl file |
? q < Enter > | napustanje programa i povratak u shell. |
primer:
% mail phyllis My meeting with Smith's group tomorrow hes been moved up to 3:00 so I won't be able to see you then. Could we meet in the morning instead. < Ctrl > D %
WRITE(1) |
Omogucava direktno slanje poruka na terminal drugog korisnika koji trenutno radi na sistemu. Komandom:
write userse zahteva uspostavljanje veze izmedju terminala koji se koristi i terminala na kome radi korisnik user. Za pocetak sesije oba korisnika moraju da pozovu write program. Dozvola ili zabrana primanja poruka od starne drugih korisnika vrsi se komandama: mesg yes odnosno mesg no
Prekid sesije obavlja se sa < Ctrl > D.
primer:
TALK(1) |
Startovanje talk sesije obavlja jedan od korisnika sledecom komandom:
talk user_name2[@host_name2]gde je user_name2 ime korisnika sa kojim se zeli razgovor, a host_name2 je ime racunara na kome taj korisnik trenutno radi. host_name2 je opcioni parametar i neophodan je samo u slucaju kada se zeli talk sesija izmedju dva korisnika koji ne rade na istom racunaru.
Nakon iniciranja sesije, drugi korisnik biva obavesten da korisnik user_name1 zeli da komuniciraju i sugerise mu se da, ukoliko zeli razgovor, odgovori slicnim pozivom talk programa:
Answer with: talk user_name1@host_name1
Kada drugi korisnik odgovori, oba bivaju obavestena da je veza uspostavljena. Ekran se deli na dva dela, za svakog korisnika po jedan, i komunikacija moze poceti. Komuniciranje se zavrsava kada bilo koji korisnik prekine sesiju sa < Ctrl > C.
UNIX operativni sistem standardno prate nekoliko editora teksta. To su pre svega, editori linijskog tipa ed i ex, i ekranski editor vi. Editor vi poseduje sve mogucnosti koje imaju ed i ex i u sustini predstavlja ekranski orijentisan korisnicki interfejs ka njima. Po potrebi, vi ih poziva u pozadini a rezultate koje oni daju, prikazuje na displeju monitora. No bez obzira na to, korisnika ne treba da interesuje veza editora vi sa drugim editorima ili usluznim programima i moze ga posmatrati kao nezavisna celina.
Na samom pocetku treba napomenuti da vi ume da stvori averziju korisnika prema njemu. Relativno je komplikovan za upotrebu jer ima tri moda rada u kojima se funkcije znakova generisanih sa tastature drasticno razlikuju. Obicno ne koristi kontrolne tastere tipa PageUp, PageDown kao ni funkcijske tastere tako da se komande zadaju sa standardnih tastera i njihovom kombinacijom sa Ctrl. Ne poseduje menije na koje smo navikli kod, uslovno receno user friendly editora (DOS-ov edit, na primer). Medjutim, treba imati u vidu da je osnova editora vi definisana pocetkom sedamdesetih, istovremeno sa pocetkom razvoja UNIX-a. Jos onda je postavljen cilj da vi funkcionise na raznim tipovima terminala od kojih vecina nije imala ni preveliki ni premocan skup kontrolnih sekvenci, kao ni standardizovan izgled tastature. Naravno, u ovome se uspelo ali je cena placena upravo cinjenicama koje su pobrojane kao mane ovog editora.
Kao i obicno, sve je stvar navike. Nakon boljeg upoznavanja sa vi editorom, svakom korisniku ce biti jasno da komande za globalnu zamenu i pretrazivanje i rad sa baferima koje on nudi, predstavljaju glavni nedostatak pomenutih user friendly editora.
U daljem tekstu sledi kratak opis odredjenog skupa komandi vi editora pri cemu je izbor prilagodjen potrebama osrednjih korisnika. Ako, nakon citanja ovog teksta, neko i dalje smatra da vi nije editor po njegovoj meri, preporucuju mu se sledeci editori: emacs, joe i jed s tim sto treba imati u vidu da oni nisu standardni deo UNIX distribucije.
Ekranski editor VI se moze naci u jednom od tri moda rada:
Nakon startovanja, editor ulazi u komandni mod. Prelazak u insert ili mod zadnje linije je jedino moguc iz komandnog moda. Prelazak iz komandnog u insert mod se ostvaruje vecim brojem komandi za dodavanje teksta ali se napustanje insert moda i povratak u komandni obavlja uvek pritiskom na < Esc > taster. U mod zadnje linije je moguce preci jedino komandom ':'. Iz ovog moda se izlazi unosenjem zeljene komande i njenim izvrsavanjem aktiviranjem tastera < Enter > ili < Esc > tasterom kada se mod zadnje linije napusta odmah.
vi file | - postavlja kursor u prvu liniju fajla file. |
vi + file | - postavlja kurzor u zadnju liniju fajla file. |
vi file1 file2 ... filen | - sukcesivno editovanje vise fajlova. Po zavrsetku editovanja jednog, sledeci se poziva sa :next ili skraceno :n. |
:wq | - zapisi i izadji |
:q! | - izadji bez zapisivanja bez obzira na ucinjene izmene. |
:w! | - prepisi fajl iako je 'Read only' |
:x | - Isto kao :wq |
:e file | - u editor poziva drugi fajl na editovanje. Novi fajl brise iz bafera prethodni tekst. |
:r file | - ucitava fajl file i umece ga u tekst ispod tekuce linije. |
^ | - pomeranje kurzora na prvi neblanko znak tekuce linije |
$ | - pomeranje kurzora na kraj tekuce linije |
< Enter > | - pomeranje kurzora na pocetak naredne linije |
h | - pomera kurzor u levo za jednu poziciju |
j | - pomera kurzor na dole za jednu poziciju |
k | - pomera kurzor na gore za jednu poziciju |
l | - pomera kurzor u desno za jednu poziciju |
NAPOMENA: Obicno rade i strelice.
< Ctrl > f | - PgUp u Komandnom modu |
< Ctrl > b | - PgDn u Komandnom modu |
< Ctrl > u | - PgUp u Insert modu |
< Ctrl > d | - PgDn u Insert modu |
:n | - postavlja kurzor na pocetak n-te linije |
/string | - pretrazivanje fajla po nizu znakova string unapred |
?string | - pretrazivanje fajla po nizu znakova string unazad |
/ | - ponavlja prethodno pretrazivanje unapred |
? | - ponavlja prethodno pretrazivanje unazad |
< Ctrl > g | - daje informaciju o tekucoj liniji i fajlu koji se edituje |
u | - vraca fajl na stanje pre izvrsavanja zadnje komande |
. | - ponavlja zadnju komandu |
x | - brise znak ispred kurzora |
X | - brise znak iza kurzora |
:i,jd | - brise tekst od i-te do j-te linije |
dd | - brise tekucu liniju |
dw | - brise tekucu rec |
s | - zamenjuje znak ispod kurzora novootkucanim tekstom. Zavrsava se sa < Esc >. |
r | - zamenjuje samo znak ispod kurzora |
cw | - zamenjuje tekst od kurzora do kraja reci novim tekstom |
:i,js/tekst1/tekst2/option | - od i-te do j-te linije, zameni tekst1 sa tekst2. |
:i,jg/tekst/s/tekst1/tekst2/option | - od i-te do j-te linije, u linijama koje sadrze tekst, zameni tekst1 sa tekst2. |
Komande za globalnu zamenu mogu da imaju i dodatni parametar option. Bez argumenta option, u svakoj liniji ce se izvrsi maksimalno jedna zamena teksta tekst1 i to na mestu njegovog prvog pojavljivanja. Ako se isti tekst pojavljuje vise puta u istoj liniji, na ostalim mestima ostaje nepromenjen. Ako je option jednak g onda se zamena obavlja globalno. Trazeni tekst koji se pojavljuje vise puta u istoj liniji, bice zamenjen na svim mestima. Takodje je korisna i opcija c koja omogucava globalnu zamenu ali uz verifikaciju. Kada se trazeni tekst pronadje, od korisnika se ocekuje da sa y ili n kaze da li pronadjeni tekst treba zameniti ili ne.
primeri:
:1,$s/srdan/srdjan/g
od prve do zadnje linije menja 'srdan' sa 'srdjan'
:1,$s/^/tekst/
svakoj liniji dodaje 'tekst' na pocetku
:1,$s/$/tekst/
svakoj liniji dodaje 'tekst' na kraju
a | unosenje teksta pocev od pozicije prve udesno od pozicije kurzora. Zavrsava se sa < Esc >. |
i | unosenje teksta pocev od tekuce pozicije kurzora. Zavrsava se sa < Esc >. |
o | kreira novu liniju ispod tekuce i ulazak u 'insert' mod. Zavrsava se sa < Esc >. |
O | kreira novu liniju iznad tekuce i ulazak u 'insert' mod. Zavrsava se sa < Esc >. |
VI poseduje dve vrste bafera: neimenovane i imenovane. Neimenovanih ima 9 a referenciranje na njih se obavlja navodjenjem njihovog rednog broja. Komande dd i yy menjaju sadrzaj ovih bafera tako sto se novi sadrzaj uvek upisuje u prvi a pri tome se stari sadrzaj bafera pomera iz prethodnog u naredni (rade kao pomeracki registri) pri cemu se sadrzaj poslednjeg (devetog) gubi. Imenovanih bafera ima 26 a imena im se sastoje od slova engleske abecede. Mala i velika slova predstavljaju fizicki iste bafere ali se u radu razlikuju. Na primer, zapis u bafer a brise njegov prethodni sadrzaj dok je zapis u bafer A zapis u isti bafer ali se novi sadrzaj dodaje prethodnom.
dd | brise tekucu liniju i smesta njen sadrzaj u neimenovani bafer. |
p | stampa sadrzaj prvog neimenovanog bafera ispod tekuce linije |
P | stampa sadrzaj prvog neimenovanog bafera iznad tekuce linije |
yy | smesta tekucu liniju u neimenovani bafer (ne brise je) |
"anyy | pamti u bafer 'a' n linija |
"ap | stampa sadrzaj bafera a ispod tekuce linije. |
"np | stampa sadrzaj n-tog neimenovanog bafera ispod tekuce linije |
< Shift > j - sastavlja tekucu i narednu liniju;
Instrukcije komandnog moda je moguce multiplicirati, jednostavno navodjenjem zeljenog broja pre unosenja komande. Ovo moze biti izuzetno korisno. U nekim primerima prikazanim do sada, ovo je vec korisceno. Na primer, komanda 10x brise deset znakova desno od kurzora, 10dd brise 10 linija, i slicno.
Slicno kao komandni interpreter, i VI poseduje neke ugradjene promenljive, koje ako su postavljene, menjaju ponasanje editora. Na sve promenljive ovog tipa se moze uticati :set komandom. Na primer:
:set nu | prebacuje VI u displej mod gde je, osim sadrzaja fajla, na pocetku prikazan i redni broj linija. Ovo moze biti od koristi jer masa komandi koristi redne brojeve linija kao argumente. |
:set nonu | je suprotno od :set nu |
:set showmode | na kraju zadnje linije ce se prikazivati trenutni mod rada editora (komandni ili insert). |
:set noshowmode | je suprotno od :set showmode |
:set showmatch | editor ce pokazivati uparenost zagrada '(){}[]' sto je vrlo korisno u razvoju programa. |
:set noshowmatch | je suprotno od :set showmatch |
:i,jw file2 | zapisuje tekst od i-te do j-te linije u file2 |
:w file2 | zapisuje ceo fajl pod drugim imenom file2 |
:w>> file2 | ceo sadrzaj zapisuje na kraj fajla file2 |
Prilagodjenje VI-a se obavlja vrlo jednostavno. Na HOME direktorijumu treba kreirati fajl .exrc i u njega uneti sve komande koje ce se izvrsiti inicijalno, nakon poziva editora. Na primer, ako .exrc ima sledeci sadrzaj:
:set showmode :set nu :set showmatch
nakon poziva, VI automatski ulazi u showmode, nu i showmatch mod.