Professional Documents
Culture Documents
AIOS1 Ispit 2022
AIOS1 Ispit 2022
Ko je osnivao UNIX?
Ken Thompson i Dennis Ritchie.
Ko je zapoceo GNU?
Richard Stallman.
Ubuntu:
Nastao je u kompaniji Canonical, osnivac Mark Shuttleworth.
Baziran je na Debian distribuciji. Skracenica za pakete je “.deb”
UNIX Shell:
Unix Shell je interpreter komandne linije za Unix sisteme, tekstualni interfejs
sa operativnim sistemom.
Prvi Unix shell je bio Thompson Shell, napisan od strane Kena
Thompsona.
Bio je namenjen za skriptovanje.
BASH:
Predominantan shell, [B]ourne [A]gain [Sh]ell.
Autor je Brian Fox.
Terminal Emulator:
Tekstualni interfejsi koriste Terminalne emulatore.
Omogucava upotrebu Tekstualnog Shella u okviru grafickog okruzenja.
Naredba: pwd - Prikazuje trenutnu lokaciju
Oznaka “ ~ ” je zapis za Home direktorijum
1
Naredbe:
❖ cd - Omogucava promenu lokacije u direktorijumu.
❖ . - Tacka, trenutni direktorijum
❖ .. - Dve tacke, ide nazad u roditeljski direktorijum
❖ / - Separator se koristi u putanjama.
❖ Echo - Ispisuje tekst, koristi se kod skriptovanja.
❖ Touch - Kreira fajl.
❖ Mkdir - Kreira novi direktorijum
❖ Rm - Brisanje fajlova, rm -rf je brisanje bez potvrde.
❖ Cp - Kopiranje fajlova. Za kopiranje direktorijuma sa komplet
sadrzajem treba -R switch.
❖ Mv - Premestanje i promena naziva.
❖ Nano - Tekst editor.
❖ Cat - Ispisuje sadrzaj jednog ili vise fajlova.
❖ Ls - Izlistavanje sadrzaja
❖ Ls -l - Izlistavanje sadrzaja, long list
❖ Export - Sa ovom naredbom mozemo postaviti vrednosti varijabli ili
kreirati vlastite.
❖ Unset - Mozemo ponistiti postavljene vrednosti sa ovom komandom.
❖ Uniq - Ispisuje samo jedinstvene redove iz ulaza, bez duplikata.
❖ Cut - Izdvajanje kolona podataka iz fajla.
❖ Cut -d -f - Delimiter za razmak je -d, -f bira kolonu
❖ Sort -t -k -n -r - Sortiranje proizvoljnih tekstualnih podataka. Delimiter
je -t, sortiranje kolona sa -k. Numericka sortiranja -n, obrtanja
redosleda sa -r.
❖ Chmod +x - Dozvoljava pokretanje fajla, dodaje executable dozvolu.
❖ ./ - Potrebno je navesti oznaku ispred skripta za pokretanje skript.
❖ Chmod 777 fajl - Dozvoljava svima sve.
❖ Chmod 744 fajl - Vlasniku dozvoljava sve, ostalima samo citanje.
❖ Chmod g+x fajl - Pripadnicima grupe dozvole pisanja i izvrsavanja.
❖ Chmod o-wx fajl - Ostalima uklanja dozvole.
❖ Chmod a+x fajl - dozvoljava izvrsavanje u sve tri kategorije, (a = all)
❖ Chown - Promena vlasnistva nad fajlom ili direktorijumom.
❖ Chown korisnik fajl
❖ Useradd ime - Kreiranje korisnika.
-d = postavlja dir kao home direktorijum.
-e = datum isteka naloga.
-f = broj dana inaktivnosti za brisanje.
-s = defaultni shell za korisnika.
-g = Postavljanje primarne grupe
-G = Postavljanje skundarnih grupa
-m = Automatsko kreiranje home direktorijuma.
❖ Passwd ime - Postavljenje pocetna lozinka za novi korisnik.
2
Sudo (Super User Do):
Konfiguracija dozvola za sudo se nalazi u fajlu /etc/sudoers, ali ovaj fajl
nikada ne bi trebalo rucno editovati.
Za editovanje ovog fajla se koristi posebna naredba visudo, koja ce otvoriti
fajl u vi editoru, ali onda pre snimanja prvo uradi neke osnovne provere. Ako ovaj
fajl nije ispravan, sistem moze zavrsiti u takvom stanju da vise nijedan korisnik ne
moze postati super-user.
Echo:
Ispisuje tekst na terminal. Koristi se kod skriptovanja i omogucava
komunikaciju sa korisnikom. Moze posluziti ispisivanje vrednosti promenjivih.
Promenjive se navode sa znakom $ ispred.
Shell Ekspanzija:
Omogucava upotrebu Wild-Char znakova.
❖ * (Zvezdica) - Moze da menja bilo koji karakter ili fajl.
❖ ? - Moze da menja samo jedan karakter.
❖ [ ] (Uglaste zagrade) - Koriste se za podudaranje sa bilo kojim
znakom definisanim unutar zagrada. Mogu se koristiti razliciti tipovi
karaktera (brojevi, slova, specijalni znakovi itd.)
3
Ulazno-Izlazni tokovi:
.stdin - Standardni ulaz (0)
.stdout - Standardni izlaz (1)
.stderr - Ispis gresaka (2)
Redirekcija:
Redirekcija podrazumeva promenu tokova, prusmeravanje ulaza/izlaza iz
fajla ili neke druge naredbe, koristi se “ > “ znak za preusmeravanje.
Piping:
Predstavlja prespajanje standardnog izlaza jedne nardebe na standardni ulaz
naredbe. Formira “Piping” i koristi se znak “ | ”
4
Grep (Globally search a regular expression and print:
Filter teksta koji ce da sa svog ulaza na svoj izlaz da propusti samo one
redove teksta u kojima se moze pronaci zadata rec ili pattern.
Primer:
● Cat automobili.txt | grep mercedes
● Grep -i = Postaje neosetljiv na velika i mala slova.
● Grep -v = Invert, Ispisuje linije koje ne prolaze test.
● Grep -A # = After, ispisuje # linija nakon svake koja se uklapa
● Grep -B # = Before, Ispisuje # linija ispred.
● Grep -C # = Context, ispisuje # linija ispred i iza.
AWK:
Skriptni jezik za jednostavnije procesiranje i filtriranje teksta.
Nazvan je po svojim autorima Alfred Aho, Peter Weinberger i
Brian Kernighan.
Awk -F’ ‘ ‘$3 >= 1992’ - Delimiter je -F. Naredba je ‘ ‘. Treca kolona $3.
Switchevi:
Naredba Delimiter Kolona
cut -d -f
sort -t -k
awk -F $
5
Shell Skripte:
Tekstualni fajlovi koji sadrze niz naredbi koje se mogu automatski redom
izvrsiti.
Ima posebnu oznaku za putanja interpretera ( #! ).
/bin/sh - Putanja glavnog sistemskog Shell-a
Primer: #!/bin/sh
Komandna Supstitucija:
Mogucnost da se rezultat izvrsavanja neke naredbe uvrsti u drugu naredbu.
Primer: touch $(cat nazivi.txt)
Sintaksa Opis
-f $A Da li postoji fajl $A
-d $A Da li postoji direktorijum $A
6
Modifikacija Korisnika:
Korisnik moze svoje ime da izmeni upotrebom -l (login name) switcha:
Primer: Usermod -l novoime staroime
Kreiranje Korisnika:
Adduser ili useradd.
Korisnik se moze izbrisati komandom userdel
Kreiranje Grupe:
Addgroup ili groupadd.
Primer: Groupadd naziv
Vazni Fajlovi:
Lista korisnika sa osnovnim podacima se nalazi u fajlu: /etc/passwd
Podaci o grupama se nalazi u: /etc/group
Podaci o enkriptovane lozinke se nalaze u: /etc/shadow
Debian paketi:
Ubuntu koristi dpkg kao osnovni menadzer paketa i .deb kao tip softverskog
paketa.
Deb paketa je tar arhiva koja u sebi sadrzi tri fajla:
1. Debian-binary - Verzija deb fajla
2. Control.tar.gz - meta podataka o paketu
3. Data.tar - data fajlovi od pakete
U Control.tar.gz fajlu se mogu nalaziti sledeci fajlovi:
● Md5sums - Hash kodovi za proveru integriteta paketa.
● Control - informacije o paketu
● Preinst - skripta koja se izvrsava pre instalacije
● Postinst - skripta posle instalacije
● Prerm - skripta pre deinstalacije
● Postrm - skripta posle deinstalacije
Instalacija pakete:
Dpkg -i naziv_paketa.deb -i = install
Dpkg -r naziv_paketa -r = remove
Dpkg -l = Izlistava sve pakete trenutno instalirane u sistemu.
Dpkg-reconfigure - Pokusava da vec instaliran paket rekonfigurise.
7
● apt-get upgrade - primenjuje dostupne nadogradnje
● apt-get install paket - instalira paket(e)
● apt-get remove paket - uklanja paket(e)
● apt-get purge paket - uklanja paket(e) zajedno sa konfig fajla.
● apt-get build-dep paket - preuzima zavisnosti za build
● apt-get autoremove - uklanja suvišne pakete
Sta je Repozitorijum?
Repozitorijum je hosting servis specijalizovan za skladištenje deb paketa.
Arhive:
Skladistenje vise fajlova, sa strukturom direktorijuma u jedan fajl.
- Pakovanje: Kreiranje arhive, opciono uz kompresiju sadrzaja.
- Otpakivanje / ekstrakcija: Citajuci arhivu, re-kreiramo fajlove na osnovu
podataka iz nje, opciono uz dekompresiju.
Kompresija:
Kompresija podataka se moze podeliti na dve vrste:
1. Lossless - Kompresija bez gubitaka, otpakovani sadrzaj je tacno jednak
orginalu.
2. Lossy - Kompresija sa gubicima, sadrzaj se ne reprodukuje savrseno jer se
neke informacije odbacuju u procesu.
Primeri bez gubitaka su uobicajni formati arhiva poput ZIP, RAR, 7Z, GZIP itd.
8
Tar Arhiva:
Tar je format arhive koji skladisti nekompresovane fajlove u sebi, cesto se
kombinuje sa GZIP ili BZIP2 kompresijom. Tar fajl kao pojedinacan fajl, kompresuje
u novu arhivu i dobijamo .tar.gz i .tar.bz2
★ Tar cvf arhiva.tar direktorijum/
● C - Kreiranje .tar arhive (create)
● V - Verbose mod, ispisuje redom nazive svih fajlova koje procesira
● F - Ime arhive se navodi iza ovog argumenta
● Arhiva.tar - Naziv fajla koja se kreira
● direktorijum/ - Folder koji ce se spakovati
Linkovi:
Linkovi su nacin uspostavljanja veza izmedju fajlova i direktorijuma u fajl
sistemu, kao “shortcut”, omogucavaju nam da sa jedne lokacije pokazujemo na
drugu.
Razlika u odnosu na shortcut je sto se linkovi ponasaju kao stvarni fajlovi i
direktorijumi - mogu se koristiti kao deo putanje ili u bilo koje druge svrhe u koje bi
se i stvarni fajlovi koristili. Ima dve vrste linkova: Hard Link i Symbolic Link
(symlink).
9
Linkovi ove vrste se prave ln (link) naredbom, gde se prvo navodi postojeci
fajl, pa zatim zeljeni novi naziv, uz -s switch ako zelimo simbolicki. Primer:
Ln -s postojeci_fajl naziv_linka
Hard Link:
Hard Linkovi mogu postojati samo za fajlove, te se ne mogu praviti izmedju
fajlova na razlicitim fajl sistemima (Razlicite particije ili drajvovi)
Hard Linkovi su tehnicki ono sto povezuje naziv fajla i njegove atribute sa
stvarnim sadrzajem koji taj fajl ima. Svaki fajl po kreiranju ima svoj jedan link, jer bi
bez njega bio neupotrebljiv (ls -l).
Symbolic Link:
Symbolicki Linkovi ili symlink nemaju ovakva ogranicenja - mogu se kreirati
na direktorijume, i izmedju razlicitih fajl sistema.
RegEx:
RegEx ili regularni izrazi su formalni jezik koji sluzi za opis uzoraka/sablona
(patterns) u tekstu, u svrhu pretrage, kontrole ili izmena (search and replace).
10
- Anchor (^) = Koristi se za pocetak linije. Trazimo da uzorak bude na pocetku linije:
Dolar ($) = Koristi se za kraj linije. Trazimo da uzorak bude na kraju linije.
(^) i ($) = Ovime mozemo traziti da uzorak bude na pocetku i na kraju linije:
11
Broj ponavjlanja (Kvalifikatori):
Ovi simboli se uvek odnose na ono sto je direktno ispred njih.
● ? = Nijednom ili jednom
● + = Jednom ili vise
● * = Nula, jednom, ili vise
12
Klase:
Mozemo da pravimo klase znakova, koje se ponasaju kao pojedinacno slovo
ili znak, ali tekst moze da izabere bilo koji od njih na toj poziciji.
13
14
Grupe, alternative:
Zagrade ( ) koristimo za rad sa sekvencom.
Ako u zagrade dodamo uspravnu crtu | , time mozemo ponuditi i izbor izmedju
vise razlicitih sekvenci ili izraza. (alternative)
Negacija / Komplement:
Dodavanjem znaka ^ na pocetak klase se formira negacija takve grupe, klasa
koja sadrzi sve ono sto nije navedeno.
15
Odredjen broj ponavljanja:
Pored znakova ?, + i *, broj ponavljanja se moze navesti i preciznije, brojcano
u obliku {od,do}
Nije obavezno navesti oba broja, jedan se moze izostaviti.
Tacka i Escape:
Tacka . ima posebno znacenje u RegEx-u. Ona predstavlja klasu koja sadrzi
sve znakove, moze da menja bilo koji znak.
Ako stvarno zelimo tacku kao znak, moramo da dodamo escape \ znak
ispred, kako bismo iskljucili njeno posebno znacenje. Ovo se koristi i za ostale
specijalne znakove.
16
17
Pocetak i kraj reci:
Mozemo da koristimo simbole \< i \> za pocetak i kraj reci, ogranicavajuci rec
samo lokalno, ne nuzno i na celi red.
18
Back-reference:
Kada se sekvenca znakova grupise, na nju se kasnije mozemo pozvati
koristeci back-reference.
Grupe se referenciraju po brojevima 1-9 sa escape znakom ispred (\)
Brojevi se grupama dodeljuju hronoloski, onim redom kako se kroz izraz doslo
do grupe.
Ovaj se moze koristiti za trazenje ponavljanja neke sekvence znakova.
Egrep:
Egrep je alias za grep, sa automatski ukljucenim -E switchem koji
omogucava upotrebu RegEx-a.
Sintaksa je isto kao i za grep, a jedan koristan switch je -o koji ce da ispise
samo matchovane delove teksta.
Sed:
sed (stream editor) se koristi kao deo pipelinea koji moze da filtrira ili
modifikuje podatke na osnovu regularnih izraza.
Neki od osnovnih modova operacije su:
19
20
Napredna Supstitucija:
Omogucava upotrebu regularnih izraza, kao i prenos grupisanih sekvenci sa
pretrage na zamenu.
Moguce je u patternu za zamenu pozvati se na grupisane sekvence koristeci
\1 - \9 oznake, kao i posebnu oznaku & koja menja kompletnu matchovanu
sekvencu.
21
Boot:
1. Hard/Cold boot - Paljenje racunar nakon stanja potpune iskljucenosti.
2. Soft/Warm boot - Paljenje racunar nakon softverskog restarta.
22
BIOS:
Basic Input Output System, on se implementira kao poseban cip na maticnoj
ploci koji sadrzi ROM (Read Only Memory) deo u kome se nalaze osnovne rutine za
pokretanje racunara i upravljanje njegovim hardverom.
UEFI:
Unified Extensible Firmware Interface (UEFI) je softver koji takodje ima ulogu
u pokretanju racunarskog sistema ali sa mnogo vise opcija i mogucnosti za razliku
od BIOS-a.
UEFI moze da se smesti u flash memoriji koja se nalazi na maticnoj ploci.
Boot Loader:
Naredni korak je pokretanje Operativnog Sistema. Ovde dolazi Boot
Loader, i sluzi kao medju korak izmedju BIOS-a i Operativnog Sistema.
Prva faza se mora nalaziti u tih 512 bajta i ona sluzi samo da se neke druge
lokacije ucita i pokrene drugu fazu.
GRUB:
Grand Unified Boot Loader je najpopularniji, podrzava ucitavanje i drugih
Operativnih sistema, Ubuntuov default.
Autor GRUB-a je Erich Boleyn. Pored UNIX sistema, podrzava lancano
ucitavanje (chainloading) drugih boot loadera, poput Windowsovog NTLDR.
23
GRUB se moze podesiti na Ubuntu editovanjem /etc/default/grub fajla,
nakon cega se mora pozvati update-grub na terminalu.
Ova dva podesavanja su brojcana i govore, redom, koja stavka u meniju treba
da bude odabrana pri pokretanju, i nakon nekoliko sekundi ce sistem automatski da
nastavi sa pokretanjem te defaultne stavke.
Nakon boot loader faze, ucitava se Image Kernela, blok memorije sa diska se
kopira u RAM memoriju i dekompresuje, zatim obavlja se osnovna enumeracija
memorije i hardvera, nakon cega je sam kernel u memoriji i spreman za rad.
LILO:
Linux Loader, jos jedan popularan Loader za Linux.
Runlevel:
SysV style init demoni imaju runlevel koncept, sto je brojcana oznaka nivoa
na kom sistem radi.
● 0 - Halt (zaustavljenje, gasenje)
● 1 - Single User Mode (jedan korisnik)
● 5 - Multi User mode sa GUI okruzenjem (Vise korisnika sa GUI
loginom)
● 6 - Reboot (restartovanje sistema)
Runlevel SysV:
Skripte koje obavljaju zadatke asocirane za promenom runlevela se nalaze u
direktorijumima: /etc/rc#.d gde je # broj runlevela, pa tako imamo:
● /etc/rc0.d
● /etc/rc1.d
● /etc/rc2.d itd.
24
Runlevel systemd:
Ubuntu ima runlevel5.target koji znaci multi-user-graphical mode u kom
se sistem nalazi pri uobicajnom radu.
25
● * = svaki minut, sat, dan, sedmica
● 1-10 - interval, svaki, od 1 do 10
● 1-10/2 - pocevsi od 1, svaki drugi
● */2 - svaki drugi
● 1,3,5 - samo 1, 3 i 5
Postoje i posebne reci koje mogu da posluze kao alias za pomenutih pet polja:
● @yearly ili @annually - jednom godisnje, 1.1
● @monthly - jednom mesecno, prvog dana
● @weekly - jednom sedmicno, nedelja ujutro
● @hourly - svaki sat
● @reboot - pri svakom paljenju
26
● Crontab -i - Brise korisnikov crontab uz potvrdu.
Anacron:
Anacron je periodicni rasporedjivac poslova koji za razliku od cron-a
nema pretpostavku da je sistem konstantno online.
AT:
Ako zelimo da se neka komanda izvrsi jednom u buducnosti bez
ponavljanja, onda koristimo komandu at
Vreme izvrsavanja moze da bude u sledecom obliku:
● Vreme - vreme u toku dana u obliku HH:MM, ili sa dodatkom AM ili PM
ako koirstimo 12-to casovni format.
● Datum - Ako hocemo da izvrsimo at nakon 24 casa, onda moramo da
dodamo datum posle specifiranog vremena u formi DD.MM.YY
● Neko buduce vreme - Mozemo da formatiramo vreme koristeci
kljucnu rec “now”, znak plus ”+” i vremenski period kao npr. Now +2
27
hours sto znaci da ce se komanda izvrsiti za 2 sata od trenutka
podesavanja.
Sta je X?
X je mrezno-transparenti sistem koji daje osnovne graficke primitive
(Pokretne prozore, geometrijske oblike, slike) i rukuje ulaznim uredjajima (tastatura
i mis).
Mrezna transparentnost znaci da je celi sistem osmisljen da radi u mreznom
klijent-server okruzenju, sto znaci da ekran na kome se interfejs gleda ne mora da
bude onaj direktno vezan za racunar u kom se interfejs izvrsava, slicno i za ulazne
uredjaje.
28
X Standard definise samo protokol, moze postojati vise implementacija.
Prosirenja X (Xinerama):
Xinerama je prosirenje X Servera koje omogucava tretiranje vise fizickih
ekrana kao jedan veliki virtuelni ekran.
Prosirenja X (DRI):
DRI (Direct Rendering Infrastructure) je kompleksan sistem koji omogucava
direktan pristup grafickom hardveru na bezbedan i efikasan nacin, u svrhu
iskoriscavanja mogucnosti savremenog grafickog hardvera (3D Rendering,
GP-GPU, video dekodiranje itd.)
Mesa:
Mesa je softverski projekat fokusiran oko OpenGL grafickog alata koji se bavi
razvojem brojnih pomocnih biblioteka.
Toolkit:
Graficki Toolkiti daju programerima funkcionalne i estetski ugodne elemente,
olaksavaju programiranje i daju konzistenciju interfejsima.
29
Wayland:
Wayland je zamisljen kao zamena za X, koju je mnogo lakse razvijati i
odrzavati. Ocekuje se da GNOME i KDE budu kompletno portovani na taj novi
sistem.
- Kraj Skripta -
30