You are on page 1of 51

Oktobar 2019.

Broj 51
Broj 51

Li B RE ! Časopis o slobodnom softveru

SOFTVER OTVORENOG KODA U NASTAVI


osvrt iz ličnog iskustva na prije i poslije

ЈOŠ IZDVAJAMO
Аnsibl - kontrola na vrhovim vaših prstiju
Programski jezik R i njegova primena u nauci o podacimа
1
Creative Commons Autorstvo-Nekomercijalno-Deliti pod istim uslovima
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Reč urednika

Slobodan softver u školama

U više navrata smo se trudili da kroz članke u Časopisu istaknemo značaj upotrebe
slobodnog softvera u školama. U prethodnom broju smo objavili članak o primeru
upotrebe na fakultetu u Novom Sadu, a za ovaj broj smo našli odličan primer upotrebe u
osnovoj školi u Zenici. Članak pod nazivom „Softver otvorenog koda u nastavi - osvrt iz
ličnog iskustva na prije i poslije” je pored konkretnih argumenata za upotrebu naveo i
koje su sve pozitivne promene zapažene u toj školi.
Takođe bi želeli da spomenemo da je pre nastanka časopisa GNU-Linuks centar ostvario
projekat instalacije slobodnog softvera u pet srednjih škola u Srbiji. Ukoliko neka osoba
ima informaciju koje su to škole i da li se u njima još uvek koristi slobodan softver,
zamolili bismo je da nam javi.
U ovom broju ćete imati priliku da se upoznate sa programskim jezikom R i naukom o
podacima, ova tema će biti obrađivana u par narednih brojeva i u ovom ćete saznati i
malo o upotrebi ovog jezika na Elektrotehničkom fakultetu u Beogradu. Još jedan serijal
započet u ovom broju je posvećen pisanju skripti u Bešu. Beš je interpreter i programski
jezik u obliku komandne linije koji može naprednim korisnicima u velikoj meri da olakša
upotrebu linuks operativnih sistema.
Rubrika „Predstavljamo” u ovom broju sadrži dva operativna sistema vredna pažnje.
Jedna od predstavljenih distribucija namenjena testiranju veb aplikacija i koja polako
postaje popularna u široj zajednici - jeste Perot OS. O drugoj distribuciji, Alpajn linuksu,
tek smo započeli u ovom broju i imaćete priliku da kroz serijal u narendih nekoliko
brojeva upoznate detaljno ovaj operativni sistem.
Poznavanje Beša je nešto što se podrazumeva za sistemske administratore, a alat koji

2
Broj 51

Reč urednika
im može biti od koristi je Ansibl - alat za sistemske administratore kreiran od strane
sistemskih administratora. Na kraju, pored nastavaka ranije započetih serijala, u ovom
broju se možete upoznati sa Flejmšotom - moćnim softverom za slikanje ekrana.
Do sledećeg broja,
LiBRE! tim

3
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Sadržaj
Vesti str. 6
Distrovoč str. 11
Puls slobode
Softver otvorenog koda u nastavi
osvrt na prije i poslije str. 12
Lugons manifest str. 17
Predstavljamо
Šareni svet papagaja - PerotOS str. 19
Аlpajn linuks (1. dео) str. 23
Oslobađanje
Kripto-anarhija (2. deo)
Коnačna vizija svijeta kriptoanarhista str. 28
Кako da...?
Flejmšot - moćni softver za slikanje ekrana str. 33
Uvod u funkcionalno programiranje (3. deo) str. 37
Slobodni profesionalac
Ansibl - kontrola na vrhovima vaših prstiju str. 42
Programski jezik R i njegova primena u nauci o podacima
(1. deo) str. 46
Sam svој majstor
Pisanje skripti u Bešu (1. deo) - Uvod str. 49

Moć slobodnog
softvera

4
Broj 51

LiBRE! prijatelji

Tilda

H KLB G D cryptoparty
Broj: 51
49 Autori u ovom broju:
Izvršni urednik: Nikola Todorović Marjan Bugarinović Liora
Marjan Đuran Omer Ramić
Главниlektor:
Glavni лектор: Marko Jovanović Nadica Miljković
АдмирHalilkanović
Admir Халилкановић Nikola Todorović Stefan Nožinić
Лектура:
Lektura: Počasni članovi redakcije:
ЈеленаMunćan
Jelena Мунћан Saška
СашкаSpišjak
Спишјак Dejan Maglov Mihajlo Bogdanović
АлександарBožinović
Aleksandar Божиновић Vladimir Popadaić Željko Šarić
БраниславаIlićИлић
Branislava Аleksandar Stanisavljević
Маја Cvetković
Maja Цветковић Željko Popivoda
Grafička obrada:
Графичка обрада: Е-pošta: libre@lugons.org
Зоран Lazarević
Zoran Лазаревић Veb: http:/libre.lugons.org
Дизајн:WhiteWhite
Dizajn: CircleCircle
Creative
Creative
TeamTeam Kontakt:
IRC: #floss-magazin на irc.freenod

5
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Vesti
12. mart 2019.

Formirana OpenJS fondacija


Linuks fondacija je otkrila kako će spajanjem
njenog projekta JS fondacije i Noud JS fondacije
nastati nova, OpenJS fondacija. Fokus nove
fondacije će biti na organizaciji i finansiranju svih
događaja i projekata koji utiču na pozitivan razvoj
Javaskript jezika i veb tehnologija.
Korisni link: https://bit.ly/2J9swiD
18. april 2019.

Objavljen Ubuntu 19.04


Objavljeno je novo izdanje Ubuntu operativnog
sistema sa kojim dolazi do vizuelnog unapređenja
distribucije i ubrzanje Gnom desktop okruženja.
Pored unapređenja koja će biti vidljiva
korisnicima, ispod haube će se nalaziti Linuks
kernel 5.0 i novi drajveri za grafiku.
Korisni link: https://bit.ly/2meVank
24. april 2019.

Cern započeo migraciju sa


Majkrosfotovog softvera
Godinu dana nakon što je Cern pokrenuo Malt
projekat (Majkrosoft alternative projekat),
započeta je migracija prve stvari koje će dobiti
zamenu jeste mejl servis i Skajp. Još jedna novost
iz Cerna je da prestaju sa razvojem Sajentifik
linuks distribucije, a razlog za ovo je zaključak da
je CentOS dovoljno dobar da ga zameni, a bolje je

6
Broj 51

Vesti
posvetiti više pažnje razvoju jedne distribucije
umesto dve.
Korisni link: https://zd.net/2F87Hj1
https://bit.ly/2Pw0P38
2. maj 2019.

Objavnjen GNU Guiks 1.0


Nakon sedam godina razvoja objavljen je GNU
Guiks 1.0. Ovaj potpuno slobodni menadžer
paketa je dobio svoje stabilno izdanje i činiće
veoma važnu komponentu svakog GNU
operativnog sistema.
Korisni link: https://bit.ly/2VIcEZn
15. maj 2019.

Objavljen OpenSSH 8.0


Među nekoliko zanimljivih poboljšanja prisutnih u
novoj verziji OpenSSH posebno je zanimljivo to
što je uvedena eksperimentalna podrška za
algoritme za razmenu ključeva otpornih na
kvantne računare.
Korisni link: https://bit.ly/2l9UrUj
17. maj 2019.

Vlada Južne Koreje prelazi na


linuks
Nakon isteka podrške za Vindouz 7, vlada Južne
Koreje je odlučila da smanji troškove i zavisnost
od privatne kompanije tako što će Vindouz 7

7
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Vesti
zameniti nekim linuks operativnim sistemom.
Trenutno, ministarstvo unutrašnjih poslova radi
na testiranju linuks distribucije koja bi trebala da
bude zamena.
Korisni link: https://tek.io/2kFh0Qu
1. jun 2019.

Pajser konferencija
U Novom Sadu se 1. juna održala druga po redu
Pajser konferencija posvećena Pajton
programskom jeziku i projektima pisanim u istom.
Snimci predavanja su dostupni za gledanje putem
linka ispod, a na nekim predavanjima možete čuti
i o projektima Tilda centra.
Korisni link: https://bit.ly/2mHYIyM
24. jun 2019.

Raspberry Pi 4 u prodaji
Raspberry Pi fondacija je pustila u prodaju novu
verziju popularnog malog računara. Po fizičkom
izgledu se ne razlikuje puno od svog prethodnika,
ali što se tiče hardverskih specifikacija, u odnosu
na stariji, novi model ima moćniji procesor,
verziju koja dolazi sa 4 GB ram memorije i dva
mikro HDMI porta.
Korisni link: https://tcrn.ch/2x8DdsH

8
Broj 51

Vesti
1. jul 2019.

Sedmo izdanje Mageia


operativnog sistema
Simbolično prvog dana sedmog meseca je
objavljeno sedmo veliko izdanje Mageia
operativnog sistem. Za korisnike će biti dostupna
64-bitna, ali i 32-bitna verzija ovog operativnog
sistema sa najnovijim verzijama svih
preinstaliranih paketa.
Korisni link: https://bit.ly/2mjlvR3
30. avgust 2019.

Francuska doprinosi
projektima otvorenog koda
Zabeležen je povećan doprinos projektima
otvorenog koda od strane Francuskih javnih
institucija. Programeri koji su zaposleni na
projektima Francuske vlade koji se hostuju na
Githabu, poslednjih godina sve više doprinose tim
projektima, ali i tuđim projektima otvorenog
koda, poput OpenDNSSec i Mozilin TheHive
projekat.
Korisni link: https://bit.ly/2kfjyop
13. septembar 2019.

Balkon 2019 - Neistražene


vode
Sedmi po redu međunarodni hakerski kongres
Balkon, ove godine pod nazivom Neistražene

9
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Vesti
vode, održan je od 13. do 15. septembra u
Novom Sadu. Pored naprednih predavanja na
koje smo navikli, ove godine je Balkon imao dosta
radionica i predavanja koji su bili za početnike
zainteresovane sa bezbednost u računarstvu.
Korisni link: https://bit.ly/2mc1egz
16. septembar 2019.

Ričard Stolman dao ostavku


na mesto predsednika FSF
Ričard Stolman, osnivač Pokreta za slobodni
softver, projekta GNU i Fondacije za slobodan
softver, podneo je ostavku na svoju poziciju
predsednika Fondacije za slobodan softver.
Korisni link: https://bit.ly/2lZiTHW

10
Broj 51

Distrovoč
Pregled popularnosti Gnu-Linuks i BSD distribucija u
poslednjih šest meseci
1 MX Linux 4873>
2 Manjaro 2663<
3 Mint 2043=
4 Debian 1513>
5 Ubuntu 1397<
6 elementary 1327<
7 Solus 1077<
8 Fedora 1018>
9 deepin 835>
10 Zorin 829<
11 openSUSE 794<
12 antiX 716-
13 CentOS 670>
14 KDE neon 649-
15 PCLinuxOS 603>
16 ArcoLinux 601>
17 Arch 591-
18 Pop!_OS 548>
19 ReactOS 527-
20 Mageia 481-
21 Parrot 451>
Pad <
22 Kali 447-
Porast > 23 Lite 434-
Isti rejting = 24 Puppy 399<
(Korišćeni podaci sa Distrovoča)
25 FreeBSD 383>

11
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Puls slobode

Softver otvorenog koda u nastavi


osvrt iz ličnog iskustva na prije i poslije

Autor: Omer Ramić


U ovom članku želim da iznesem lično iskustvo o korištenju softvera otvorenog
koda ( OSS ) u procesu nastave informatike. Nakon nekoliko godina rada u nastavi
sa opremom koja je imala instaliran isključivo softver zatvorenog koda (eng.
proprietary software) i prelaska na OSS želim da iznesem svoj osvrt i uporedim
iskustvo pri radu sa obje vrste softvera i zašto sam se na kraju odlučio na potpuni
prelazak na OSS.
Velika restrikcija danas su svakako licence u školama koje se traže i koje djeluju
kao sredstva za zaustavljanje razvoja , umjesto da se radi na promicanju
akademskog rasta u ovom informacijskom dobu.
Stoga sam želio da eliminišem skupe licence i dosadno (re)aktiviranje softvera
svako malo vremena, što je vremenom vrlo frustrirajuće ako dodate veliki broj
mašina koje imaju potrebu za ovim akcijama.
Pored licenci, veliki problem je i usporavanje računara koje se vremenom povećava
prilikom korištenja Vindouza zbog arhitekture na kojoj se zasniva rad ovog
operativnog sistema i načina ažuriranja datoteka (izmjene starih DLL biblioteka sa
novijim verzijama) . A onda je tu i činjenica da se u nastavi uglavnom koristi starija

12
Broj 51

Softver otvorenog koda u nastavi


oprema. Neki programi kao što su antivirusi velikim dijelom doprinose usporenom
radu starijih računara.
Dodatni problem koji je vrlo značajan su i privilegije korisnika računara na Vindozu.
Vindouz dopušta i računarima koji nemaju administratorska dopuštenja da kopiraju
i instaliraju neke vrste programa ili da mijenjaju veliki dio postavki. Što je na kraju
dovodilo do novoinstaliranog softvera koji bi se samo na jednom pojavio na
računarima i otežao održavanje i uzrokovao gubljenje vremena tokom uklanjanja
istog. Svemu ovom nije pomoglo ni prinudno ažuriranje operativnih sistema od
strane Majkrosofta na novije verzije Vindouza koje su same po sebi postale
izuzetno velike i zahtjevne. Suviše teške za starije mašine koje se koriste u nastavi
da bi ih se moglo koristiti efikasno.
Ukoliko težite što boljoj radnoj atmosferi, izuzetno je važno i efikasnost podići na
što veći nivo (što manje vremena provoditi u održavanju opreme, a više u
efektivnom radu) .
S obzirom na to da sam i sam već nekoliko godina bio korisnik Linuks operativnih
sistema i softvera otvorenog koda, već sam znao odgovor na sve ove dileme.
Nakon konsultacija sa direktorom i drugim izvorima (NPiP i preporuke od strane
Ministarstva obrazovanja, kulture i sporta) gdje stoji da škole mogu i imaju pravo
vlastitog izbora da u nastavi koriste onaj softver koji smatraju prikladnijim. Nakon
testnog perioda korištenja OSS-a na nekoliko računara, ostao sam pozitivno
iznenađen zbog potpunog prihvatanja korištenja ove vrste softvera od strane
samih učenika. Nove generacije uistinu ne bježe od tehnologije, novih ideja,
promjena i rada. Ipak kao prosvjetni radnici imamo dužnost da ih inspirišemo,
upoznamo sa alternativnim izvorima i ponudimo im izbor. Prosvjetni radnik treba
svakako da ima veliku ulogu i u borbi protiv cenzure i bilo kakvih prepreka koje
stoje na putu slobodnog toka znanja i nesputanog širenja informacija, a što i jeste
ideja na kojoj se OSS zasniva i razlog zašto postoji. Uzevši u obzir sve ove dileme
koje bi bile riješene, prije nešto više od godinu dana došlo je do potpunog prelaska
na softver otvorenog koda u nastavi informatike u Osnovnoj školi „Meša
Selimović” u Zenici. Iako je sve možda krenulo kao jedan bun,t da bi se olakšalo
održavanje i pružilo učenicima da imaju jednakost u korištenju softvera
eliminisanjem skupih licenci koje neki učenici nisu financijski u mogućnosti da
kupe, sve je rezultiralo velikim i značajnim promjenama u radu.

13
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Puls slobode

Pozitivne promjene nakon prelaska


- Nema više usporavanja rada računara, onako kako su radili prije godinu dana
tako rade i dan-danas.
- Nijedan računar u toku godine dana nije imao potrebu za reinstaliranjem,
uklanjanjem neželjenog softvera ili dodatnim radom na istom, uz potpunu
stabilnost rada bez potrebe za restartovanjem u toku rada.
- Jednakost u radu svih učenika, svi imaju isti softver, iste verzije bez ikakvog
ulaganja. Ovo prije nije bio slučaj. Istina je da je svaki računar imao drugu verziju
Vindouza i nezamjenjivu standardnu Ofis 2003 verziju. (u upotrebi su i alternativne
besplatne //GSuite google aplikacije/classroom//)
- Starije mašine imaju sasvim zadovoljavajuće performanse na LTS verziji Linuksa
(Edubuntu 14.04) koji je trenutno u upotrebi.

14
Broj 51

Softver otvorenog koda u nastavi


- Lokalizacija softvera je sasvim jednostavna za korištenje bilo kojeg jezika, iako
sami učenici preferiraju da se radi sa engleskom verzijom.
- Virusi su stvar prošlosti, nema potrebe za antivirusima koji bi usporavali rad
računara.
- Ono što je za mene još veće zadovoljstvo je indirektno provlačenje ideje kroz
umove mladih o podizanju svijesti o slobodi informacija i monopolu nad
informacijama koje velike kompanije drže.
- Uz ovaj softver dolaze instalirani i razvojni alati, kao što je programski jezik
Pajton. Editori za pravilno formatiranje sintakse, a što je vrlo poželjno za nove
inovativne tehnike i rad sa učenicima. Primjer je uvođenje STEM projektne nastave
koja zahtijeva rad sa uređajima kao što su Arduino i Mikro:bit. To sve, naravno,
veže programski jezik Pajton, skripte pisane u Pajton programskom jeziku radi
automatizacije sistema STEM projekata.

API IoT - Čitanje serijske konekcije i slanje podataka u realnom vremenu na


server, npr. kako bi prikazali sve parametre projekta automatizacije recimo
plastenika; temperatura, vlažnost zraka i zemlje, automatsko djelovanje kao
zalijevanje …

15
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Puls slobode
Dodatni razlozi ličnog preferiranja OSS-a u
nastavi i nauci
Već u 7. razredu osnovne škole, kada se rade praktični radovi u obliku prezentacija,
učenicima se predstavlja pojam intelektualne svojine i standarda Creative
Commons licence.
Standard otvorenog koda svakako se nadopunjava na ove licence tako što
omogućava učenicima da slobodno kopiraju, dijele i koriste tehnologiju besplatno.
Veliki broj ljudi koristi softver otvorenog koda zbog toga što imaju daleko veću
kontrolu nad određenom vrstom softvera, jer mogu da pregledaju kod i da se
uvjere da ne radi nešto opasno ili nešto što narušava privatnost. A mogu slobodno
mijenjati i ono što im nije po volji. S obzirom na to da je kod ove vrste softvera sav
kod javno dostupan, studenti mogu dosta lakše da nauče kako da stvaraju bolji
softver. Taj svoj rad mogu dijeliti sa drugima, pozivati na komentarisanje i kritiku
da bi razvili svoje sposobnosti. Kada ljudi pogriješe, mogu dijeliti i te svoje greške,
tako da drugi mogu da izbjegnu iste te greške. Ova sloboda ljudima pruža
mogućnost da postanu mnogo kreativniji u svom radu.
Bitan temelj ideje OSS-a je svakako i prihvatanje i razvoj otvorenih standarda u
svim IT sferama . Nadam se da će u skorijoj budućnosti ove nove generacije koje
koje se ne boje da koriste drugo i drugačije biti uzrok da se izbaci ustaljeno
mišljenje da se isključivo sve mora pisati i slati u vord formatu.

Zaključak
Ali kada se uistinu stvari mijenjaju? Ljudi mrze i boje se promjena iako ih
priželjkuju, žele da se sve mijenja, ali da se za njih same ništa ne promjeni kada se
radi o ličnim navikama. Uzet ću primjer sebe i kolega koji se vrlo često svim silama
opiru promjenama da ne bi morali da mijenjaju svoj način rada, razmišljanja, jer
nemaju vremena da se nose sa promjenama kojima bi morali da se prilagode.
Želim da kažem da promjene nastaju od nas samih, ukoliko se mi mijenjamo,
mijenja se i okolina sa nama. Budimo promjena koju želimo da vidimo.

16
Broj 51

Lugons manifest

Lugons manifest

U današnje vreme informaciono društvo ne može više ni da se zamisli bez


računara. Moguća primena automatizovane obrade i prenosa podataka predstavlja
šansu, ali i rizik za pojedince i društvo. Korak ka informacionom društvu zahteva
“pravo” da komunicira na globalnom nivou uz nesmetanu komunikaciju. LUGoNS,
kao jedna od najstarijih hakerskih zajednica na našim prostorima, pored zalaganja
za podsticanje korišćenja GNU/Linuks operativnog sistema, promovisanja i širenja
slobodnog sofvera (eng. FLOSS - Free/Libre and Open Source software), ima takođe
za cilj da prati i izučava razvoj novih tehnologija, kao i da bude njihov posrednik u
tehničkom i socijalnom aspektu.
Hakerska zajednica je zajednica ljudi bez obzira na starost, pol, poreklo i socijalni
status, koja promoviše odgovornu slobodu i bavi se uticajem tehnologije na
društvo i pojedinačna živa bića, i pospešuje njihov dalji razvoj znanja.
Haker (eng. Hacker) je osoba koja poseduje izvanredno znanje iz oblasti računara,
softvera i hardvera. Ova reč se danas pogrešno koristi i sinonim je za korisnika koji
bez dozvole želi da pristupi nekom računaru, internet resursu ili samo želi da
zaguši saobraćaj i onemogući trenutno korišćenje određenog servisa. Hakeri
obično poseduju veoma visok nivo intelektualne svesti i njihova moralna načela
posvećena su najvišim ciljevima modernog društva.
Hakerska etika temelji se na razmeni stručnog znanja i pisanju slobodnog softvera
radi lakšeg pristupa informacijama. Hakeri poštuju etiku, bore se protiv virtuelnih
kriminalaca i rade na otkrivanju sigurnosnih propusta u sistemima kako bi ih što
bolje zaštitili.
Osnove hakerske etike - motivacija i granica:

17
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Predstavljamo
- Pristup računarima i svemu što može da pokaže kako ovaj svet funkcioniše, treba da
bude neograničen i potpun.
- Informacije treba da budu slobodne.
- Sudi o hakerima na osnovu njihovoga rada, a ne na osnovu kriterijuma kao što su
izgled, starost, poreklo, pol ili društveno opredeljenje.
- Ne preturaj po podacima drugih.
- Koristi javne informacije, privatne štiti.
- Računari mogu da poboljšaju i unaprede kvalitet života.
- Pomoću računara, misao i ideja mogu da se pretvore u kreativnu umetnost.
“Svaka je revolucija na početku bila samo misao u glavi jednog čoveka, a kada se
ta ista misao pojavila i u drugom čoveku, dobili smo ključ za novo doba.” - Ralf
Valdo Emerson

18
Broj 51

Šareni svet papagaja - Perot OS

Šareni svet papagaja - Perot OS

Autor: Liora
Svet operativnih sistema predstavlja svet novih otkrića, radosti, frustracija i
znatiželje, kako krajnjeg korisnika/ice, tako i profesionalaca i hobista unutar
informacijsko-komunikacijskog sveta. Nakon popularizovanja serijala Mister Robot i
predstavljanja Kali distribucije, svet pentesterskih distroa kao da se promenio.
Nove generacije klinaca su prigrlile automatizaciju sigurnosti i penetracijskog
testiranja, dok su starije generacije profesionalaca i hobista bile komforne sa
olakšavanjem dnevnog posla.

19
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Predstavljamo
Jedna od distribucija koja polako prerasta Kali i postaje popularnau široj zajednici
jeste Perot OS (eng. Perrot OS). Distribucija koja je usmerena ka složenim
prohtjevima zajednica sigurnosnih stručnjaka i penetracijskih testera, sa posebnim
fokusom na stvaranje okruženja u kojem mogu vrlo lako i brzo postići profesionalne
i druge rezultate. Perot OS nastaje 2013. godine od strane FrozenBokѕ tima, te se
danas razvija uz pomoć svih zainteresiranih kontributora/ica. Osim primarne
verzije sigurnosnog operativnog sistema, Perot OS se još može naći i kao
„Homestation”, te Studio verzija.

Zašto je Perot OS bolji od Kali?


Lepota je u oku posmatrača/ice, ali Perot OS nudi veći spektar alata sa
profesionalne i korisničke strane. Osim dizajna koji je neupitno „slatkiš za oči”, sa
fantastičnom primjenom boja i daškom magije zelenih slova na crnoj podlozi, Perot
nudi i prijateljsko okruženje za korisnike u vidu laganog interfejsa. Moja lična
iskustva sa pisanjem izvještaja u domeni penetracijskog testiranja idu na stranu
Perot OS-a zbog brže i lakše organizacije nakon obavljenog glavnog dela posla.
Osim što je sa profesionalne strane vrlo zahvalan, činjenica koja ide kao najveći
argument Perot OS-u jeste privatnost i anonimnost za početnike. Za krajnjeg
korisnika/icu problem privatnosti i anonimnosti je ogroman, a objašnjavanjem
različitih tehnoloških stvari koje su odveć komplikovane, može zadati previše

20
Broj 51

Šareni svet papagaja - Perot OS


glavobolje. Razumevanje sigurnosti, po skromnom mišljenju, potiče od izgradnje
iste od strane osobe koja je potražuje. Perot OS tu daje anonimnost, privatnost i
dovoljan nivo sigurnosti koji obezbeđuje laganu implementaciju i integraciju, te
učenje korišćenja alata od strane početnika/ica. Sa paletom alata enkripcije i
anonimnog surfanja koji su implementirani i unutar edicije „Home”, krajnji korisnici
vrlo brzo stiču naviku korišćenja istih što doprinosi maksimalizaciji sigurnosti u
digitalnoj sferi.

A za programere?
Sa papagajem poput Perot OS-a, programiranje nikada nije bilo lakše! Parrot OS
dolazi sa nizom integrisanih IDE-a i tekst editora, koji su tu na dohvat klika. Sve
ostale editore je lako instalirati kroz Snap ili starim, dobrim „sudo apt-get install”.
Osim što možete da pentestirate dok igrate šah ili pišete ultra-kul naučno-
fantastičnu novelu na poslu, možete i da dokono istražujete najdublje kutove
interneta sigurni u svoju anonimnost.

21
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Predstavljamo

Zaključak
Kali, kao penetracijsko-testerska distribucija, i dalje ostaje na tronu zbog ogromne
dokumentacije, prijateljske zajednice i potpore od strane Ofensiv sekjuritija. Ako na to
dodamo i armiju novih ljubitelja koji su svoje prve korake u svijetu informacijskih
tehnologija načinili sa Kali distribucijom nakonВ рpopularne
е м е и мserije,
е с т Kali
о je dobra,
provjerena distribucija. Perot OS će doživjeti svojevrsnu ekspanziju korisnika jer - on je
švicarski nožić distribucija koje se bave penetracijskim testiranjem. Zajednica koja
svojim prijateljskim, stručnim i prijatnim savetima dočekuje nove članove, te je
konstantno otvorena za različite diskusije je ono što staru frazu „Budimo odlični jedni
prema drugima!“ oživljava.

22
Broj 51

Аlpajn linuks

Al pa j n Li n u ks ( 1 . d eo)
Autor: Marjan Đuran
Uvod
Razvoj Alpajn Linuksa (eng. Alpine Linux) počeo je pre više od decenije. Tvorci su
inicijalno zamislili da se pokreće samo iz RAM memorije. Takođe, jedna od ideja je
bila da služi kao operativni sistem za rutere i slične projekte gde je potrebno
portovati linuks operativni sistem (eng. embeded systems), za primer možemo
uzeti Open VRT (eng. Open WRT) sistem namenjen ruterima. Uglavnom su u
pitanju projekti koji nemaju snažne hardverske resurse, a kojima je bitna
bezbednost. Tim koji radi na razvoju sistema, kao vodilju za svoj rad koristi tri
smernice koje karakterišu ovu distribuciju: mali, jednostavan, bezbedan (eng.
Small. Simple. Secure. ). Sistem nikada ne pokreće nijedan servis koji nije
eksplicitno naveden, dakle od trenutka instalacije pokreću se samo najneophodniji
procesi, nakon podešavanja, samo oni koje administrator, to jest korisnik sistema
želi.

Arhitektura
Kako sam idejni tvorac voli da naglasi, Alpajn Linuks je „sagrađen oko” musl libc
biblioteke i BiziBoks (eng. BusyBox) paketa korisničkih aplikacija. Pri tome se misli
na aplikacije više na sistemskom nivou, a ne na aplikacije kao što su pregledač veb
stranica ili aplikacije za razmenu poruka. Ono što je posebno kod musl libc
biblioteke jeste što je značajno manja u odnosu na široko rasprostranjenu glibc
biblioteku ( GNU C Library), ali i dalje obezbeđuje osnovne C/POSIKS (eng. C/POSIX)
biblioteke i dodatke za funkcionisanje sistema (eng. Core system libraries) – C
biblioteke nalaze se na sloju iznad kernela i obezbeđuju funkcionisanje takozvanog
korisničkog dela (eng. userspace) i kako na zvaničnom vebsajtu piše – namenjena

23
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Predstavljamo
je novim generacijama na linuksu baziranih uređaja. Posebno se izdvaja po
čitljivosti i urednost kôda (stoga je lakše prekontrolisati i ispratiti sam kôd). Uz
kombinaciju sa izuzetno manjim obimom, smanjuje se mogućnost greške i
pravljenja propusta, što se u praksi i dokazalo. Zbog toga se musl libc smatra i
bezbednijim što dokazuje statistika da je od 2010. do 2017. godine u glibc
biblioteci pronađeno preko 80 propusta (zavedenih pod zvaničnim CVE brojevima -
Common Vulnerabilities and Exposures) dok je u musl libc gotovo deset puta
manje. Najznačajnija stavka koja nedostaje musl libc biblioteci u odnosu na glibc
su Name Service Switch (NSS) – koji omogućava dodavanje određenih mrežnih
servisa van glibc biblioteke i Network Service Library (libnsl) – osnovna biblioteka
za mrežnu komunikaciju na transportnom sloju u okviru glibc biblioteke. Osim toga
nedostaju podaci za lokalizaciju koji se mogu naknadno instalirati a u glibc-u
zauzimaju mnogo prostora.

Osnovne komponente sistema


BiziBoks se smatra „švajcarskim nožem”, namenjen je ugrađenim (eng.
embedded) Linuks distribucijama, odnosno distribucijama kao što je Alpajn Linuks
zamišljen da bude od samog početka. Može da se instalira na gotovo bilo koji
uređaj, bez obzira da li je moderan računar ili ruter star nekoliko godina. BiziBoks
je paket ( multi-call binary) najkorisnijih juniks (eng. UNIX) alata kao što su
adduser, awk, cat, chmod, dd, diff, less, ip, mkfs, ping, route, tail, wget.

24
Broj 51

Аlpajn linuks
Za proveru dostupnih aplikacija trenutne verzije na zvaničnom vebsajtu, osim
dokumentacije postoji veoma zanimljiva javaskript PC emulator aplikacija u kojoj
se učitava linuks konzola sa BiziBoks paketom. Tu se komandom busybox može
dobiti spisak aplikacija i testirati direktno na vebu bez instalacije ijednog
programa. Ceo paket teži oko 800KB uključujući i šel (eng. shell) i sve alate.
Poređenja radi, samo beš ljuska (eng. bash ) ima 668KB, te Alpajn Linuks dolazi sa
“skraćenom” ali funkcionalnom verzijom – ash.
Kernel – Takozvani Hardened Kernel koji koristi Alpajn Linuks je još jedan razlog
zašto se kaže da ima malu površinu za napad (eng. attack surface). Naime, radi se
o Vanilla kernelu, tj. osnovnoj verziji koja je doslovno „očvrsnuta” raznim
zakrpama, ali iz koje su izbačeni „suvišni” moduli čime se dodatno smanjuje
napadna površina. Tvorci Alpajn linuksa su bili inspirisani Džentu distribucijom, te
su preuzeli nezvaničnu verziju nastalu iz poznatijeg grsecurity ( grsecyrity fork).
Veoma sličan kernel koristi i OpenWall distribucija, namenjena rutiranju i mrežnim
operacijama.
OpenRC – još jednom, po uzoru na Džentu distribuciju, Alpajn Linuks koristi
OpenRC init sistem (razvijan za Džentu distribuciju) koji se zasniva na zavisnosti
(eng. dependency-based). Pri tome se misli na procese i utičnice (eng. socket).
Dakle, ne radi se o modernom SystemD init sistemu koji je danas najšire
rasprostranjen i zastupljen. Od kako je ušao u široku upotrebu, česte su rasprave u
linuks zajednici da li je dobijena brzina na uštrb bezbednosti uvođenjem SystemD
init sistema, te iako postoje osnovane sumnje, ovde ih nema jer je Sistem-D
izostavljen. Šta to govori iz ugla administracije jednog sitema? Komande za
upravljanje novim servisima izgledaju ovako:
rc-update add imeservisa nivopokretanja
rc-update del imeservisa nivopokretanja
rc-update imeservisa start/stop/restart

Nivoi pokretanja mogu biti: default - podrazumevani nivo od strane sistema,


hotpluged - privremeni, dok je sistem upaljen, manual - kako korisnik navede

APK menadžer paketa


Primetno je kako se svaka instalacija paketa ili ažuriranje sistema odvija veoma
brzo, pogotovo u poređenju sa instalacijama ili ažuriranjima na drugim Linuks

25
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Predstavljamo
sistemima kao što su Debian i njegovi derivati kao što su, Ubuntu, Mint, pa i ostali -
Fedora, Arč… U početku, Alpajn Linuks nije imao nikakav menadžer paketa, već je
sve moralo da se kompajlira. Kako je sam sistem dobijao sve širu primenu, tvorci
su shvatili da se to mora promeniti ako žele da sistem uđe u opštiju upotrebu, ali
im se nije svideo nijedan od već postojećih koje koriste ostali sistemi ( yum, dnf,
apt, pacman, emerge). Na prvom mestu jer su svi suviše spori, te su odlučili da
napišu novi. U početku je paket menadžer bio (b)ash skripta, ali je 2008. godine
prepisan u programskom jeziku C. To je otvorilo dosta mogućnosti da se dese
propusti i greške (eng. bug), odnosno otvore mogući vektori napada, što se kasnije
pokazalo kao tačno. APK je dosta brži iz razloga što je projektovan da radi
drugačije od ostalih, naime tradicionalni paket menadžeri uglavnom imaju tri
čitanja i dva upisa/pisanja prilikom instalacije novog paketa, dok APK ima jedno
čitanje i jedno pisanje. Tradicionalni paket menadžeri prvo preuzimaju paket,
odnosno čitaju sa mreže, zatim ih upisuju u lokalni keš, zatim vrše proveru paketa,
odnosno potpisa (checksum signature verification), i ukoliko provera pokaže da je
paket u redu – vrši se ekstraktovanje odnosno instalacija. APK čita sa mreže i
ujedno vrši proveru dok čeka na I/O odziv, zatim novi paket upisuje direktno na fajl
sistem ali pod nazivom imepaketa.apk-new a zatim vrši verifikaciju potpisa. Ukoliko
je sve u redu, promeniće ime paketa, ukoliko nije, paket će biti obrisan. Kako je
Alpajn Linuks isprva pravljen da se pokreće iz RAM memorije, menadžer paketa se
sastoji iz dve celine odnosno iz dve zasebne aplikacije, jedna je apk menadžer koji
služi za instalacije, ažuriranja, deinstalacije odnosno brisanja sa sistema, dok je
druga celina program lbu koji služi da sačuva sve podatke i konfiguracije
neophodne za brzo vraćanje i setovanje instaliranih programa nakon restarta
sistema. Programski paketi za Alpajn Linuks su digitalno potpisane .tar.gz arhive
koje sadrže programe, konfiguracione datoteke, kao i meta podatke zavisnih
paketa (eng. dependencies). Njima je data ekstenzija .apk i često se nazivaju „a-
paketi”. APK može da instalira pakete sa više različitih repozitorijuma sa interneta
ili lokalnih, npr. sa lokalnog medija kao što je lokalni direktorijum, disk ili USB
memorija koji sadrže .apk datoteke. Takođe, da bi se bilo koji medij ili direktorijum
smatrao ispravnim repozitorijumom, mora da sadrži repozitorijumski indeks,
odnosno datoteku koja se zove APKINDEX.tar.gz. Svi repozitorijumi se dostižu wget
komandom, odnosno programom koji dolazi u sastavu busybox paketa, a koristi
http, https ili ftp protokol. Spisak repozitorijuma nalazi se u datoteci
/etc/apk/repositories, gde se ujedno može i dodati putanja do nekog repozitorijuma
ili izmeniti protokol. Po osnovnim podešavanjima apk će koristiti sistemski
definisane repozitorijume za sve operacije (pretrage, instalacije, ažuriranje), ali se
po potrebi to može promeniti bez izmene konfiguracione datoteke već „u letu”

26
Broj 51

Аlpajn linuks
odnosno u toku operacije nekom od navedenih komandi. Sledi opis samo nekih apk
komandi.
pretraga paketa:
apk search imepaketa

instaliranje novog paketa:


apk add imepaketa

brisanje instaliranog paketa


apk del imepaketa

instalacija paketa koji nije „od poverenja”:


apk add --allow-untrusted /putanja/do/datoteke.apk

provera sigurnosnog potpisa paketa (signature):


apk verify imepaketa

Veliki propust koji su tvorci napravili jeste u protokolu koji apk koristi za
preuzimanje paketa sa nekog od zvaničnih repozitorijuma. Naime, podrazumevano,
kada se instalira Alpajn Linuks, preuzimanje paketa ide preko nezaštićenog HTTP
protokola bez SSL enkripcije (HTTPS). Iako ne znači da je ranjiv takav način
prenosa podataka (jer postoji mogućnost potpisivanja, što i radi) to je dalje ostavilo
otvorena vrata potencijalnim napadačima za MITM (eng. Man In The Midle Attack)
napad koji je Ariel Zelivanski (eng. Ariel Zelivansky) tokom svog istraživanja
iskoristio. Uspeo je u pokušaju da Alpajn Linuksu podmetne drugačiji paket od onog
koji je korisnik želeo da instalira, odnosno da paket „dopuni” neželjenim kodom
kojim je omogućio izvršavanje koda sa udaljene lokacije (eng. remote code
execution attack) i to sve je predstavio na konferenciji B-Sajds DC 2017. godine.
Ovo je do sada i jedini (poznati) propust u Alpajn Linuks distribuciji, a da nije
zavistan od biblioteka koje su korišćene u pravljenju distribucije.

27
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Oslobađanje

Kriptoanarhija (2. deo)


Konačna vizija svijeta kriptoanarhista

Autor: Liora
Pitanje koje je često dio debata, posebno u dobu senzacionalizma i populariziranja
kriptoanarhijske misli kroz kripto-ekonomiju i kripto-valute jeste: kakva je to
konačna vizija svijeta kriptoanarhijskih sljedbenika i samog temeljnog manifesta?
U srcu Delničke ulice u Pragu, crna zgrada se znatno ističe od drugih - Paralelni
Polis.

Ideja Paralelnog Polisa je primarna decentralizacija sistema i odgovor na

28
Broj 51

Kriptoanarhija(2. deo)
sverastuće promjene u svijetu koje se tiču digitalnog svijeta i decentralizirane
ekonomije. Iza ideje stoji Vlaclav Benda, poznati čehoslovački matematičar,
političar i revolucionar koji je ujedno sa Vlaclavom Havelom kreirao neviolentnu
revoluciju i ideju disolucije Češke i Slovačke uz oslobađanje od socijalističkog
režima, poznatiju kao Purpurna revolucija ili „Nježna revolucija”.
Realizacija ideje se desila prije nekoliko godina, kada je nekolicina mladih hakera i
digitalnih entuzijasta, odlučila da kombiniraju ideju Vlaclava Bende sa
kriptoanarhijom, digitalnom ekonomijom i anarho-kapitalizmom. Paralelni Polis nije
samo još jedan hakerski prostor. On je prvi centar kriptoanarhije sa Institutom za
kriptoanarhiju koji iz dana u dan dobija sve više sljedbenika. U Paralelnom Polisu
možete jesti, kupiti piće, odmoriti uz kafu, raditi ili kreirati nove stvari sa kripto-
valutama. Prvi Bitkoin kafić u Evropi koji se bazira na decentraliziranoj ekonomiji
pruža nevjerovatan uvid u malu, ali dinamičnu zajednicu kriptoanarhista. Osim što
možete vidjeti ekstremiste privatnosti sa maskom na licu, te ljude koji sa
mikročipiranim digitalnim novčanicima plaćaju svoja pića unutar Bitkoin kafea.

Pavol Luptak, etički haker, jedan je od kriptoanarhista.


Njegova vizija za budućnost je optimistična u tome da će sve više ljudi koristiti
decentralizovanu ekonomiju i kripto-valute, ali pesimistična zbog mogućeg
impakta vlada i država na blokčejn tehnologiju i kripto-valute, što bi označilo

29
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Oslobađanje
početak ilegalnosti kripto-valuta u svijetu i masovni nadzor u digitalnom prostoru.

No, za kriptoanarhiju danas nisu problem samo državne centralizovane službe, već
i mnogi novi korisnici decentraliziranog sistema koji su ušli u proces „kopanja”
kriptovaluta zbog sve većeg profita iz istih. Pavol u jednoj rečenici govori da
„Mnogi ljudi neće preći u kriptoanarhijski svijet zbog privatnosti ili slobode, već
zbog toga što će stvari biti jeftinije i pristupačnije na slobodnom marketu”.
Sama tranzicija koja se dešava kriptoanarhijskom dijelu ekonomske
decentralizacije sa prisvajanjem profita od strane ljudi doprinosi njenom
osnaživanju, ali da li to znači da će se ideja kriptoanarhije izgubiti vremenom?
Naravno, na takvo razmišljanje se direktno nadovezala sintaksa da je
kriptoanarhija „samo korak do anarho-kapitalizma i da ona u suštini predstavlja
realnu simulaciju anarho-kapitalističkog društva” što je Pavolova osnovna misao,
ali i mnogih drugih kriptoanarhista.
U razgovoru sa Pavolom, spomenula sam Infokalipsu, sveopšti metež i maliciozne
pojave interneta. Od toga da se vladine strukture pozivaju na veću sigurnost
uzimanjem osnovnih digitalnih prava ljudima pakujući to u zaštitu djece ili borbu
protiv terorizma.
Da li kriptoanarhiju čeka sudbina Infokaliptičnog proroka?

30
Broj 51

Kriptoanarhija(2. deo)
Pavol i drugi su preplašeni ovakvog scenarija i smatraju da će u budućnosti biti još
mnogo više pooštravanja kazni za sajber aktivnosti, bile one legalne ili ne.
Razmišljanje o tome da li će kriptografija, kriptovalute i slobodni internet marketi
biti zabranjeni u narednom periodu, dovodi nas do zaključka da sami zakoni u
kojima se povlastice i prednosti daju serijskim ubojicama ili različitim realnim
malicioznim pojavama pri suđenjima, dok se sajber napadi podvode pod direktnu
prijetnju nacionalnoj sigurnosti.
Posjedovanjem enkriptovanih dokumenata ili podataka, postajete sumnjivi ili kao
što je rekao Denis Riči: „Kriptografija je samo još jedan od načina da budete
sumnjivi vlastima Sjedinjenih Američkih Država”.
I ne samo Sjedinjenih Američkih Aržava, iako Evropska unija ima pogodnije zakone
u digitalnim pravima i slobodama, ona se sve više bliži prema principu
individualnog zakonodavstva, jednom vidu opisa Orvelovske države u kojoj veliki
brat ne štedi građanstvo, ali radnje vlasti ostaju prikrivene i zatamnjene. Ostaje
nam da u narednom periodu sagledamo perspektive i u kojem će se obliku nalaziti
digitalna prava i slobode. Digitalna dimenzija je često percipirana kao dimenzija
koja je drugačija od realnog svijeta, ali kada sklonimo pseudonime i korisničke
nazive, ostaje čovjek od krvi i mesa. Da li kriptoanarhisti smatraju da će linija
između digitalnog i realnog svijeta biti jače izražena i da će voditi ka
prepoznavanju prve autonomne zone interneta? Kriptoanarhija ne može biti
centralizovana u vidu digitalne države ili digitalne autonomne zone, ali da će
polarizacija između vlade i kriptoanarhijskog svijeta postojati i postajati sve
izraženija, to je neminovnost borbe za decentralizirani svijet.
Decentralizacija je ništa drugo do neutaživa žeđ za slobodom.
A kriptoanarhija je postala njena paradigma modernog svijeta, svijeta slobode u
kojem će individua imati prava, slobodu, privatnost i dovoljno resursa da može da
preživi i učestvuje u društvenom životu sa svojom doprinosom.
Paralelni Polis je bez sumnje jedan od najboljih predstavnika kriptoanarhijske
zajednice, njene dinamike, promišljanja i borbe. Članovi Paralelnog Polisa su
mahom etički hakeri ili entuzijasti različitih univerzitetskih usmjerenja koji
organiziraju, pored hakerskog kongresa, i niz besplatnih edukacija o digitalnom
prostoru i onome što oni rade.

31
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Како da...?

Njihova konačna vizija kriptoanarhijskog svijeta jesu jednake mogućnosti i sloboda,


jer kriptoanarhija nije vodila ratove, vlade jesu.
Kriptoanarhija nije kreirala opresiju, vlade jesu.
I u tim osnovnim argumentima kriptoanarhijskog diskursa, naziru se temelji
nastanka jednog jakog paralelnog digitalnog političkog sistema, koji će djelovati
bez obzira na zabrane ili dinamiku zakona.

32
Broj 51

Flejmšot - moćni softver za slikanje ekrana

Flejmšot
Moćni softver za slikanje ekrana
Autor: Marko Jovanović
Dešava se ponekad da ste se zaglavili na nekom problemu i želite da to podelite
na nekom forumu ili slično, ili od drugih želite da vam pošalju trenutni izgled
njihovog ekrana ili njegovog dela. U većini distribucija postoji default-no pozivanje
aplikacije koja slika ceo ekran. Često slučaj nalaže da je potrebno samo naglasiti
određeni deo ekrana, ili u moru podataka ne ekranu označiti onaj koji se vama čini
bitnim. U tom slučaju pozivanje paketa koji je verovatno već implementiran u
distribuciji je samo jedan od koraka (bilo da je pozivanje putem tastature PrtSc ili
kombinacijom Alt + PrtSc ili drugih u zavisnosti od grafičkog
okruženja/distribucije, a zatim obrada sačuvane slike preko nekog od grafičkog
editora poput Gimpa. Ubrzavanje ovog postupka je moguće preko softvera
Flejmšot ( Flameshot).

33
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Како da...?
Program Flejmšot ima svoju prezentaciju na githabu odakle možete da skinete kod
kao i da vidite spisak svih dosadašnjih commit-a i razvoja ove aplikacije, kao i
zvanični sajt (https://flameshot.js.org). U zavisnosti o kojim je reč, pakete možete
skinuti za skoro sve distribucije qt5 .
Korisnicima Arča program je dostupan preko AUR flameshot-git, Debijan 10+ preko
komande apt install flameshot, Ubuntu 18.04+: apt install flameshot, Fedora: dnf
install flameshot, openSUSE preko zvanične stranice, Void Linux: xbps-install
flameshot ili pomoću Dokera.
Treba voditi računa da Ubuntu 18.04 LTS izdanja mogu imati nešto starije pakete
koje mogu imati neke još nedostatke u funkcionisanju ili stabilnosti u radu. Jedini
problem koji se nama pojavio u verziji 0.5.1-2 je da se posle instalacije iz system
tray izgubila opcija take screenshot u Ubuntu Mejt 18.04.

Problem se jednostavno rešava skidanjem sa githaba poslednjeg paketa i


instalacije putem gdebi komande.
Korišćenje aplikacije je moguće na tri načina, pozivanjem same aplikacije putem
terminala, klikom na aplikaciju u system tray (što će biti zastupljeno u tekstu) ili
definisanjem prečica
na tastaturi.
Pozivanjem aplikacije
sam ekran se
zatamni gde odmah
imate nekoliko opcija
klikom na enter za
čuvanje celog ekrana
ili drag & drop
metodom povlačenja
miša obeležavate
željeni prostor.

34
Broj 51

Flejmšot - moćni softver za slikanje ekrana


Nakon toga dobijamo nekoliko opcija za obeležavanje prostora, putem olovke,
markera, strelice, kvadrata, kruga i sl. kao i mogućnosti čuvanja obeležene slike na
hard disku, čuvanje u klipbordu, direktno objavljivanje na servisu imgur ili
otvaranje slike sa nekim od instaliranih grafičkih editora.

Sama aplikacija ima još dodatnih opcija da se putem desnog dugmeta miša odredi
boja markiranja teksta, srednjim tasterom miša odredi gustina obeliživača,
smanjenja slike ili drugih opcija koji se mogu odrediti u konfiguraciji aplikacije. Tu
su opcije i za način čuvanja samih slika definisanih naziva datuma ili numerički.

35
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Како da...?

Zajednica je aktivna na ovom projektu, samim tim se očekuje u budućnosti da


budu dodate još neke funkcionalnosti ne samo što se tiče obrade slike, već i
mogućnosti otpremanja na neke druge servise. Takođe svi uočeni bagovi se brzo
uklanjaju sa svakim novim izdanjem.
Ovaj program ubrzava mogućnost obeležavanja dela ekrana koje želite da
prikažete javno ili da ih sačuvate za sebe na disku sa jednostavnim obeležavanjem
koje je bitno i dobra je zamena za stari tradicionalni način snimanja ekrana.

36
Broj 51

Uvod u funkcionalno programiranje(3. deo)

Uvod u funkcionalno programiranje


(3. deo)
Autor: Stefan Nožinić
U prethodnom delu smo uveli notaciju tipova, a u ovom ćemo se detaljnije baviti
sistemima tipova. Tip je zapravo unija tagovanih proizvoda nekih drugih tipova, na
primer:
data Nat = 0 | 1 | 2 | ...

Dakle ovde imamo uniju tagova 0, 1, …. ali skup prirodnih brojeva možemo
definisati i ovako:
data Nat = 0 | Succ Nat

Dakle prirodni broj može biti ili nula ili naredni element od nekog prirodnog broja.
Na primer:
1 = Succ 0
2 = Succ 1 = Succ (Succ 0)
...

Skup celih brojeva onda možemo definisati kao:


data Int = 0 | Succ Int | Pred Int

pa je onda:
1 = Succ 0
-1 = Pred 0
...

37
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Како da...?
Motivacija za uvođenjem tipova:let ... in ... izraz
Motivacija za uvođenje tipova se javlja na sledećem primeru. Uvodimo let … in …
izraz na sledeći način:
let x = E1 in E2 <=> (λx. E2) E1

Dakle svako pojavljivanje x u izrazu E2 zamenjujemo sa E1.


Uzmimo sada sledeći primer:
let f = λx. if x then 5 else 2 in f 5

Ovde imamo situaciju da se broj 5 koristi za Bool odnosno proverava se da li je 5


tačno i ako jeste onda celokupan izraz ima vrednost 5, a ako nije onda celokupan
izraz ima vrednost 2. Ovde nailazimo na problem što ne možemo da tvrdimo da li
je 5 ekvivalent TRUE ili FALSE. Na primer, u programskom jeziku C je svaki broj
osim 0 ekvivalent TRUE a 0 je ekvivalent FALSE. U drugim jezicima ovo pak ne
mora da važi i dolazi do nekonzistentnosti tipova. Zbog ovoga uvodimo sistem
tipova i kažemo da x mora biti tipa Bool odnosno da mora imati ili vrednost TRUE
ili FALSE:
data Bool = True | False
let f :: Bool -> Int
f = λx. if x then 5 else 2
in f True

Ovo možemo napisati i bez lambda izraza kako bismo lakše razumeli notaciju:
let f :: Bool -> Int
f x = if x then 5 else 2
in f True

Ovde smo definisali funkciju f koja preslikava Bool u Int, ovo znači da je izraz “ f x”
validan ako je x tipa Bool i da je tip ovog izraza Int.
Drugi primer gde su tipovi ključni jeste sledeći: da li sledeći izraz može da se
izračuna?

38
Broj 51

Uvod u funkcionalno programiranje(3. deo)


(λx. x x) (λx. x x)

Da li bismo, na bilo koji način mogli da odredimo tip ovog izraza?


Za jezik kažemo da je statički tipovan ako je određivanje tipova izvršeno tokom
prevođenja. Ovo ne znači nužno da u kodu moramo navoditi tip objekta!

Polimorfizam
Polimorfizam je svojstvo sistema tipova da se data operacija može generalizovati
na više različitih tipova bez potrebe da se data operacija implementira za svaki tip
zasebno.
Za ilustraciju ovog svojstva uzećemo listu. Lista može biti lista brojeva, ali isto tako
može biti lista slova. Ovo znači da tip lista ima dodatni parametar koji određuje tip
koji sadrži lista. Mnogi jezici, na ovaj ili onaj način, ovo podržavaju. Na primer C++
ima svoj templejting sistem, a Java ima generičke klase. Za svrhu ovog članka, i
kasnije za svrhu rada u Haskelu, mi ćemo reći da lista prima parametar koji
određuje tip objekta koji lista sadrži:
data List a = Empty | Cons a (List a)

Ovde smo definisali listu kao tip koji prima parametar, a koji određuje tip objekta
koji lista sadrži. Lista je unija dva moguća skupa podataka: prazna lista ( Empty) ili
uređenog para objekta tipa a (glava liste) i liste objekata tipa a (telo liste, ostatak
liste).

Određivanje tipova
Za lakše objašnjavanje tipova uzmimo sledeći primer:
twice f x = f (f x)

Sada postavimo uslove:


x :: t0
f :: t1
f x :: t2

39
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Како da...?
f (f x) :: t3

Sada donosimo zaključke:


twice :: t1 -> t0 -> t3
t1 = t0 -> t2 (zato što f x je tipa t2)
t1 = t2 -> t3 (zbog f (f x))
t0 -> t2 = t2 -> t3
t0 = t2 = t3
t1 = t0 -> t0

Odavde sledi da je tip funkcije twice: (t0 → t0) → t0 → t0


Drugi primer je sledeći:
conditionalSum cond x y = if cond then x+y else 0

Prvo postavimo sistem:


0 :: Int
cond :: t0
x :: t1
y :: t2
+ :: Int -> Int -> Int
x+y :: t3
if ... then ... else ... :: Bool -> t5 -> t5 -> t5
if cond then x+y else 0 :: t4

Sada zapisujemo zaključke:


conditionalSum :: t0 -> t1 -> t2 -> t4
t1 = t2 = t3 = Int (zbog +)
t5 = Int (zbog else 0)
t5 = t3 (zbog x+y)
t0 = Bool
t4 = t5
conditionalSum :: Bool -> Int -> Int -> Int

Hajde sada da odredimo tip sledeće funkcije i vidimo kako se na isti način može

40
Broj 51

Uvod u funkcionalno programiranje(3. deo)


doći do kontradikcije:
f x = x + "pera" :: t0
"pera" :: String
+ :: Int -> Int -> Int
x + "pera" :: t1
f :: t0 -> t1
t1 = Int
t0 = Int
String = Int <- kontradikcija!

Međutim, ovo se može popraviti ako se operator + definiše kao:


+ :: t2 -> t2 -> t2

Onda se dobija:
t0 = String = t1 = t2
f :: String -> String

Kasnije tokom ovog serijala ćemo direktno implementirati sistem tipova u Haskelu,
a u narednom delu ćemo uvesti Haskel kao jezik i objasniti njegovu sintaksu.

41
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Slobodni profesionalac

Ansibl
Kontrola na vrhovima vaših
prstiju

Autor: Marjan Bugarinović


Pre godinu dana sam čuo za Ansibl (eng. Ansible) i, kao i mnoge stvari pre toga,
pročitao sam nešto ovlaš o njegovim mogućnostima i ostavio te informacije da
odstoje. Prvenstveno zato što nisam znao niti razumeo šta je sve to što opisuje
Ansibl. Kada sam konačno zagrebao površinu onoga što predstavlja Ansibl,
sačekalo me je obilje mogućnosti. Sa mnoštvom mogućnosti se dolazi do
raznoraznih ideja. O nekima od njih će biti reči u ovom tekstu, a neke ćete sami
morati da smislite.

Šta je Ansibl?
Šta je ukratko Ansibl? Ansibl je, kako ga opisuju - alat za sistem administratore
kreiran od strane sistem administratora! I to je istina. Kreirao ga je Majkl De Han,
osoba koja je kreirala Kobler (eng. Cobbler), alat koji se bavi udaljenom (eng.
remote) instalacijom operativnih sistema na virtuelne ili fizičke mašine i sve to na
Linuksu. Zamislite da radite za ogromnu kompaniju i da vam je potrebno da na 100
mašina instalirate neki Linuks operativni sistem, relativno brzo i lako. To možete
uraditi uz Kobler.
Sve je to super, ali gde je tu Ansibl? Zamislite da su tih 100 mašina kojih ste
maločas instalirali i osposobili zapravo Linuks serveri i da svaki od njih mora da
ima odgovarajuće pakete i da prođe kroz odgovarajući bezbednosni proces

42
Broj 51

Ansibl - kontrola na vrhovima vaših


konfiguracije (bilo da je to podešavanje SELinuks opcije, otvaranje portova na
fajervolu (eng. firewall), ili dodavanje servera na domen). Sve se to može uraditi sa
Ansiblom. Sve to i mnogo više. Ansibl možemo poistovetiti sa, recimo, bajkom
“Frulaš iz Hamelna”. Vi ste frulaš, Ansibl je frula, a pacovi su serveri. Na vama je
kako upotrebiti svu tu moć koju vam on pruža.
Ansibl je alat otvorenog koda i 2015. godine je kupljen od strane Redheta .
Licenciran je delom GNU GPL licencom, a delom ima i kod koji je u vlasništvu
kompanije Redhet. Može se instalirati na bilo koju Linuks distribuciju, bilo da je to
Fedora, Debijan, Arč Linuks. I možda ono što je najvažnije kod Ansibla - kada ga
instalirate na svoju Linuks mašinu, možete krenuti sa upravljanjem i
konifigurisanjem udaljenih, a i svoje lokalne mašine, bez ikakve instalacije
udaljenih agenata (alata koji će izvršavati komande koje mu glavni server pošalje).
Ansibl sve to radi preko dobro nam poznatog SSH protokola, koristeći SSH
ključeve!
Kako? Jednostavno, kada izvršavate Ansibl komande ili knjige igara (eng.
Playbook), Ansibl “otrči” na server uz pomoć provere ključeva sa lokalnom
mašinom i na toj mašini uradi ono što ste mu vi rekli.
U ovom članku se nećemo baviti time kako da instalirate i pokrenete Ansibl, to je
opisano u ranijim (člancima). Ovde ćemo se skoncentrisati na predloge i ideje gde
sve Ansibl može dobro doći.

Šta dalje?
Nastavimo dalje sa našim zamislima. Imamo onih 100 servera koje smo instalirali
ranije i sad moramo da im nešto uradimo. Šta bi to moglo da bude? Za početak,
pošto ste svesni dobrih bezbednosnih praksi i želite da ih primenite na svoje stado,
uz pomoć Ansibla možete da na svakom od tih servera ograničite ko sve može
imati prava sudoera (eng. sudoers - korisnici sa apsolutnim pravima na Linuks
mašinama) i ograničiti pristup po IP adresama.

Kako sad pa to uraditi?


U pomoć vam pristižu džindža šeme (eng. jinja templates). Džindža šeme se
ponašaju poput nekih nindži (kako im samo ime kaže) i nečujno menjaju statičke

43
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Slobodni profesionalac
fajlove, pretvarajući ih u dinamičke. Šta to znači? Recimo da je potrebno da u svaki
od ovih sudoers fajlova koji bi ste smestili u /etc/sudoers.d/ direktorijum upišete IP
adresu mašine na kojoj se nalazite. Nećete ići od servera do servera i ručno
menjati fajl i možda negde pogrešiti, već ćete u fajlu sa ekstenzijom .j2
(preporučena praksa u Ansiblu, kako bi znali da je u pitanju džindža) napisati kome
je sve potrebno dati prava sudoera, a u delu koji se odnosi na IP adresu servera na
kome se primenjuje sudoers fajl, jednostavno navesti varijablu -
ansible_default_ipv4.address, poznatu kao činjenicu (eng. fact) koju je Ansibl
prikupio onako usput i upotrebiće je baš onako kako je vama potrebno!
Pošto smo obezbedili naše stado, vreme je da ga ažuriramo, iliti pokrenemo dobro
nam poznati jam apdejt (eng. yum update) ili apt-get apdejt (eng. apt-get update) i
ažurirati sve pakete na sistemima. I to ćemo uraditi uz pomoć Ansibla i njegovih
modula za jam (eng. yum ) i apt. Šta su sad moduli? Pa, moduli su nešto nalik na
komande koje Ansibl šalje udaljenim mašinama. Samih modula je mnogo, od
modula za šeme (eng. template) čije smo korišćenje već spomenuli, preko modula
za instalaciju paketa (jam i apt) do modula za manipulisanje fajervolom.

Kako se snaći u tom moru modula koje poseduje


Ansibl?
Ansibl dokumentacija je na zavidnom nivou i pomoć možete potražiti u komandnoj
liniji uz pomoć komande
ansible-doc [ime modula]

Ili jednostavno upišite


ansible-doc --list

Ovim dobijate listu svih modula koji se nalaze u Ansiblu.


Takođe, ako vam je (još uvek) malo teže da se snađete u komandnoj liniji,
savetujem vam da pogledate veb sajt. Tamo možete naći isto ono što vam se
nalazi i u terminalu, samo ne toliko robusno. Savetujem vam da što više koristite
terminal i da iz njega učite, jer mogućnosti postoje. A tako su i mene savetovali
kada sam kretao sa Ansiblom i svim ostalim stvarima. Ništa nije toliko kompleksno
da malo “minus minus pomoć” ( –help) ne može izaći u susret.

44
Broj 51

Ansibl - kontrola na vrhovima vaših


Šta je šta?
U ovom tekstu spomenuto je nekoliko izraza iz Ansibl rečnika, ovo su još neki od
njih koji će vam možda pomoći da se u njemu snađete, ili vam pomoći da neke od
stvari bolje razumete.
Ansibl modul - skup komandi koje Ansibl šalje mašini koju smo definisali i na njoj
ih izvršava, vraćajući nama određene informacije.
Ansibl ad-hok - jedan od načina za pokretanje Ansibla, iz komandne linije.
Ansibl zadatak (eng. task) - drugi način za izvršavanje Ansibla, definisanjem
zadataka u jaml fajlu.
Ansibl knjiga igara - skup zadataka, varijabli i još mnogo drugih stvari koje se
nalaze u jednom fajlu i izvršavaju se na onoliko servera koliko smo mi definisali.
Činjenica (eng. fact) - predstavlja varijable koje Ansibl podrazumevano prikuplja o
mašinama koje kontaktira.
Inventar (eng. inventory) - predstavlja fajl sa skupom mašina koji predstavljaju
“mete” za Ansibl, ono što će on kontaktirati kada mu mi to kažemo.
Šema (eng. template) - jedan od modula Ansibla koji nam omogućava da na Ansibl
kontrolnoj mašini (eng. control node) čuvamo jedan dinamički fajl koji plasiramo
udaljenim mašinama sa varijablama koje smo definisali prilikom izvođenja nekih od
zadataka iz knjige igara.
Ansibl kontrolna mašina (eng. Ansible Control Node) - mašina koja je centralna i
na kojoj je instaliran Ansibl. Mašina čobanin koja brine o svom stadu uz pomoć
Ansibla.
Ansibl rečnik je obiman i ovo je samo jedan delić koji će vas možda inspirisati da
tražite dalje, čitate, mislite i pronalazite nove mogućnosti za upotrebu ovog
premoćnog alata. Izvinjavam se ukoliko sam negde pogrešio sa nekim od ovih
izraza, tako ih ja vidim i razumem.
Budite radoznali!

45
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Slobodni profesionalac

Programski jezik R i njegova primena


u nauci o podacima (1. deo)

Autor: Nadica Miljković


Definicija R-a i nauke o podacima
R je programski jezik za statistička izračunavanja i vizuelizaciju. Međutim, treba
napomenuti da je ovo zastarela definicija koja je odgovarala R-u u trenutku kada je
nastao i koja se zadržala uprkos izmenama kroz koje su prošli i R i nauka o
podacima (eng. data science). Danas je nemoguće spomenuti programski jezik R,
a da se ne pomisli na nauku o podacima čije metode ne moraju nužno da uključuju
statistička izračunavanja. U prilog tome ide i činjenica da nauku o podacima nije
jednostavno definisati jer obuhvata veliku multidisciplinarnu oblast u kojoj se
koriste naučne metode, procesi, algoritmi i sistemi koji omogućavaju ekstrakciju
znanja i zaključaka iz podataka. Odličan pregled prošlosti, sadašnjosti i budućnosti
R-a dat je u članku prof. Rodžera Penga sa Džon Hopkins Blumberg škole za javno
zdravlje (eng. John Hopkins Bloomberg School of Public Health ). Prof. Peng je
predložio novu definiciju koja najviše odgovara trenutnoj nameni R-a: “R je jezik za
analizu podataka”.
Iako se Autorka ovog članka slaže sa novom definicijom prof. Penga, važno je
napomenuti da, pored analize različitih podataka (npr. biomedicinskih, finansijskih,
ekonomskih), postoje i drugi primeri primene R-a. Ovde su navedena samo dva: (1)
Moguće je pomoću serial paketa koji omogućava da se upisuju i čitaju binarni i
aski (eng. ASCII) podaci sa serijskog porta meriti signale (ovo je jedan od načina da
se R poveže sa hardverom, npr. sa Arduino UNO mikrokontrolerom), (2) Iako je
automatsko generisanje izveštaja važno za analizu podataka i nauku o podacima,
može se koristiti i u drugim oblastima, primenom Markdown R paketa. Ovde treba
napomenuti da postoje i knjige kao što je Data analysis for the life sciences with
R7 koje su u potpunosti napisane u R-u. Po mišljenju Autorke članka, R Markdown

46
Broj 51

Programski jezik R i njegova primena u nauci o podacima


će biti uskoro transformisan ili integrisan sa drugim platformama. Razlog tome je
postojanje otvorenih platformi za interaktivno programiranje kao što je Jupyter i
sve veće težnje za neposrednom komunikacijom programskih jezika. Pa se može
očekivati da će se uloga Markdown paketa u automatskom kreiranju različitih
sadržaja sigurno promeniti, ali ne i nestati.
Relativno veliki broj članaka je objavljen sa ciljem poređenja različitih programskih
jezika i preporuke najboljeg za primenu u nauci o podacima. Ovakvi članci, na prvi
pogled, ukazuju na veliko rivalstvo između programskih jezika R i Pajton, ali
situacija je potpuno drugačija. Naime, R Studio je 2018. godine objavio paket
Reticulate kao interfejs za Pajton u R-u koji omogućava i automatski prelazak
između R i Pajton objekata. Sa druge strane, za pisanje R koda u Pajtonu, postoji
Python biblioteka rpy2 koja je objavljena 2016. godine. Ova integracija
programskih jezika je prirodan sled najčešćih situacija u praksi, a to je da se od
početka do kraja jednog inženjerskog projekta koristi više programskih jezika.
Uprkos činjenici da se broj članaka na temu odabira jednog jedinog i “pravog”
programskog jezika ne smanjuje, praksa je potpuno drugačija. Trenutno su veoma
aktuelne višejezične platforme za kreiranje tzv. prenosivih biblioteka za primenu u
nauci o podacima koje mogu da se primene u R-u, Pajtonu i drugim programskim
jezicima. Među najpoznatijim višejezičnim platformama nalaze se Ursa Labs i
Apache Arrow.
Mnogo se piše o analitici i o nauci o podacima, a retko se govori o njihovim
razlikama. Vrlo često se u literaturi mogu sresti ova dva pojma kao sinonimi, jer su
sličnosti očigledne tj. metodologije manipulacije podacima i ekstrakcije informacija
su slične, a često i identične. Odličan pregled ove dve oblasti dat je u članku Dane
Liberti iz 2019. godine. Dana je istakla da su osnovne razlike u tome što u nauci o
podacima ne znamo šta želimo da saznamo iz podataka u odnosu na analitiku koja
je mnogo fokusiranija i u kojoj znamo koja su pitanja (znamo zbog čega su nam
podaci potrebni), ali ne znamo koji su odgovori.
Cilj ovog članka je da upozna čitateljke i čitaoce sa programskim jezikom R i
njegovom primenom u nauci o podacima, bez namere da se programskom jeziku R
daje prednost nad bilo kojim drugim alatom(ili alatima). Specifično, cilj ovog teksta
je da motiviše čitateljke i čitaoce da se bave analizom signala, programiranjem u
R-u, da koriste slobodan softver, da nastave profesionalno usavršavanje, da im
pruži informacije o novim trendovima u nauci o podacima i potpuno neočekivano
da im ispriča jednu priču iz istorije.

47
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Sam svoj majstor


R na Elektrotehničkom fakultetu u Beogradu
Programski jezik R je zvanično uveden na Elektrotehničkom fakultetu, Univerziteta
u Beogradu pre dve godine u školskoj 2016/17 godini na Master akademskim
studijama na modulu za Signale i sisteme. Kurs 13E051TOBS (Tehnike obrade
biomedicinskih signala) se, pored programiranja u R-u, bavi i analizom biosignala i
primenom nauke o podacima u biomedicinskom inženjerstvu. TOBS kurs je Autorka
ovog članka koncipirala tako da ga mogu birati svi koje generalno zanima nauka o
podacima, programiranje u R-u i kojima je biomedicinsko inženjerstvo privlačna
oblast, a bez ikakvog prethodnog znanja o ovim oblastima. Iako 80% ocene
pokrivaju test i ispit koji su formalno gledano teorijski orijentisani, predmet je vrlo
praktičan. Na primer, test i ispit se rade na računarima u R-u, a samo testiranje
sadrži vrlo malo ili skoro nimalo provere teorijskog znanja tj. repeticije činjenica.
Projekat čini 20% ocene i od 2018/19. godine u saradnji sa Elektrotehničkim
fakultetom Univerziteta u Ljubljani uvedena je i nagrada za najbolji projekat. Svi
projekti, do sada, su bili koncipirani tako da imaju direktnu primenu u praksi i
većina je realizovana na skupovima podataka koji su mereni u laboratorijama na
Elektrotehničkom fakultetu, Univerziteta u Beogradu ili na drugim univerzitetima.

48
Broj 51

Pisanje skripti u Bešu(1. deo)

Pisanje skripti u Bešu (1. deo)


Uvod
Autor: Nikola Todorović
Ovim člankom započinjemo serijal o veštini za koju smo sigurni da može biti od
velike koristi za naprednije korisnike linuks operativnih sistema. Pisanje skripti u
Bešu (eng. Bash ) je moćna i korisna veština koja nam omogućava da
automatizujemo veliki broj radnji. Iako je ova veština neizostavna za nekog ko želi
da bude sistem administrator, ovaj serijal će biti orijentisan ka početnim
korisnicima koji se do sada nisu susretali sa pisanjem skripti, ali je neophodno da
su upoznati sa osnovama programiranja i osnovnim komandama u Bešu, o kojima
možete pročitati u drugom serijalu koji je objavljen u ovom časopisu.
Za početak, unutar direktorijuma po izboru, komandom mkdir ćemo napraviti novi
radni direktorijum u kojem ćemo do kraja serijala obavljati sve radnje. Unutar
novonapravljenog direktorijuma napravićemo nekoliko fajlova sa različitim
ekstenzijama i unutar tih fajlova sa editorom po izboru uneti neki tekst, nije
neophodno da tekst bude povezan sa ekstenzijom fajla.
Mkdir radni_dir
touch vebsajt.html
touch program.c
touch beleske.txt
touch lista_poslova.txt

U nastavku ćemo komandom ls izlistati fajlove, ali ono što vam je možda novo
jeste dodatak *.txt koji komandi ls govori da izlista sve fajlove koji se završavaju
sa “.txt” . Sledeća komanda, stat, će nam dati osnovne podatke o fajlu kao što su
veličina fajla, prava pristupa, kada je poslednji put izmenjen i slično.
ls *.txt

49
Li B R E ! ČASOPIS O SLOBODNOM SOFTVERU Oktobar 2019.

Sam svoj majstor


stat program.c
wc -l vebsajt.html

Komanda wc (skr. Word count) uz dodat parametar -l će ispisati broj linija unutar
fajla. Ova komanda ima mogućnost da ispiše broj linija, karaktera, bajtova ili reči,
kako bismo znali koje su oznake za flegove koji se prosleđuju ovoj komandi. Bitno
je da se dobro snalazite u dokumentaciji koja dolazi uz Beš komande, odnosno da
znate da koristite ime_komande –help za osnovnu dokumentaciju i man
ime_komande za opširniju dokumentaciju.
Dobili smo zadatak da prosledimo kolegi u jednom fajlu poslove koje ćemo danas
obaviti i želimo da mu pošaljemo prvih pet poslova sa liste poslova. Umesto da
otvorimo fajl, iskopiramo prvih pet redova, pa onda kreiramo novi fajl u koji ćemo
ubaciti prvih pet poslova, sav ovaj posao može se obaviti u jednoj liniji. Komandom
head (glava) ćemo uzeti prvih nekoliko linija, a dodatkom -n5 ćemo naznačiti
komandi da uzme prvih pet iz fajla lista_poslova.txt i onda uz pomoć operatora
>, ono što nam vraća komanda head ćemo proslediti u fajl danasnji_poslovi.txt,
i tom prilikom nije potrebno da kreiramo taj fajl već se to automatski odradi ukoliko
je fajl prosleđen operatoru > ne postoji u radnom direktorijumu. Nakon toga ćemo
komandom cat samo prikazati sadržaj nove liste.
Head -n5 lista_poslova.txt > danasnji_poslovi.txt
cat danasnji_poslovi.txt
Tail -n1 lista_poslova.txt >> danasnji_poslovi.txt
cat danasnji_poslovi.txt

Nasuprot komandi head , imamo komandu tail (Rep), kojom možemo uzeti
poslednjih nekoliko linija iz fajla, samo ovaj put umesto da prebacimo u novi fajl,
znakovima », mi ćemo nadovezati poslednju liniju na već postojeći fajl. U slučaju
da smo sad koristili znak >, prethodni sadržaj fajla bi bio obrisan i u njega smešten
novi.
Ukoliko bi postojala potreba da se svakog dana pošalju obavljeni poslovi, bilo bi
dobro da se ceo proces učini malo efikasnijim, pa da se umesto unošenjem 4
komande sve obavi unošenjem jedne. Iako bi veštijim čitaocima odmah bilo
uočljivo da se prethodnih nekoliko komandi može obaviti jednom malo
kompleksnijom komandom, to ćemo ostaviti za neki od narednih delova serijala, a
u nastavku ovog ćemo prethodno napisane komande pretvoriti u skriptu. Ono što

50
Broj 51

Pisanje skripti u Bešu(1. deo)


nam Beš omogućava jeste da niz komandi stavimo u fajl i da on potom izvrši te
komande, a da bi taj fajl postao skripta potrebno je da u prvoj liniji ima putanju i
naziv interpretera za skriptu, #!/bin/bash .
#!/bin/bash
Head -n5 lista_poslova.txt > danasnji_poslovi.txt
Tail -n1 lista_poslova.txt >> danasnji_poslovi.txt
cat danasnji_poslovi.txt

Iznad se nalazi ceo izgled naše prve male skripte. Komandu cat koju smo dva puta
izvršavali prvi put, sada smo stavili da se izvršava samo jednom jer sa sigurnošću
znamo šta će uraditi komande pa nema potrebe za prikazivanjem međurezultata.
Nakon što otkucamo skriptu , potrebno ju je sačuvati i dodeliti odgovarajući naziv.
Iako je u ovom slučaju prva stvar koja nam pada na pamet kod imenovanja skripte
naziv prva_skripta.sh , predlog je da budemo malo praktičniji i damo skripti naziv
koji će nas asocirati na to šta zapravo skripta radi, tako da bi u ovom slučaju bilo
dobro da skriptu nazovemo obavljeni_poslovi.sh .
Kada se završi deo sastavljanja skripte, u direktorijumu u kom se nalazi skripta
potrebno je dodeliti joj mogućnost izvršavanja, a to se postiže komandom:
chmod +x obavljeni_poslovi.sh

A sam poziv skripte se obavlja na sledeći način:


./obavljeni_poslovi.sh

U ovom uvodnom delu prošli smo kroz nekoliko komandi, koje su možda bile nove
za neke čitaoce, i na kraju sastavili prvu skriptu. Ohrabrujemo čitaoce da po istom
principu kao što smo sastavili ovu skriptu, naprave svoju skirptu kao niz nekoliko
komandi koje već znaju i čije zajedničko izvršavanje im može biti od neke koristi. U
narednom delu ćete imati priliku da naučite mnogo više novih stvari.

51

You might also like