520 likes | 806 Views
Uvod u UNIX. Damir Krstinić damir.krstinic@fesb.hr. Operacijski sustav - UNIX. Operacijski sustav je program koji kontrolira resurse računala UNIX je višekorisnički, višezadaćni operacijski sustav Djelovi UNIX-a Kernel (jezgra) Shell (ljuska) File system (datotečni sustav)
E N D
Uvod u UNIX Damir Krstinić damir.krstinic@fesb.hr
Operacijski sustav - UNIX • Operacijski sustav je program koji kontrolira resurse računala • UNIX je višekorisnički, višezadaćni operacijski sustav • Djelovi UNIX-a • Kernel (jezgra) • Shell (ljuska) • File system (datotečni sustav) • Aplikacijski programi
Kernel (jezgra) • Kernel je centralni dio operacijskog sustava koji se učitavaa pri podizanju sustava, a upravlja računalnim sklopovljem. • Poznavanje jezgre operacijskog sustava nije nužno za korištenje računala
Shell (ljuska) • Ljuska je interpreter naredbi. Njezini zadaci su: • Primanje korisničkih naredbi • Pokretanje korisničkih programa i komunikacija sa jezgrom • Prikazivanje rezultata na zaslonu • Prilikom spajanja na računalo, po uspješnoj identifikaciji, nalazimo se u početnoj ljusci
File system (datotečni sustav) • UNIX datotečni sustav organiziran je u obliku stabla (tzv. Datotečno stablo) / (root) /bin /etc /home /usr /var /tmp /home/user1 /home/user3 /home/user2
Korisnički programi • Najčešće funkcije korisničkih programa: • Upravljanje datotekama • Uređivanje teksta • Mrežne usluge • Itd. • UNIX korisnički programi su modularni. Pojedinačni programi mogu se udruživati u veće cjeline
Tipovi datoteka • Obične datoteke • Koriste se za spremanje informacija raznog tipa (tekst, slike, programi, itd.) • Direktoriji • Točke grananja datotečnog stabla, sadrže druge datoteke (uključujući druge direktorije) • Simbolički linkovi • Simbolički link je datoteka koja pokazuje na neku drugu datoteku
Tipovi datoteka • Specijalne datoteke • Točke u datotečnom sustavu koje predstavljaju hardwerske uređaje (diskovi, printeri, ...) • Socket • Koriste se za komunikaciju među procesima, bilo lokalno ili putem mreže • FIFO • Slično kao socket, služi za lokalnu komunikaciju među procesima
Tipovi datoteka • Na UNIX-u vrijedi princip: Sve je datoteka • Normalne datoteke • Direktoriji • Komunikacijske pristupne točke • Sklopovlje računala
Korisnički račun (account) • Svaki korisnik ima svoj korisnički račun. • Korisnički račun čini skup resursa računala koje korisnik može koristiti • Identifikacija korisnika: • username (korisničko ime, login) • password (lozinka)
Prijava na UNIX računalo SunOS 5.7 login:dkrst System Password: Last login: Tue Oct 14 19:43:02 from adria.fesb.hr Sun Microsystems Inc. SunOS 5.7 Generic October 1998 Tue Oct 14 19:47:13 MET DST 2003 /home/dkrst marjan.fesb.hr>
Upravljanje ljuskom • Nakon uspješnog spajanja na sustav, korisnik se nalazi u korisničkoj ljusci • Format UNIX naredbe: /> naredba [opcije] [argumenti]
passwd - promjena lozinke marjan.fesb.hr> passwd passwd: Changing password for dkrst Enter login password: New password: Re-enter new password: passwd (SYSTEM): passwd successfully changed for dkrst marjan.fesb.hr>
Odjava sa UNIX računala • Nakon završetka rada, potrebno se odjaviti sa UNIX računala (logout ,exit) marjan.fesb.hr> logout Connection closed by foreign host. • Odjavu je moguće napraviti istovremenim pritiskom na tipke CTRL i D (^D)
ls – pregled sadržaja direktorija • Naredbals služi za pregled sadržaja direktorija • Opcije –al daju detaljan ispis sadržaja direktorija marjan.fesb.hr> ls -al total 5472 drwx------ 3 dkrst other 512 Feb 10 2003 . drwx------ 4 dkrst other 512 Feb 3 2003 .. drwx------ 7 dkrst other 4608 May 9 2001 HTTPClient -rw-r--r-- 1 dkrst other 2785280 Feb 3 2003 HTTPClient.tar lrwxrwxrwx 1 dkrst other 9 Feb 10 2003 robots -> ../robots marjan.fesb.hr>
Struktura direktorija • Svaki direktorij može sadržavati datoteke raznih tipova uključujući i druge direktorije drwx------ 3 dkrst other 512 Feb 10 2003 . drwx------ 4 dkrst other 512 Feb 3 2003 .. drwx------ 7 dkrst other 4608 May 9 2001 HTTPClient -rw-r--r-- 1 dkrst other 2785280 Feb 3 2003 HTTPClient.tar Svaki direktorij sadrži pokazivač na samog sebe i na svoj roditeljski direktorij Radni direktorij Roditeljski direktorij
pwd – radni direktorij • Naredbom pwd dobijamo apsolutni put do trenutnog radnog direktorija marjan.fesb.hr> pwd /home/dkrst/java/packages Apsolutni put uvijek počinje od root direktorija (/)
cd – promjena radnog direktorija • Radni direktorij možemo zadati apsolutno ili relativno (u odnosu na trenutni radni direktorij) marjan.fesb.hr> cd /home/dkrst/java /home/dkrst/java marjan.fesb.hr> cd robots /home/dkrst/java/robots marjan.fesb.hr>
mkdir – kreiranje direktorija marjan.fesb.hr> mkdir vjezba1 marjan.fesb.hr> cd vjezba1 /home/dkrst/tmp/vjezba/vjezba1 marjan.fesb> ls -al total 4 drwx------ 2 dkrst other 512 Oct 15 10:39 . drwx------ 3 dkrst other 512 Oct 15 10:39 .. marjan.fesb.hr> Pokazivači na radni i roditeljski direktorij stvaraju se automatski
rmdir – brisanje direktorija marjan.fesb.hr> ls -al total 8 drwx------ 3 dkrst other 512 Oct 15 10:51 . drwx------ 5 dkrst other 512 Oct 15 10:36 .. -rw------- 1 dkrst other 30 Oct 15 10:37 dat1.txt drwx------ 2 dkrst other 512 Oct 15 10:39 vjezba1 marjan.fesb.hr> rmdir vjezba1 marjan.fesb.hr> ls -al total 6 drwx------ 2 dkrst other 512 Oct 15 10:51 . drwx------ 5 dkrst other 512 Oct 15 10:36 .. -rw------- 1 dkrst other 30 Oct 15 10:37 dat1.txt marjan.fesb.hr>
Skraćene oznake direktorija . - tekući radni direktorij .. - roditeljski direktorij ~ - home direktorij korisnika marjan.fesb.hr> cd ~ marjan.fesb.hr> pwd /home/dkrst marjan.fesb.hr> cd vjezba marjan.fesb.hr> cd .. marjan.fesb.hr> pwd /home/dkrst
cp – kopiranje datoteka • Naredba cp služi za kopiranje datoteka i direktorija marjan.fesb.hr> ls dat1.txt marjan.fesb.hr> cp dat1.txt dat2.txt marjan.fesb.hr> ls dat1.txt dat2.txt marjan.fesb.hr>
mv – premještanje datoteka • Naredba mv služi za premještanje (i promjenu imena) datoteka i direktorija marjan.fesb.hr> ls dat1.txt dat2.txt marjan.fesb.hr> mv dat2.txt nova.txt marjan.fesb.hr> ls dat1.txt nova.txt marjan.fesb.hr>
rm – brisanje datoteka marjan.fesb.hr> ls dat1.txt nova.txt marjan.fesb.hr> rm nova.txt rm: remove nova.txt (yes/no)? y marjan.fesb.hr> ls dat1.txt gustav.csc.unist.hr> Brisanje datoteke je neopozivo!
man – pomoć za UNIX naredbe • Naredba man daje pomoć za navedenu UNIX naredbu /> man ls - pomoć za ls /> man man - pomoć za man • Naredba man vrlo je važna i treba je koristiti uvijek kada trebamo pomoć za neku naredbu!
Prava pristupa datotekama • Vlasnik datoteke određuje prava pristupa • Svaka datoteka ima svog vlasnika • Prava pristupa mogu se zasebno definirati za vlasnika datoteke, grupu korisnika kojoj vlasnik pripada, te za sve ostale korisnike sustava Prava pristupa: • Čitanje -r • pisanje -w • Izvršavanje -x
Prava pristupa datotekama -rw-r--r-- 1 dkrst users rwxrwxrwx vlasnik grupa ostali Primjer: -rw-r--r-- • vlasnik: pravo čitanja (r) i pisanja (w) • grupa: pravo čitanja (r) • ostali: Pravo čitanja (r)
chmod – promjena prava pristupa • Naredbom chmod vlasnik datoteke mijenja prava pristupa chmod <prava><datoteka> • Prava pristupa moguće je zadati: • apsolutno • simbolički
Apsolutna prava pristupa Apsolutna prava pristupa: _rwxrwxrwx 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 | 1/0 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 • Apsolutna prava pristupa dobivaju se pojedinačno za vlasnika, grupu i ostale korisnike zbrajanjem vrijednosti tri binarne znamenke koje određuju prava pristupa chmod 0644 dat1.txt vlasnik: rw; grupa: r; ostali: r
Simbolička prava pristupa • Dodavanje ili oduzimanje prava pristupa na osnovi simboličke oznake u – vlasnik g – grupa o – ostali a –svi korisnici chmod ug+w dat1.txt dodavanje prava pisanja za vlasnika i grupu chmod o-w dat1.txt skidanje prava čitanja za ostale korisnike sustava chmod a+r dat1.txt davanje prava čitanja za sve korisnike
Prava pristupa za direktorije • Pravo čitanja, pisanja i izvršavanja na direktoriju imaju slijedeće značenje: • r(čitanje) – pravo pregledavanja sadržaja direktorija • w(pisanje) – pravo izmjene sadržaja direktorija • x(izvršavanje) – pravo otvaranja datoteka u direktoriju
Pregledavanje sadržaja datoteke • Sadržaj datoteke moguće je dobiti korištenjem naredbe cat marjan.fesb.hr> cat dat1.txt Ovo je prvi red teksta. Drugi red... marjan.fesb.hr> • Za datoteke koje ne stanu na jedan ekran mogu se koristiti naredbemoreililess
Povezivanje datoteka • ln - kreiranje pokazivača na datoteku • Hard link: /> ln dat1.txt dat2.txt • Soft link: /> ln–s dat1.txt dat3.txt
Environment varijable • Environment varijable postavlja korisnik: • $HOME • $PATH • ... • Postavljanje vrijednost environment varijable: /> setenv PATH ./:$PATH • Environment varijable mogu se postaviti u inicijalizacijskim datotekama ljuske
Standardni ulaz i izlaz naredbi • Svaka UNIX naredba ima • stdin - standardni ulaz • stdout - standardni izlaz • stderr - standardni izlaz za greške • Uobičajena vrijednost za standardni ulaz je tipkovnica • Uobičajene vrijednosti za standardni izlaz i standardni izlaz za pogreške je korisnički terminal
Preusmjeravanje standardnog izlaza • Standardni izlaz naredbe (stdout) moguće je preusmjeriti u datoteku • Upiši u stvorenu datoteku: > • Dodaj na kraj postojeće datoteke: >> /> ls –al > out.txt /> pwd >> out.txt /> cat out.txt - prikazuje sadržaj datoteke
Preusmjeravanje izlaza za greške • Upiši u stvorenu datoteku: >& • Dodaj na kraj postojeće datoteke: >>& Primjeri: /> ls –al >& err.txt – preusmjerava izlaz za greške /> (cat err.txt > /tmp.txt) >& ~/err1.txt • Gornja naredba preusmjerava standardni izlaz u datoteku /tmp.txt (datoteka tmp u root direktoriju), te standardni izlaz za greške u datoteku ~/err1.txt (datoteka err1.txt u home direktoriju korisnika)
Preusmjeravanje ulaza naredbi • Preusmjeravanje naredbi iz datoteke: < /> cat > test ls –al <CTRL - D> /> /bin/tcsh < test total 24 drwxr-xr-x 2 dkrst 110 4096 Oct 21 19:26 . drwx--x--x 21 dkrst fesb 4096 Oct 21 19:26 .. -rw-r--r-- 1 dkrst 110 33 Oct 21 19:02 dat1.txt -rw-r--r-- 1 dkrst 110 34 Oct 21 19:02 dat2.txt -rw-r--r-- 1 dkrst 110 339 Oct 21 19:05 out.txt -rw-r--r-- 1 dkrst 110 8 Oct 21 19:26 test Oznaka za kraj datoteke tcsh - ljuska
Ulančavanje naredbi • Više UNIX naredbi povezuju se u cjelinu uporabom operatora | /> cat /etc/passwd | sort | less aalagic:x:23722:111:Alen Alagic,student:/home/aalagic:/bin/csh aalujevi:x:21419:111:Ana Alujevic,student:/home/aalujevi:/bin/csh aandrun:x:20980:111:Adriano Andrun,student:/home/aandrun:/bin/csh aarmanda:x:22378:111:Ante Armanda,student:/home/aarmanda:/bin/csh ....
Ulančavanje naredbi • Standardni izlaz naredbe s lijeve strane operatora | povezan je na standardni ulaz naredbe s desne strane operatora • Upotrebom operatore |& povezuju se standardni izlaz i standardni izlaz za greške naredbe sa lijeve strane operatora na standardni ulaz naredbe sa desne strane operatora
Procesi • Programi koji se izvršavaju u memoriji UNIX računala nazivaju se procesi • Svakom procesu dodjeljen je skup resursa računala (dio procesorskog vremena, memorija, ...) • Proces je način na koji UNIX upravlja resursima pokrenutog programa
Procesi • Parametri procesa: • PID– jedinstveni identifikacijski broj procesa • PPID–PIDroditeljskog procesa • UIDiGID– vlasnik i grupa procesa • EUIDiEGID– efektivniUIDiGID • Kontrolni terminal • Prioritet procesa
Procesi • Stanja procesa: Runnable - aktivni proces Sleeping - proces koji čeka na resurse Swapped - proces nije u memoriji Zombie - završeni proces koji nemože biti izbrisan Stopped - zaustavljeni proces (ne izvršava se)
ps – popis aktivnih procesa /> ps - popis vlastitih aktivnih procesa PID TTY TIME CMD 2480 tty1 00:00:00 tcsh 2504 tty1 00:00:00 startx /> ps -e - popis svih aktivnih procesa PID TTY TIME CMD 1 ? 00:00:06 init 2 ? 00:00:04 kflushd 3 ? 00:00:02 kupdate 4 ? 00:00:00 kswapd ...
kill – slanje signala procesu /> kill –KILL 2480 - ubijanje procesa 2480 /> kill –HUP 2480 - resetiranje procesa 2480 man kill - pomoć za naredbukill
Pokretanje procesa u pozadini • Korištenjem operatora & iza naredbe, proces se pokreće u pozadini /> emacs& - pokretanje editora Emacs u pozadini • Nakon pokretanja procesa u pozadini, korisnik se nalazi u ljusci i može zadavati nove naredbe • Bez operatora&, nove naredbe ljuska prima tek nakon završetka pokrenutog procesa
Editori • Editori u tekstualnom modu: • vi, pico, ... • Zgodni za brze promjene u datoteci • Editori u grafičkom modu: • Emacs, Xemacs, ... • Ugodniji za rad • Emacs ima ugrađenu podršku za različite formate datoteka (C, C++, Java, Latex, ...)
Povezivanje sa udaljenim računalom • Program telnet služi za povezivanje i rad na udaljenom računalu /> sshdkrst@marjan.fesb.hr Trying 161.53.166.3... Connected to marjan.fesb.hr. Escape character is '^]'. Password:
Zadatak • U svome home direktoriju stvorite direktorij unix (naredba mkdir) • U direktoriju unix stvorite datoteku index.html i u nju upišite proizvoljan tekst. Upotrebite neki od ranije navedenih editora. • Svim korisnicima sustava dozvolite čitanje datoteke index.html (naredba chmod)
Zadatak • U svom home direktoriju stvorite direktorij public_html (ukoliko već ne postoji) • U direktoriju public_html stvorite simbolički link na direktorij unix (naredba ln –s) • Na direktorijima public_html i unix dajte pravo čitanja i izvršavanja svim korisnicima • U direktoriju unix stvorite direktorij vjezbe