operativnisistem —part2—
TRANSCRIPT
![Page 2: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/2.jpg)
zagrevanje . . .
I updateI komandna linija, nastavak . . . mnoštvo programa
(jezik se zaboravlja ako se ne govori)I scripting, bash, shI malo uvoda u Python, IDLE, idleI malo CI (ni)malo IDE, Integrated Development Environment,
Code::Blocks, Eclipse (drugi to rade . . . )
![Page 3: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/3.jpg)
help na komandnoj liniji . . .
I man ls (manual)I ls --help (help)I info ls (GNU info system)I apropos, man aproposI whatis, whatis apropos (vrlo kratak opis)I whereis, whereis apropos (vrlo kratak opis)
![Page 4: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/4.jpg)
synaptic
I još jedan način za instaliranje programaI jako dobro, omogućava precizna podešavanjaI nije instaliran by default . . .I zahteva neko razumevanje . . .I pokrenete Synaptic Package ManagerI dopunite octave, modul octave-controlI pokrenete octaveI h = tf([1], [1, 1])I bode(h)I h = tf([10], [1, 0, 100])I bode(h)I h = tf([10], [1, 0.1, 100])I bode(h)
![Page 5: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/5.jpg)
file system, nastavak . . .
I bitno različit file system u odnosu na MS-DOS/winI ne postoje volumes poput C:\, D:\, . . .I Ext 3, Ext 4, journal file systemI case sensitive, kada to može, ne kod FAT;
ovo pravi probleme kod kopiranja na USB flash,File i file primer, preklapanje
I jedinstven file system, stablo počinje u root, /I volumes se mount-uju: ubacite USB flashI USB flash, CD, u /media/, pogledajte sa ctrl/lI a sada kroz file system pomoću komandne linije . . .I terminal na pola, File Manager na pola, . . .
![Page 6: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/6.jpg)
directory system commands:pwd, mkdir, rmdir, cd . . .
I pwdI mkdir <ime>I lsI cd <ime>I pwdI lsI cd ..I cd -I cd ~I cd /I cd ~/<ime>I cdI cd <ime>I pwd
![Page 7: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/7.jpg)
redirekcija, cat, tac, head, tail, more, less . . .
I ls -lht /usr/bin > usrbin1.lstI ls /usr/bin > usrbin2.lstI ls -lht > ls.lstI lsI cat usrbin1.lstI tac usrbin1.lstI head usrbin1.lstI tail usrbin2.lstI cat usrbin1.lst usrbin2.lstI cat usrbin1.lst usrbin2.lst > usrbin3.lstI more usrbin3.lstI less usrbin3.lst
![Page 8: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/8.jpg)
pipe, grep . . .
I ls -lht /usr/bin | moreI ls -lht /usr/bin | lessI ls /usr/bin | moreI ls /usr/bin | lessI grep maxima usrbin1.lstI grep maxima usrbin2.lstI ls -lht /usr/bin | grep maxima
![Page 9: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/9.jpg)
grep i regular expressions
I grep, globally search a regular expression and printI regular expressionI knjiga, 197 stranaI Google Analytics, Regular Expressions
![Page 10: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/10.jpg)
scripting . . .
I pokrenuti editor, gedit radiI View, Highlight Mode, sh
↑ podešava context highlightingI scripts su obično sa ekstenzijom shI mada ne mora . . .I videćete šta radi file
![Page 11: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/11.jpg)
script file 1: radi
ls -lh /usr/bin > usrbin1.lstls /usr/bin > usrbin2.lstls -lh > ls.lstmkdir lstmv usrbin1.lst lstmv usrbin2.lst lstmv ls.lst lstcd lstls -lhcd ..
![Page 12: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/12.jpg)
script file 2: briši
gedit brisi.sh
rm -i lst/*.lst
![Page 13: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/13.jpg)
startovanje shell file kao data file
I file radi, koji je tip fajla?I ls -lh radi, biće još reči o ovomeI bash radiI pogledajte šta je urađeno!I bash brisi.shI pogledajte šta je urađeno!I sh radiI pogledajte šta je urađeno!I sh brisi.shI pogledajte šta je urađeno!
![Page 14: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/14.jpg)
privileges . . .
I ls -lhtrI i postoji nešto nalik na -rw-r--r-- pa podaci o fajluI i nešto nalik na drwxr-xr-x pa podaci o direktorijumuI prvi znak: - za fajl ili d za direktorijumI r je read, w je write, x je execute (ls)I tripleti rwx︸︷︷︸
user
rwx︸︷︷︸group
rwx︸︷︷︸other
I svaka privilegija (r, w ili x je jedan bit)I triplet daje oktalnu cifru, rwx je 7, r-- je 4, --x je 1, . . .I privilegija se kodira kao trocifreni oktalni brojI rwx------ je 700I rwxr--r-- je 744I rw-r--r-- je 644
![Page 15: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/15.jpg)
chmod . . .I ls -lh radiI chmod <code> <file_name>I chmod 700 radiI ls -lh radiI pozeleneo?I drugi načinI chmod {u|g|o}{+|-}{r|w|x} <file_name>I chmod u-w radiI ls -lh radiI chmod u+w radiI ls -lh radiI chmod go+x radiI ls -lh radiI chmod go-r radiI radiI ./radi
![Page 16: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/16.jpg)
script file 3
gedit argumenti0.sh
#!/bin/bashecho $0echo $1echo $2echo $3
file argumenti0.shsh argumenti0.shsh argumenti0.sh a b csh argumenti0.sh d ebash argumenti0.sh./argumenti0.sh
![Page 17: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/17.jpg)
#!
I #!I promenite u argumenti0.sh prvi red u
#!/bin/shi save kao argumenti0a.sh
I promenite u argumenti0.sh prvi red u#!/usr/bin/pythoni save kao argumenti0b.sh
I obrišete prvi red i save kao argumenti0c.shI file argumenti0.shI file argumenti0a.shI file argumenti0b.shI file argumenti0c.sh
![Page 18: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/18.jpg)
shell? malo istorije (za zainteresovane) . . .
I https://en.wikipedia.org/wiki/Unix_shellI https://en.wikipedia.org/wiki/Thompson_shellI https://en.wikipedia.org/wiki/Bourne_shellI https://en.wikipedia.org/wiki/Stephen_R._BourneI https:
//en.wikipedia.org/wiki/Bash_%28Unix_shell%29I i jedna knjiga:
http://sourceforge.net/projects/linuxcommand/
![Page 19: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/19.jpg)
script file 4
gedit argumenti1.sh
#!/bin/bashecho 0echo $0echo 1echo $1echo 2echo $2echo 3echo $3
file argumenti1.shsh argumenti1.sh./argumenti1.sh
![Page 20: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/20.jpg)
script file 5
gedit argumenti2.sh
#!/bin/shecho 0: $0echo 1: $1echo 2: $2echo 3: $3
file argumenti2.shsh argumenti2.sh
![Page 21: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/21.jpg)
environment variables, PATH
I printenvI printenv | lessI printenv PATH (prikaže vrednost promenljive PATH)I printenv PATH | grep homeI echo $PATH (prikaže vrednost promenljive PATH)I $PATH (shell pokušava da izvrši)
![Page 22: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/22.jpg)
environment variables, PWD
I pwd (print working directory)I printenv PWD (isto!)I echo $PWD (isto!)I echo PWD (ništa korisno)I $PWD (pokuša da izvrši)I echo $pwd (ništa)I echo $(pwd) (ništa)I $(pwd) (pokuša da izvrši)
![Page 23: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/23.jpg)
proširimo PATH!
I echo $PATHI echo $PATH:$PWDI PATH=$PATH:$PWDI printenv PATHI printenv PATH | grep homeI radi
![Page 24: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/24.jpg)
čišćenje . . . uvek!!!
I cd lstI lsI ls -1I rm -i *I lsI cd ..I rmdir lst
![Page 25: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/25.jpg)
vaš prvi Python program, proba, bez .py . . .
I python, imate li instaliran python koji nije python3?I za ovaj primer razlika je samo u ()
#!/usr/bin/python3
print()print(’Hello World!’)print()print(’MPFC’)print()
![Page 26: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/26.jpg)
pokretanje, . . .
I python3 probaI chmod +x probaI ./probaI chmod -x probaI ./probaI python3 probaI cp proba proba.pyI ls -lhtrI idle (Not IDE, Eric Idle?)I File, Open, proba.pyI context highlightingI Run, Check Module (Alt+X)I Run, F5
![Page 27: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/27.jpg)
vaš drugi Python program, f.py, in gedit . . .
#!/usr/bin/python3
print()n = int(input(’argument = ’))print()
f = 1for i in range(n):
f = f * (i + 1)
print(n, "! =", f)print()
![Page 28: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/28.jpg)
pokretanje . . .
I da probamo sva tri nacina, sa i bez .py?I ipython3I run f.pyI ctrl/d ili ^dI vrednosti promenljivih ostaju u interpreteruI nema problema sa velikim brojevima, dynamic typingI a kako je počelo? ovako:I python3I execfile(’f.py’)I ^d
![Page 29: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/29.jpg)
Zadatak: Fibonačijevi brojevi
I fn = fn−1 + fn−2, f1 = 1, f2 = 1I lista od prvih n Fibonačijevih brojeva
![Page 30: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/30.jpg)
Fibonačijevi brojevi, Python
#!/usr/bin/python3
n = int(input(’duzina liste (int, >2): ’))
print()
a = b = 1
print(16 * ’-’)
i = 1print(repr(i).rjust(3) + ’ ’ + repr(a).rjust(10))i = 2print(repr(i).rjust(3) + ’ ’ + repr(b).rjust(10))
for i in range(2,n):a, b = b, a + bprint(repr(i+1).rjust(3) + ’ ’ + repr(b).rjust(10))
print(16 * ’-’)
![Page 31: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/31.jpg)
zadatak, C program, faktorijel
I Dennis MacAlistair Ritchie (Username: dmr, September 8,1941 – October 8, 2011)
I "UNIX is very simple, it just needs a genius to understand itssimplicity."
I "C is quirky, flawed, and an enormous success."I zatraži argument sa argument =I izračuna faktorijel i javi rezultat u formi m! = nI gedit faktorijel.cI pišete program . . .
![Page 32: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/32.jpg)
jedan C program . . .
#include <stdio.h>
int main(){
int i, n, f;
printf("\nargument = ");scanf("%d", &n);
f = 1;for (i=1; i<=n; i++) {f=f*i;}
printf("\n%d! = %d\n\n", n, f);
return 0;}
![Page 33: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/33.jpg)
GCC, prevođenje
I gcc -o faktorijel faktorijel.cI ls -lhI zeleni faktorijel?I ./faktorijelI problemi sa velikim brojevima?
![Page 34: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/34.jpg)
Fibonačijevi brojevi, C, simplified#include <stdio.h>
int main(void){
printf("\nn = ");int n;scanf("%d", &n);
int i = 1, j = 1, k, c;printf("\n\n1\n1\n");
for (c = 2; c <= n; c++){
k = i + j;i = j;j = k;printf("%d\n", k);
}
return 0;}
![Page 35: operativnisistem —part2—](https://reader035.vdocuments.pub/reader035/viewer/2022080303/62e8b84aaa1ca3591739c1a0/html5/thumbnails/35.jpg)
korak napred, IDE, Code::BlocksI IDE, Integrated Development EnvironmentI Eclipse, Code::Blocks i Geany popularni . . . ovde C::BI gdb, command line, samiI kreirate projekat, EmptyI Debug/Release versionI BuildI watchesI breakpointsI start, step into, shift-F7I izvršavanje korak po korak, F7I na kraju build Release versionI F7 ili button panelI watch Local variablesI just to get acquainted . . .