77
find Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma Veoma moćna komanda sa velikim brojem opcija koje omogućavaju fino podešavanje kriterijuma pretrage U komandi je pored opcija koje podešavaju kriterijume pretrage potrebno navesti jednu ili više polaznih tačaka pretrage, a potom i izraz kojim se označava šta se želi pronaći i eventualno šta i izraz kojim se označava šta se želi pronaći i eventualno šta uraditi sa pronađenim fajlovima Opcije -P, -L i -H (jedna od njih) se navode na početku iza find (moraju se napisati pre prve polazne tačke) Opcija -P podrazumeva da se ne slede simbolički linkovi (ovo je difolt opcija i ne mora da se navede eksplicitno) Opcija -L podrazumeva da se slede simbolički linkovi ukoliko je to moguće Opcija -H podrazumeva da se ne slede simbolički linkovi sem u slučaju fajlova navedenih kao argument komande find

find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

find

• Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma

• Veoma moćna komanda sa velikim brojem opcija koje omogućavaju fino podešavanje kriterijuma pretrage

• U komandi je pored opcija koje podešavaju kriterijume pretrage potrebno navesti jednu ili više polaznih tačaka pretrage, a potom i izraz kojim se označava šta se želi pronaći i eventualno šta i izraz kojim se označava šta se želi pronaći i eventualno šta uraditi sa pronađenim fajlovima

• Opcije -P, -L i -H (jedna od njih) se navode na početku iza find(moraju se napisati pre prve polazne tačke)

• Opcija -P podrazumeva da se ne slede simbolički linkovi (ovo je difolt opcija i ne mora da se navede eksplicitno)

• Opcija -L podrazumeva da se slede simbolički linkovi ukoliko je to moguće

• Opcija -H podrazumeva da se ne slede simbolički linkovi sem u slučaju fajlova navedenih kao argument komande find

Page 2: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Lista polaznih tačaka pretrage

• Lista polaznih tačaka pretrage podrazumeva listu fajlova (suštinski direktorijuma) koji se koriste kao polazna mesta odakle pretraga kreće - ako se ne navede ništa u listi podrazumeva se trenutni radni direktorijum kao polazna tačka

Page 3: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Izraz

• Izraz predstavlja deo komande linije naveden iza liste polaznih tačaka pretrage

• Izraz se može sastojati iz testova, akcija, globalnih opcija, pozicionih opcija i operatora

• Testovi vraćaju true/false vrednost kao rezultat testa na nekom svojstvu fajla (na primer, da li je fajl prazan ili ne)svojstvu fajla (na primer, da li je fajl prazan ili ne)

• Akcije imaju sporedne posledice (side effects) - npr. ispis na terminalu i takođe vraćaju true/false vrednost kao signalizaciju da li je akcija uspešno izvršena ili ne

• Globalne i pozicione opcije definišu način izvršenja testova/akcija tj. kriterijume pretrage - razlika ova dva tipa opcija je u širini važenja - globalne važe za kompletan izraz, a pozicione samo za deo izraza koji se nalazi iza njih

• Operatori omogućavaju povezivanje delova izraza u neku operaciju (npr. logički I ili ILI operator)

Page 4: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Globalne opcije

• Globalne opcije utiču na sve delove izraza, čak i ako postoje testovi i akcije navedeni pre njih

• Iz tog razloga je radi bolje razumljivosti i preglednosti bolje globalne opcije navesti na početku izraza, tj. neposredno iza liste polaznih tačaka pretrage

• -depth - procesira se prvo sadržaj direktorijuma pre samog direktorijuma (-d je alternativno pisanje ove komande, ali je

• -depth - procesira se prvo sadržaj direktorijuma pre samog direktorijuma (-d je alternativno pisanje ove komande, ali je preporuka da se ipak koristi -depth)

• -maxdepth L - definiše do koje dubine pretraga treba da ide (ako se za L stavi 0 onda se pretraga vrši samo u polazna tačka direktorijumu, ali ne i u poddirektorijumima)

• -mindepth L - definiše od koje dubine treba krenuti sa pretragom

• Kombinovanjem maxdepth i mindepth opcija se može definisati opseg dubina pretrage

• Postoje i druge globalne opcije (pogledati u man za find)

Page 5: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Globalne opcije - primer

Ako se samo navede find vrši se pretraga kompletnog radnog direktorijuma i njegovih poddirektorijuma.Isto važi i ako se navede find . pošto tačka označava radni direktorijum i time lista direktorijum i time lista polaznih tačaka sadrži samo radni direktorijum.

Uočiti razliku u ispisu sadržaja kada se koristi -depth opcija. Direktorijumi uvek idu iza svojih sadržaja u listingu, za razliku od prvog primera gde navedena opcija nije korišćena.

Page 6: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Globalne opcije - primer

Uočiti šta je nivo dubine 1, odnosno 2. Sam radni direktorijum je nivo 0. Fajlovi direktorijum je nivo 0. Fajlovi u njemu (obični i direktorijumi) su nivo 1. Fajlovi u direktorijumima nivoa 1 su nivo2, itd.

Page 7: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Globalne opcije - primer

Kombinovanjem opcija maxdepth i mindepth možemo mindepth možemo kontrolisati opseg nivoa koji želimo pretražiti. Naravno, ove opcije se mogu kombinovati sa depth opcijom, što ilustruje poslednji primer u nizu.

Page 8: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Testovi

• Testovi omogućavaju definisanje kriterijuma pretrage

• Prilikom pretrage fajlova, svaki fajl koji se nalazi na lokaciji koja je pretraživana se ispituje kroz zadate testove (ako ima zadatih testova) i gleda se da li zadovoljava test ili ne (u prevodu da li ispunjava kriterijum pretrage ili ne)

• Za neke testove se može koristiti referentni fajl (fajl koji korisnik sam navede) - npr. kriterijum može biti svi fajlovi noviji od referentnog fajla i sl.

• Ako se u nekim testovima koriste numeričke vrednosti, onese mogu navoditi u obliku n (vrednost mora biti tačno n), +n (vrednost mora biti veća od n) i -n (vrednost mora biti manja od n)

Page 9: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Testovi

• -amin n - test da li je fajlu pristupljeno pre tačno n minuta (ako se stavi +n onda pre više od n minuta, a ako se stavi -n onda pre manje od n minuta - u narednim testovima, gde god se spominje parametar n važi ista ova napomena)

• -anewer ref_fajl - test da li je fajlu pristupljeno nakon vremena modifikacije referentnog fajla ref_fajlvremena modifikacije referentnog fajla ref_fajl

• -atime n - test da li je fajlu pristupljeno pre n*24 časova (u testu se u vremenu poslednjeg pristupa testiranog fajla frakcioni deo ne uzima u obzir, npr., ako je poslednji pristup bio pre 1.23*24h uzima se 1*24h, uvek se gledaju celi brojevi)

• Testovi -cmin n, -cnewer ref_fajl i -ctime n rade isto što i prethodna tri testa, ali se sada gleda vreme promene statusa testiranog fajla, a ne vreme pristupa

Page 10: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Testovi

• Testovi -mmin n, -newer ref_fajl i -mtime n rade isto što i prethodni slični testovi, ali se sada gleda vreme promene sadržaja testiranog fajla

• -empty - test da li je fajl prazan

• -executable - test da li je fajl izvršni (tu spadaju i direktorijumi koji se mogu brauzovati) - postoje situacije u direktorijumi koji se mogu brauzovati) - postoje situacije u kojima ovaj test nije u potpunosti taćan

• -nogroup - test da numerički ID grupe fajla ne odgovara nijednoj grupi

• -nouser - test da numerički ID korisnika fajla ne odgovara nijednom korisniku

Page 11: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Testovi

• -name pattern - pretraga za fajlovima čija baza imena odgovara zadatom patternu (test sada podrazumeva poređenje naziva fajla sa patternom)

• Pod bazom imena se podrazumeva putanja fajla gde su skinuti vodeći direktorijumi

• Otuda u patternu ne bi trebalo da egizistira / jer nijedan fajl • Otuda u patternu ne bi trebalo da egizistira / jer nijedan fajl ne bi odgovarao takvom patternu

• Preporuka je da se pattern stavi pod navodnike da ne bi bio modifikovan u procesu shell expansion

• -path pattern - slično -name pretrazi, ali se sada gleda čitava putanja do fajla počev od neke od polaznih tačaka pretrage (iz tog tazloga se u patternu karakteri . i / ne tretiraju kao specijalni)

Page 12: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Testovi

• -readable - test da li fajl može da se čita

• -writable- test da li fajl može da se piše

• -size n - veličina fajla je jednaka n - uz n se može navesti jedinica (b - 512-bajtni blokovi (b je difolt opcija), c - bajtovi, w - 16-bitne reči, k - kilobajti, M - megabajti, G - gigabajti)

• -type tip - test da li je fajl tipa tip (tip može biti b (block), c • -type tip - test da li je fajl tipa tip (tip može biti b (block), c (character), d (direktorijum), p (named pipe), f (regularan fajl), l (simbolički link), s (soket))

• Može se navesti više tipova odjednom, i tada se oni razdvajaju zarezom prilikom navođenja

• uid n - test da li se numerički ID korisnika fajla poklapa sa n

• gid n - test da li se numerički ID grupe fajla poklapa sa n

Page 13: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Testovi

• -group naziv_grupe - da li fajl pripada navedenoj grupi

• -user naziv_korisnika - da li fajl pripada navedenom korisniku

• -regex pattern - da li se naziv fajla poklapa sa zadatim regularnim izrazom - traži se poklapanje na celoj putanji

• -perm -biti - test da li su svi navedeni biti dozvole setovani• -perm -biti - test da li su svi navedeni biti dozvole setovani

• -perm /biti - test da li je bilo koji od navedenih bita dozvole setovan

• -perm biti - test da li su dozvole dodeljene baš kako je navedeno u bitima

• Za bite se mogu koristiti simboličke oznake u, g, o (tri grupe dozvola - korisnik, grupa, svi ostali) ili se koristi oktalno označavanje (tri oktalne cifre, svaka predstavlja jednu grupu dozvola)

Page 14: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Testovi

• Neki od navedenih testova podržavaju i case insensitive varijantu

• Te varijante se navode sa slovom i na početku naziva testa

• Na primer, -iname, -ipath, -iregex

Page 15: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Akcije

• Akcije definišu akcije koje se izvršavaju na fajlovima

• -delete - brisanje fajlova

• -exec komanda - izvršava se navedena komanda -komanda se tumači do kraja linije ili do ;

• -exec komanda {} - izvršava se komanda na selektovanim fajlovima, gde {} predstavlja fajl koji je nađen findfajlovima, gde {} predstavlja fajl koji je nađen findkomandom

• -ls - listanje sadržaja fajla

• -ok komanda - isto što i -exec ali se prvo traži dozvola od korisnika

• -printf format - štampanje željenih podataka o nađenim fajlovima u zadatom formatu format na stdout izlaz (detaljio opcijama formatiranja se mogu naći u man uputstvu za find)

Page 16: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Akcije

• -print - štampanje punog naziva fajla na stdout izlaz

• -print0 - razlika u odnosu na print je što se nakon naziva fajla ne štampa newline karakter već null karakter

• Postoje i fprint verzije print komandi (fprintf, fprint i fprint0) koje ispis vrše u fajl, a ne stdout tj. terminalkoje ispis vrše u fajl, a ne stdout tj. terminal

• Kod fprint verzija mora da se navede fajl u koji će biti izvršen ispis (ako navedeni fajl ne postoji, biće kreiran)

• -prune - sprečava se ulazak u direktorijum (ako je fajl direktorijum)

• -quit - bezuslovni izlazak

Page 17: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Pozicione opcije

• Ove opcije važe samo od mesta gde su navedene pa do kraja linije

• -regextype tip - podešavanje tipa regularnog izraza

• -daystart - merenje vremena od početka tekućeg dana, a ne od 24h ranijene od 24h ranije

Prikaz podržanih tipova regularnih izraza.

Page 18: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Operatori

• Delovi izraza se moraju povezati operatorom

• Ako se operator ne navede onda se po difoltu podrazumeva logičko I

• Logičko I se inače navodi sa -a ili -and

• Logičko ILI se navodi sa -o ili -or

• ! Ispred izraza označava negaciju izraza (može i -not, ali poželjnije je koristiti !)

• Zagrade obezbeđuju prioritet pa se njima može odrediti redosled izvršavanja izraza (iza otvarajuće i ispred zatvarajuće zagrade treba staviti space karakter)

• Zarez - funkcija liste - svi izrazi razdvojeni zarezom se uzimaju u obzir - pogodno kada se želi naći više različitih stvari, ali da se samo jednom prođe kroz hijerarhiju pretraživanih direktorijuma

Page 19: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Page 20: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Primer upotrebe operatora negacije. Najbolje je staviti ! pod navodnike da se izbegne eventualno pogrešno tumačenje ovog karaktera. Ovde se ! mogao staviti i bez navodnika.

Primer upotrebe -o operatora. U drugom primeru je korišćen -a operator pa je rezultat prazan.

Page 21: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Page 22: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Primetiti razliku između -name i -path testa. Dodatno, tačka se ne tretira posebno u -path i -name testovima. Zato prvi primer nema rezultata pretrage.

Page 23: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Page 24: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

U slučaju -regex varijante, tačke se moraju koristiti. Drugi primer gde tačke nisu korišćene dao je prazan rezultat pretrage.

Page 25: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Primer upotrebe -prune opcije. Na linku http://www.theunixschool.com/2012/07/find-command-15-examples-to-exclude.html se mogu naći primeri primene prune opcije.

Page 26: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Ako se na kraju stavlja ; treba postaviti escape karakter \ ispred ;.{} predstavlja ono što je nađeno find komandom. Razlika između varijante sa + i sa ; je što + varijanta nađene fajlove stavlja kao jedan argument komande, a ; zasebno. Varijanta -ok radi samo sa ;

Page 27: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Upotreba print komandi za ispis rezultata pretrage u terminalu. U prvom primeru opcija %p definiše naziv fajla, a opcija %s veličinu fajla u bajtovima. Opcija \n vrši prelazak u novu liniju čime se sprečava da podaci sledećeg nađenog fajla završe u istoj liniji. Pregled opcija formatiranja se može naći u man uputstvu za find komandu.

Page 28: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

Primer upotrebe zagrada za formiranje logičkih izraza kod kojih je redosled bitan. Primetiti da iza zagrade i ispred zagrade ide razmak, u suprotnom dolazi do greške kao što se vidi u poslednjem primeru. Setite se da shell razbija komandu na tokene i da je delimiter space karakter.

Page 29: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Primeri

U slučaju upotrebe zareza kao operatora biće ispisan rezultat samo za poslednjeg člana liste.

Upotreba fprint akcije za svakog člana liste ponaosob će ispisati rezultate pretrage u navedene fajlove. Može se navesti i isti fajl za članove liste, ali to neće biti preterano korisno jer će ispis sledećeg člana u listi da prebriše deo ili sve od ispisa prethodnih članova liste.

Page 30: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

locate

• Ova komanda ima sličnu ulogu kao find komanda

• Suštinska razlika je u načinu pretrage

• Komanda locate pretražuje bazu podataka koja je prethodnopripremljena updatedb komandom (može biti i više baza podataka)

• Kao kriterijum pretrage navode se patterni (eventualne opcije se • Kao kriterijum pretrage navode se patterni (eventualne opcije se navode pre patterna)

• Ako bar jedan pattern odgovara fajlu, smatra se da fajl odgovara kriterijumu pretrage

• Opcijom -A se podešava da svi patterni moraju da odgovaraju fajlu da bi kriterijum pretrage bio ispunjen

• Opcija -c samo ispisuje ukupan broj fajlova koji zadovoljava kriterijum pretrage

• Opcija -b poredi samo osnovu imena fajla

Page 31: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

locate

• Opcija -i postavlja case insensitive pretragu

• Opcija -r aktivira pretragu po regularnim izrazima (ako se koristi ova opcija onda se ne koriste patterni, pri tome dozvoljena je višestruka upotreba -r opcije tj. višeregularnih izraza)

• Opcija -w postavlja pretragu po celim imenima fajlova

• Pošto se vrši pretraga baze, fajlovi kreirani nakon poslednjeg ažuriranja baze neće ući u rezultat pretrage, a takođe može se desiti i da fajl više ne postoji, a nađe se u rezultatu pretrage (opcijom -e se može proveriti da li nađeni fajl postoji)

Page 32: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

locate - primeri

U ovom primeru se vidi uticaj ažuriranja baze na rezultat pretrage. U slučaju find komande do takvih grešaka ne dolazi jer se ona zasniva na prolaženju kroz same direktorijume (otuda je i sporija od locate).

Page 33: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

locate - primeri

U ovom primeru se vidi upotrebljivost opcije -e. Ona omogućava ispitivanje postojanja svakog nađenog rezultat, pa samim tim ako se fajl izbriše nakon poslednjeg ažuriranja baze, rezultat pretrage će biti korektan upotrebom -e opcije. Ali, -e opcija ne omogućava pronalazak fajlova kreiranih nakon ažuriranja baze što se vidi na početku ovog primera.

Page 34: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

locate - primeri

Page 35: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

date

• Komanda za prikaz i postavljanje vremena i datuma

• Ako se navede bez opcija onda daje prikaz trenutnog datuma i vremena (u nastavku će biti navođen samo termin vreme)

• Pored opcija moguće je kontrolisati i format ispisa

• Lista formata se može naći u man za date komandu• Lista formata se može naći u man za date komandu

• Opcija -d opisni_string daje prikaz vremena za opisni string

• Opisni string može biti next Monday, 2 days ago i sl.

• Opcija -f fajl vrši za svaku liniju navedenog fajla primenu opcije -d

• Opcija -r fajl daje vreme modifikacije navedenog fajla

• Opcija -u daje prikaz UTC (Coordinated Universal Time)vremena

Page 36: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

date

• Opcija -s novo_vreme omogućava podešavanje vremena na novo_vreme

• Napomena: u novijim distribucijama ova opcija neće uraditi promenu vremena, tada se za promenu vremena mora koristiti timedatectl komanda

• Pošto se menja sistemsko vreme, kada se želi promeniti vreme mora se koristiti administratorski nalog

• Pošto se menja sistemsko vreme, kada se želi promeniti vreme mora se koristiti administratorski nalog

• Format vremena se navodi na kraju i on utiče na prikaz informacije o vremenu

• Neke od opcija u formatu su: %H (čas 0-23), %M (minut), %m (mesec numerički prikaz), %a i %A (naziv dana, skraćen i pun), %b i %B (naziv meseca, skraćen i pun), %d (dan), %Y i %y (godina 4, odnosno 2 cifre) %D (ekvivalent %m/%d/%y), %F (ekvivalent %Y-%m-%d), %S (sekunda), %R (sat i minut 24h format), %r (sat i minut 12h format),...

Page 37: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

date - primeri

U trećoj liniji je 12 protumačen kao sat. Mogu se koristiti i fraze kao next month, last Thursday i sl.

Page 38: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

timedatectl

• U novijim distribucijama ova komanda se koristi za podešavanje vremena, kao i za prikaz trenutnih podešavanja

• Potrebne su administratorske privilegije za podešavanja

• timedatectl set-time vreme vrši podešavanje vremena

Primer komande za promenu vremena je dat na kraju. U ovom slučaju komanda neće biti uspešno izvršena jer je aktivirana NTP sinhronizacija.

Page 39: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

cal i ncal

• Komande za prikaz kalendara

• Po difoltu prikazuje se kalendar za tekući mesec sa obeleženim trenutnim danom

• Opcija -m mesec prikazuje kalendar navedenog meseca tekuće godine (mesec se navodi imenom ili brojem)

• Opcija -y godina prikazuje kalendar čitave godine koja je • Opcija -y godina prikazuje kalendar čitave godine koja je navedena

• Opcija -e i -o prikazuju datum Uskrsa (-o opcija je za pravoslavni Uskrs) - ne radi za cal komandu

• Opcija -d yyyy-mm daje prikaz kalendara za navedeni mesec i godinu

• Opcija -A i -B prikazuju kalendare za mesece iza i ispred tekućeg meseca - zgodno za definisanje opsega meseci (A je od after, a B je od before)

Page 40: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

cal i ncal primeri

Page 41: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

cal i ncal primeri

Page 42: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

sleep

• Komanda kašnjenja za određeno vreme

• Može biti zgodna u skriptama za odlaganje izvršenja neke komande

• Iza komande se navodi vreme kašnjenja

• Ako se ne navedu jedinice onda su u pitanju sekunde

• Oznake sufiksa (tj. jedinica vremena koje se pišu iza numeričke vrednosti) su s (sekunde), m (minute), h (časovi) i d (dani)

• Ako se navede više argumenata njihov zbir se računa kao kašnjenje (zgodno za kombinovanje različitih jedinica)

• Kao numerička vrednost se može staviti i racionalan broj (float)

Page 43: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

time

• Komanda kojom se pokreće neki drugi program i potom se ispisuje statistika izvršavanja pokrenutog programa (dužina izvršavanja, opterećenost procesora i sl.)

• Opcije -o i -a omogućavaju ispis statisike u fajl umesto na terminal (opcija -o će da prebriše fajl, dok će -a da dopiše sadržaj u fajl)sadržaj u fajl)

• Prilikom ispisa prikazuje se real (vreme izvršenja), user(vreme izvršenja u user modu), sys (vreme izvršenja u kernel modu) rezultati

Page 44: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

time primeri

Page 45: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

gzip, gunzip i zcat

• Komanda gzip služi za kompresovanje fajlova, a gunzip za dekompresiju komprimovanih fajlova (koji su komprimovani gzip alatom)

• zcat komanda omogućava da se pročita sadržaj fajla iz gzip komprimovanog fajla (u suštini cat iz komprimovanog fajla)

• Po difoltu kad se zipuje fajl on se automatski i briše (ostaje samo • Po difoltu kad se zipuje fajl on se automatski i briše (ostaje samo arhiviran fajl)

• Isto važi i kad se vrši dekompresija (arhiva se briše)

• Opcija -k u oba slučaja čuva fajlove, odnosno arhive od brisanja

• Opcija -r omogućava rekurziju u okviru kompresije, tj. ako se naiđe na direktorijum onda se njegov sadržaj tj. fajlovi komprimuju

• Sam gzip ne komprimuje folder, to radi tar alat, pa se zato često koriste u paru gzip i tar

Page 46: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

gzip, gunzip i zcat - primeri

Postoji i zmore komanda koja je slična zcat komandi. Razlika je što zmore omogućava ispis stranu po stranu.

Page 47: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

gzip, gunzip i zcat - primeri

Page 48: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

gzip, gunzip i zcat - primeri

Page 49: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

gzip, gunzip i zcat - primeri

Ovde je prikazana upotreba tar komande za kompresiju direktorijuma. Opcija -c govori da se kreira arhiva, opcija -z da se koristi gzip alat, opcija -f da se arhiva smesti u fajl, a opcija -v da se ispiše sadržaj kompresije. Opcija -x je za proces dekompresije. Sve opcije tar komande se mogu videti u man za tar komandu.

Page 50: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

bzip2, bunzip2 i bzcat

• Identično kao i gzip alati (postoji i bzmore)

• Razlika je u algoritmu kompresije

• bzip2 postiže bolje rezultate kompresije, ali je nešto sporiji od gzip

• Opcija -k postoji i ovde, ali ne postoji opcija -r (moraju da se • Opcija -k postoji i ovde, ali ne postoji opcija -r (moraju da se navedu fajlovi)

• U slučaju upotrebe kao deo tar komande umesto opcije -z navodi se opcija -j

Page 51: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

vi editor

• Do sada smo videli komande kojima možemo da izlistamo sadržaj fajla, pa čak i da dodamo sadržaj u fajl

• Ali, nismo imali mogućnost da editujemo sadržaj fajla

• Postoje editori teksta koji rade u terminalu

• Editor vi (Visual editor) je (može se reći) difolt editor, i • Editor vi (Visual editor) je (može se reći) difolt editor, i praktično svaka distribucija ga ima

• Zavisno od distribucije instaliran je vi ili vim (vi improved)

• Editor vim je kompatibilan sa vi

• Drugi popularni editori su pico i emacs

Page 52: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

vi editor - pokretanje

• Da bi se pokrenulo editovanje fajla dovoljno je otkucati vi naziv_fajla (može i vim da se otkuca umesto vi ako je u pitanju vim varijanta editora)

• Pri tome, može se navesti više fajlova (više fajlova može istovremeno da se edituje) - prvi koji je naveden će biti otvoren

• Opcija -R otvara fajl u read-only modu (isto se postiže navodeći view umesto vi)

• Opcija -R otvara fajl u read-only modu (isto se postiže navodeći view umesto vi)

• Opcija -e otvara tzv. Ex mod (isto se postiže navodeći ex umesto vi) - ovaj mod se uglavnom koristi za neinteraktivno editovanje

• Opcija -g otvara GUI verziju vi editora (isto se postiže kucanjem gvim ili gview umesto vi, s tim što gview otvara fajl u read-onlymodu)

• U zavisnosti od distribucije, GUI varijante potencijalno nisu podržane po difoltu, već treba da se dodatno instaliraju (na primer, za Ubuntu distribuciju: sudo apt-get install vim-gnome)

Page 53: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

vi editor - dodatne opcije

• Opcija -d pokreće tzv. diff mod, pri čemu se kao argumenti navode 2-4 fajla i vi otvara sve fajlove i prikazuje razlike među njima

• Opcija -b otvara fajl u binarnom modu

• Opcija +[n] pozicionira kursor na liniju n prvog fajla - ako • Opcija +[n] pozicionira kursor na liniju n prvog fajla - ako dotična linija ne postoji, kursor se pozicionira na poslednju liniju

• Opcija +/{pattern} pozicionira fajl na prvu liniju koja sadrži navedeni pattern

• Napomena: ako fajl ne postoji biće kreiran i otvoren prazan fajl pod navedenim nazivom, taj fajl će biti i sačuvan ukoliko se prilikom izlaska iz editora snimi fajl

Page 54: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

vi editor - modovi

• Editovanje nije klasično editovanje na koje je većina navikla kao, na primer, u notepad-u

• U vi editoru postoji komandni mod i insert mod (vim podržava još neke modove)

• Po difoltu editor je otvoren u komandnom modu

• Iz insert moda se tasterom Esc vraća u komandni mod• Iz insert moda se tasterom Esc vraća u komandni mod

• Dodatna napomena: u pitanju je terminal pa miš ne može da se koristi za navigaciju po sadržaju fajla

• Insert mod omogućava da kucamo željeni tekst

• Komandni mod omogućava kucanje komandi (npr. za izlazak iz editora, snimanje promena i dr.)

• Važna napomena: vi je case sensitive, pa su i komande case sensitive

Page 55: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

vi editor - insert mod

• Kucanje u komandnom modu a, A, i, I, o, O omogućava ulazak u insert mod i to iza tekućeg karaktera, na kraj tekuće linije, ispred tekućeg karaktera, početak tekuće linije, nova linija iza tekuće linije i nova linija ispred tekuće linije, respektivno

• Pri tome, dovoljno je otkucati neki od navedenih karaktera u komandnom modu i automatski se ulazi u insert mod (na koje mesto zavisi od otkucanog karaktera) mesto zavisi od otkucanog karaktera)

• U insert modu se tekst normalno kuca• U suštini sva ostala editovanja bi trebalo vršiti preko komandnog

moda poput brisanja, dodavanja nove linije i slično• Ali, moguće je koristiti potencijalno u samom insert modu određene

tastere poput Enter za kreiranje nove linije, Backspace i Delete za brisanje, strelica za kretanje kroz tekst - najbolje je proveriti kad se prvi put radi u nekoj distribuciji ove klasične tastere na nekom test fajlu da bi se znalo da li tasteri rade očekivane funkcije ili ipak treba koristiti komandni mod (svakako, bi trebalo poznavati iste funkcionalnosti u komandnom modu jer one uvek rade)

Page 56: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Kucanjem npr. aulazi se u insert mod. Pažnja: oili O bi kreirali novu liniju.

Taster Esc nas vraća u komandni mod.

vi editor - insert mod

Otvoren prazan fajl

novu liniju.

Tekst se unosi kucanjem kao i u bilo kom drugom editoru. Kucanjem O kreira se nova

linija iznad linije u kojoj je bio kursor.

Page 57: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Kretanje po tekstu

• Dok se nalazimo u komandnom modu, moguće je kretati se kroz tekst tj. pomerati kursor po tekstu

• U većini slučajeva, strelice će raditi

• Po difoltu, vi je razvijan i za sisteme koji koriste tastaturu bez strelicastrelica

• Stoga njihovu ulogu po difoltu imaju tasteri h,j,k,l i oni uvek funkcionišu

• Taster h pomera kursor levo (alternativa je Backspace)

• Taster j pomera kursor dole (alternativa je Enter)

• Taster k pomera kursor gore

• Taster l pomera kursor desno (alternativa je Space)

Page 58: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Kretanje po tekstu

• Pored osnovnih tastera za pomeranje gore/dole i levo/desno, postoje i drugi tasteri koji se mogu koristiti

• Taster 0 - pomera kursor na početak linije

• Taster $ - pomera kursor na kraj linije

• Taster b - pomera kursor na početak prethodne reči

• Taster w - pomera kursor na početak sledeće reči• Taster w - pomera kursor na početak sledeće reči

• Navođenjem broja ispred b ili w se vrši pomeranje za taj broj reči napred ili nazad (npr., 3b vrši pomeranje tri reči unazad)

• Komande :0, :$ i :n pomeraju kursor na početak prve, poslednje i n-te linije, respektivno (umesto n se, naravno, kuca broj linije, na primer, :3 za pomeranje na početak treće linije)

• Napomena: kucanjem : vrši se odmah pomeranje na dno editora gde se u nastavku kuca željena komanda i potom se pritisne Enter da bi komanda bila prihvaćena

Page 59: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Kretanje po ekranu

• Tekst može da sadrži veliki broj linija, i tada ne može kompletan tekst da stane na ekran

• U tim slučajevima je pogodnije da se ide strana po strana (tj. ekran po ekran) gore/dole nego linija po linija

• Komanda CTRL+ f - pomeranje napred za jedan ekran• Komanda CTRL+ f - pomeranje napred za jedan ekran

• Komanda CTRL+ b - pomeranje nazad za jedan ekran

• Komanda CTRL+ d - pomeranje napred za pola ekrana

• Komanda CTRL+ u - pomeranje nazad za pola ekrana

Page 60: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Snimanje i izlazak

• Komanda :w snima fajl, ali ne izlazi se iz vi editora

• Komanda :x snima fajl i izlazi se iz vi editora (isto radi i komanda :wq)

• Komanda :q vrši izlaz iz vi editora - ako postoje promene u sadržaju koje nisu snimljene, neće biti omogućen izlaz iz sadržaju koje nisu snimljene, neće biti omogućen izlaz iz editora

• Komanda :q! vrši bezuslovan izlaz iz vi editora nezavisno da li su promene u sadržaju snimljene ili ne

• Napomena: iza svake od ovih komandi mora da se pritisne Enter što je i ranije navedeno ako je na početku komande : pa ova napomena više neće biti navođena u nastavku

Page 61: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Snimanje i uvoz sadržaja

• Komanda :r naziv_fajla - uzima sadržaj iz navedenog fajla i upisuje ga iza linije u kojoj se nalazi kursor (tekuća linija)

• Komanda :w naziv_fajla - snima sadržaj tekućeg (otvorenog) fajla u navedeni fajl - ako navedeni fajl postoji prijaviće se greška

• Komanda :w! naziv_fajla - snima sadržaj tekućeg • Komanda :w! naziv_fajla - snima sadržaj tekućeg (otvorenog) fajla u navedeni fajl koji sada može da postoji

• Komanda :x,yw naziv_fajla - snima sadržaj od linije x do linije y (uključujući i njih) tekućeg (otvorenog) fajla u navedeni fajl - ako navedeni fajl postoji prijaviće se greška

• Komanda :x,yw! naziv_fajla - snima sadržaj od linije x do linije y (uključujući i njih) tekućeg (otvorenog) fajla u navedeni fajl koji sada može da postoji

Page 62: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Undo, redo i repeat

• Komanda u vrši undo poslednje akcije tj. poništava poslednju akciju

• Komanda . vrši ponavljanje (repeat) poslednje akcije

• U osnovnom vi moguć je samo jedan undo (u vrši ulogu toggle-aposlednje promene), a u vim je moguće uraditi više undo operacija- uvek je najbolje proveriti- uvek je najbolje proveriti

• Pod jednom akcijom se podrazumevaju sve promene za vreme trajanja jednog Insert moda ili jedno izvršenje komande

• Da se ne bi izlazilo iz Insert moda da bi se jedan deo unetog teksta označio kao jedna promena (tj. jedna akcija) moguće je pritisnuti CTRL+ g pa potom u da bi se započela nova promena tj. akcija u Insert modu - na taj način bez izlaženja iz Insert moda se može kreirati više celina tj. više akcija koje će undo zasebno poništavati (važi samo za vim)

Page 63: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Undo, redo i repeat

• Da bi se izvršio redo neke operacije tj. poništio prethodno urađen undo koristi se CTRL + r (ovo važi samo za vim, u vi nema klasičan redo već samo može da se radi toggleposlednje operacije)

• Broj undo operacija na raspolaganju (dubina undo) se može videti kucanjem komande :echo undolevelsvideti kucanjem komande :echo undolevels

• Promena broja undo operacija na raspolaganju se može uraditi sa :set undolevels=n (n je novi broj undo operacija na raspolaganju koji postavljamo)

• Ako se n postavi na -1 onda nema undo operacije na raspolaganju, a postavljanje na 0 je ekvivalentno podešavanju u vi

• Napomena: navedena podešavanja važe samo za vim

Page 64: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Undo, redo i repeat

• Napomena: u vim se kreira tzv. undo stablo pri čemu je koren stabla stanje sadržaja po ulasku u vim editor

• Na primer, ukuca se prvo 123456, pa se obriše 123 (ostaje samo 456), pa se uradi undo (vrati se 123456), pa se obriše 456 (ostaje samo 123), pa se uradi undo (vrati se 123456) -sada su kreirane dve grane u undo stablu (jedna sa sada su kreirane dve grane u undo stablu (jedna sa obrisanim 123, a druga sa obrisanim 456)

• Rad sa u i CTRL+r, u suštini radi sa poslednjom radnom granom (putanjom u stablu)

• Da bi se brauzovalo kroz sve grane koriste se komande g- i g+ koje omogućavaju prolaz kroz starija i novija stanja teksta tj. kroz undo stablo čime se može promeniti radna grana

Page 65: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Undo, redo i repeat

• Komanda :earlier i :later omogućavaju da se ide na starije, odnosno novije stanje teksta

• Iza ovih komandi se može navesti vreme (npr. stanje teksta pre 1h), a jedinice koje se mogu navesti su s (sekunde), m (minute), h (sati), d (dani)

• Primer: :later 1m nas vraća u stanje koje je bilo 1m kasnije (naravno, ova komanda ima smisla kada smo se nešto ranije vratili u neko od starijih stanja teksta)

• Može se navesti broj bez jedinice, tada se pomeramo u starije/novije stanje koje je udaljeno za navedeni broj (npr. :earlier 2 bi nas vratilo dva stanja teksta ranije)

Page 66: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Editovanje teksta

• Kao što smo ranije naveli u Insert modu se kuca tekst

• U suštini, klasični tasteri poput Backspace, Delete, Enter, strelica bi trebali da omoguće brisanje teksta, kreiranje nove linije i pomeranje po tekstu

• Ali, po difoltu ove funkcionalnosti tastera možda nisu • Ali, po difoltu ove funkcionalnosti tastera možda nisu omogućene na svim sistemima

• Postoje i komande za ove operacije i one uvek rade na svim sistemima

• Na primer, za formiranje nove linije smo videli da se koriste komande o i O

• Videli smo i koje komande se mogu koristiti za kretanje po tekstu (npr. j, k, h, l tasteri imaju ulogu strelica)

Page 67: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Editovanje teksta

• Postoje i komande za brisanje i kopiranje delova teksta

• Na nivou karaktera postoje komande:• x (briše karakter na kome je kursor),

• X (briše karakter ispred kursora),

• p (paste poslednjeg obrisanog karaktera iza kursora),

• r (zamena karaktera na kome je kursor - ovde ulazimo u • r (zamena karaktera na kome je kursor - ovde ulazimo u Insert mod i čim ukucamo karakter koji menja tekući karakter, vraćamo se u komandni mod)

• R (aktivira zamenu više karaktera, sa Esc se izlazi iz zamene)

• Napomena: ono što je obrisano sa x i X se može paste-ovati, a karakter zamenjen sa r se neće paste-ovati

• Navođenjem broja ispred x briše se taj broj karaktera (počev od karaktera na kome je kursor) (za X ova varijanta ne radi)

Page 68: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Editovanje teksta

• Napomena, ovde se koristi termin yank za kopiranje pa otuda slovo y igra ulogu u komandama vezanim za kopiranje

• Komanda dd briše (cut) tekuću liniju (tekuća linija je ona na kojoj je kursor)

• Komanda yy kopira (copy) tekuću liniju• Komanda p kopira liniju iza tekuće linije• Komanda P kopira liniju ispred tekuće linije• Komanda P kopira liniju ispred tekuće linije• Napomena: i ovde postoji komanda p kao i na nivou karaktera (ali

ovde se podrazumeva da prethodno formirani sadržaj za paste predstavlja liniju)

• Dodavanjem broja ispred yy i dd komandi se briše/kopira navedeni broj linija počev od tekuće linije (komande za paste će sada paste-ovati sve te linije) (broj se može dodati i u sredinu, na primer, d5d)

• Ako se navede prevelik broj linija, uzeće se sve linije od tekuće pa do poslednje linije

Page 69: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Editovanje teksta

• Komanda d0 briše sve do početka linije (počev od mesta kursora, ali ne i sam karakter na kom je kursor)

• Komanda d$ (alternativa je D) briše sve do kraja linije (počev od mesta kursora, uključujući i sam karakter na kom je kursor)

• Komanda dw briše jednu reč (ali počev od mesta na kom je • Komanda dw briše jednu reč (ali počev od mesta na kom je kursor uključujući i taj tekući karakter, stoga ako se želi obrisati cela reč treba kursor postaviti na početak reči) -dodavanjem broja između d i w briše se navedeni broj reči počev od kursora uz istu napomenu kao za dw

Page 70: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Editovanje teksta

• Komanda db briše jednu reč unazad, ali kursor mora biti postavljen na početak tekuće reči (inače se briše samo početni deo tekuće reči počev od kursora, ne uključujući i tekući karakter) - dodavanjem broja između d i b briše se navedeni broj reči ispred počev od kursora uz istu napomenu kao za dbnapomenu kao za db

• Kao što postoje komande db i dw, postoje i komande yb i ywiste funkcionalnosti samo umesto cut radi se copy

• Iste napomene vezane za dodavanje brojeva u komandu važe i ovde

• Komanda J spaja sledeću liniju sa tekućom linijom

Page 71: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Registri

• Postoje registri (neki ih zovu i tekst baferi) koji čuvaju akcije koje smo izvršili

• Lista registara se može videti kucanjem komande :reg

• Na primer, registar 0 čuva našu poslednju yank akciju

• Neimenovani registar čuva zadnju akciju kopiranja (cut ili copy)

• Da bi se uradio paste sadržaja nekog registra dovoljno je ukucati • Da bi se uradio paste sadržaja nekog registra dovoljno je ukucati komandu “naziv_registrap gde za naziv registra stavljamo željeni registar (slovo p na kraju komande označava paste), na primer, “0p će uraditi paste sadržaja registra 0

• Takođe moguće je smestiti kopirani sadržaj u željeni registar, na primer, kucanjem “a pa iza toga komanda (bez razmaka) kopiranja (cut ili copy) će smestiti kopirani sadržaj u registar a(ako on ne postoji biće kreiran), npr., “a5dd

Page 72: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Čitanje rezultata eksterne komande

• Moguće je izvršiti neku eksternu komandu i potom rezultat te komande ubaciti u editovani tekst (ubacivanje se vrši iza tekuće linije)

• To se postiže sa komandom :r !cmd gde je cmd eksterna komanda

• Na primer, :r !ls će učitati sadržaj listinga tekućeg • Na primer, :r !ls će učitati sadržaj listinga tekućeg direktorijuma

• Na primer, :r !ls /bin će učitati sadržaj listinga /bin direktorijuma

• Na primer, :r !cat tekst.txt će učitati sadržaj fajla tekst.txt iz tekućeg direktorijuma

Page 73: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Broj linije i pretraga

• Komanda :.= prikazuje na dnu redni broj tekuće linije

• Komanda := prikazuje na dnu ukupan broj linija

• Ukupan broj linija se može videti i sa CTRL+g

• Kucanjem / se pokreće komanda pretrage unapred, pri čemu se iza / kuca string (bez razmaka iza /)se iza / kuca string (bez razmaka iza /)

• Kucanjem ? se pokreće komanda pretrage unazad (ista napomena kao za /)

• String može da bude i regularni izraz (na primer, \<termin\> je regularni izraz za reč termin - neće se poklapati sa ovim izrazom ni term ni terminologija)

• Kada se pokrene pretraga, tasterima n i N se prelazi na sledeće, odnosno prethodno pojavljivanje traženog stringa

Page 74: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Zamena (replace)

• Komanda u formatu :m,n s/termin1/termin2/g vrši zamenu termina 1 terminom 2 u linijama m do n (uključujući i njih)

• Ako se za n navede $ onda se zamena vrši do poslednje linije uključujući i nju

• Ako se navede preveliko n, onda će se prijaviti nepravilan opsegopseg

Page 75: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Poređenje fajlova

• Komanda vi -d nazivi_fajlova vrši komparaciju fajlova (bar dva fajla treba navesti, a max. 4 je moguće navesti)

• Alternativno, moguće je komandu pozvati sa vimdiff umesto vi -d (ili vim -d)

• Ovo je zgodna opcija kada se na primer, porede dva izvorišna fajla da se utvrde razlike ili ako postoji i starija izvorišna fajla da se utvrde razlike ili ako postoji i starija verzija fajla pa želimo da utvrdimo koje su razlike u odnosu na noviju verziju, itd.

Page 76: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Više fajlova

• Ako se otvori više fajlova, moguće je brauzovati kroz fajlove

• Po difoltu se otvara fajl koji je prvi naveden kao argument vi komande

• Komanda :args daje listu otvorenih fajlova i obeležava tekući fajl koji se edituje (on je naveden u uglastoj zagradi)

• Komanda :n vrši prelaz na sledeći fajl• Komanda :n vrši prelaz na sledeći fajl

• Ako se vršilo editovanje fajla i želi se preći na sledeći fajl, mora se kucati :n! ili se pre toga moraju snimiti promene sa :w da bi se moglo preći na novi fajl sa :n (važno: ako se uradi prelaz sa :n! onda se gube sve urađene promene u fajlu)

• Komanda :rew vraća na originalni prvi fajl

• Napomena: kad se dođe do kraja liste fajlova, ne može se komandom :n preći ponovo na prvi fajl - lista nije kružna

Page 77: find - telekomunikacije.etf.rstelekomunikacije.etf.rs/predmeti/te4ks/docs/MAP/Materijali_05.pdf · find • Komanda za traženje fajlova kroz zadatu hijerarhiju direktorijuma •

Više fajlova

• Otvaranje više fajlova je zgodno ako je potrebno prebacivati sadržaj iz jednog fajla u drugi

• Registri se dele

• Na primer, ako se nešto kopira u registar a, to će biti dostupno svim ostalim fajlovima

• Ovim smo završili pregled osnovnih mogućnosti vi i vim editora

• Postoje još brojne druge mogućnosti i podešavanja ovog editora koje nisu pokrivene u ovoj prezentaciji

• Još jednom napomenimo i da su editori emacs i pico takođe popularni editori