Posts

Showing posts from October 30, 2023

man — dokumentacija ugrađena u sistem

Ovo je poslednja lekcija uvodne serije i verovatno najvažnija. Sve ostalo su komande koje ćeš zaboraviti pa ponovo tražiti. man je alat kojim ih nalaziš sam — bez guglanja, bez interneta, na svakom Linux sistemu. Na serveru u proizvodnji često nemaš pregledač, ponekad ni izlaz na internet. Dokumentacija je tu, instalirana zajedno sa sistemom. Osnovna upotreba $ man ls Otvara se puno uputstvo za komandu. Izlazi se sa q . Stranica je uvek podeljena po istim naslovima: Odeljak Šta sadrži NAME ime i jedan red opisa SYNOPSIS kako se komanda piše — najvažniji deo DESCRIPTION detaljno objašnjenje OPTIONS spisak svih opcija EXAMPLES primeri, kad ih ima EXIT STATUS šta komanda vraća kao izlazni kod FILES konfiguracioni fajlovi koje koristi SEE ALSO srodne komande Kad ti se žuri, idi pravo na EXAMPLES i SEE ALSO. Prvi ti da gotov obrazac, drugi otkrije alat koji možda bolje rešava tvoj problem. Kretanje po stranici Man stranicu prikazuje less , pa r...

man-db

Komanda man ima jedno ograničenje: moraš znati ime komande. A najčešća situacija je obrnuta — znaš šta hoćeš da uradiš, ali ne znaš kako se to zove. Za to postoji pretraga po ključnoj reči. Nju obezbeđuje paket man-db , koji na većini distribucija upravlja celokupnom dokumentacijom. $ apropos "disk space" df (1) - report file system disk space usage du (1) - estimate file space usage ncdu (1) - NCurses Disk Usage Nisi znao da postoji ncdu , a sad znaš. To je cela poenta ove stranice. Tri komande, jedan alat man-db donosi tri komande koje rade nad istom bazom: apropos — traži ključnu reč u opisima svih man stranica whatis — ispisuje jednorednи opis poznate komande mandb — gradi i osvežava tu bazu Prve dve imaju i oblik kroz man , i to je ono što ćeš češće sretati u tuđim primerima: $ man -k disk # isto što i apropos disk $ man -f ls # isto što i whatis ls apropos — kad ne znaš ime komande...

info — detaljna GNU dokumentacija

Ako si ikada otvorio man stranicu neke GNU komande i na dnu naišao na ovo, već si sreo info : $ man ls ... SEE ALSO Full documentation <https://www.gnu.org/software/coreutils/ls> or available locally via: info '(coreutils) ls invocation' To nije ljubazna preporuka nego upozorenje. Man stranica za mnoge GNU alate je skraćena verzija — spisak opcija bez objašnjenja. Prava dokumentacija je u info formatu. Zašto uopšte postoje dva sistema Man stranice su starije, iz Unix sveta, i pisane su kao jedan dugačak tekst za jednu komandu. Za ls je to sasvim dovoljno. Ali kako se dokumentuje bash, koji ima desetine ugradenih komandi, pravila proširivanja i ceo jezik za skripte? Ili gawk, koji je programski jezik za sebe? GNU projekat je zato napravio sopstveni format, u kome je dokumentacija knjiga sa poglavljima kroz koja se krećeš. Praktična podela: man — brza provera opcije. Otvoriš, nadeš, zatvoriš. info — kad hoćeš da razumeš alat, ne samo da ...

ls

ls ispisuje sadržaj direktorijuma. To je verovatno komanda koju ćeš kucati najčešće od svih — i zato vredi znati više od golog ls . ls [opcije] [putanja] Bez putanje radi nad tekućim direktorijumom, koji proveravaš sa pwd . $ ls beleske.txt dokumenti skripta.sh slike Kako se čita ls -l Ovo je najvažniji deo cele stranice. $ ls -l -rw-r--r-- 1 alen alen 284 Aug 22 10:15 beleske.txt drwxr-xr-x 3 alen alen 4096 Aug 20 18:02 dokumenti -rwxr-xr-x 1 alen alen 1024 Aug 21 09:30 skripta.sh lrwxrwxrwx 1 alen alen 12 Aug 22 11:40 tekuci -> dokumenti Red po red, kolona po kolona: Prvi znak je tip: - običan fajl, d direktorijum, l simbolički link. Devet znakova posle su dozvole, u tri grupe po tri — vlasnik, grupa, ostali. Kako se to čita, objašnjeno je na stranici Pregled prava pristupa . Broj je broj hard linkova. Kod direktorijuma nije broj fajlova unutra, nego 2 + broj poddirektorijuma — otud 3 za dokumenti . ...

pwd — gde se trenutno nalazim

pwd ispisuje punu putanju direktorijuma u kom se trenutno nalaziš. Skraćenica je od print working directory . Oblik komande pwd [opcije] Upotreba $ pwd /home/alen/projekat/src To je sve što radi. Uvek vraća apsolutnu putanju , od korena / nadole. Prompt obično već pokazuje gde si, ali skraćeno: [alen@lab01 src]$ Vidiš samo ime poslednjeg direktorijuma. Da li je to /home/alen/projekat/src ili /opt/app/src — prompt ne kaže. Zato je pwd prva komanda koju otkucaš kad se zatekneš na tuđem serveru, a naročito pre svake komande koja briše . Simbolički linkovi Jedina stvarna finesa. Ako si ušao u direktorijum preko simboličkog linka , postoje dva tačna odgovora na pitanje gde si: $ cd /var/www $ pwd /var/www $ pwd -P /srv/sajtovi/produkcija Opcija Šta vraća -L logičku putanju, sa linkom (podrazumevano) -P fizičku putanju, pravo mesto na disku Kad nešto ne radi kako očekuješ, a u putanji ima linkova — proveri sa pwd -P . Često je odgovor tu. U sk...

cd — kretanje kroz direktorijume

cd menja tekući direktorijum. Skraćeno od change directory . $ pwd /home/alen $ cd dokumenti $ pwd /home/alen/dokumenti Oblici koje ćeš koristiti svakodnevno $ cd /var/log # apsolutna putanja, radi odasvud $ cd dokumenti # relativna, od mesta gde si $ cd .. # nivo iznad $ cd ../.. # dva nivoa iznad $ cd ~ # kući $ cd # takođe kući $ cd - # nazad u prethodni direktorijum Golo cd bez ičega je najbrži povratak u kućni direktorijum, odakle god da si zalutao. cd - te vrti između dve lokacije i usput ispiše gde si stigao: $ pwd /home/alen/projekti/sajt $ cd /etc/nginx $ cd - /home/alen/projekti/sajt Neprocenjivo kad upoređuješ konfiguraciju u /etc sa nečim u svom projektu. Prethodnu lokaciju shell čuva u promenljivoj OLDPWD . Značenje putanja i oznaka . , .. , ~ detaljno je objašnjeno u lekciji Apsolutne i relativne putanje . Ime sa razmakom $ cd moji dokumenti bash: cd: too many argume...

mkdir

mkdir je Linux komanda koja se koristi za kreiranje novih direktorijuma (foldera) u fajl sistemu. Ova komanda vam omogućava da brzo i jednostavno napravite nove direktorijume u željenim lokacijama na vašem Linux sistemu. Osnovna struktura mkdir komande je: mkdir [opcije] ime_direktorijuma ime_direktorijuma : Specificira ime direktorijuma koji želite da kreirate. Neki od najčešće korišćenih argumenata i opcija za mkdir uključuju: -p ili --parents : Ova opcija omogućava rekursivno kreiranje direktorijuma i, ako je potrebno, kreiranje nadređenih direktorijuma koji ne postoje. -m, --mode=MOD : Postavljanje dozvola (prava pristupa) za kreirane direktorijume. Primeri korišćenja mkdir : Kreiranje jednog direktorijuma: mkdir novi_direktorijum Ova komanda će kreirati direktorijum sa imenom "novi_direktorijum" u trenutnom radnom direktorijumu. Kreiranje više direktorijuma odjednom: mkdir direktorijum1 direktorijum2 direktorijum3 ...

rmdir

rmdir je Linux komanda koja se koristi za brisanje direktorijuma iz fajl sistema. Ova komanda će izbrisati prazan direktorijum (direktorijum koji ne sadrži fajlove ili poddirektorijume) ako nisu navedene opcije koje zahtevaju drugačije ponašanje. Osnovna struktura rmdir komande je: rmdir [opcije] ime_direktorijuma ime_direktorijuma : Specificira ime direktorijuma koji želite da obrišete. Neki od najčešće korišćenih argumenata i opcija za rmdir uključuju: -p ili --parents : Ova opcija omogućava brisanje direktorijuma rekursivno, uključujući nadređene direktorijume koji postaju prazni nakon brisanja. -v ili --verbose : Prikazuje poruke o radnji brisanja. Primeri korišćenja rmdir : Brisanje jednog praznog direktorijuma: rmdir prazan_direktorijum Ova komanda će obrisati direktorijum sa imenom "prazan_direktorijum" ako je prazan, tj. ako ne sadrži fajlove ili poddirektorijume. Brisanje više praznih direktorijuma odjednom: ...

rm

rm je Linux komanda koja se koristi za brisanje fajlova i direktorijuma iz fajl sistema. Ova komanda može biti veoma moćna i opasna, jer trajno uklanja fajlove i direktorijume bez mogućnosti vraćanja, pa je potrebno pažljivo koristiti je. Osnovna struktura rm komande za brisanje fajlova je: rm [opcije] ime_fajla ime_fajla : Specificira ime fajla koji želite da obrišete. Neki od najčešće korišćenih argumenata i opcija za rm uključuju: -r ili -R ili --recursive : Ova opcija omogućava rekursivno brisanje direktorijuma i njihovog sadržaja. -f ili --force : Ova opcija omogućava brisanje bez potvrde ili upozorenja. Korisna za brisanje bez dodatnih pitanja. Primeri korišćenja rm za brisanje fajlova: Brisanje pojedinačnog fajla: rm fajl.txt Ova komanda će obrisati fajl sa imenom "fajl.txt" iz trenutnog radnog direktorijuma. Brisanje više fajlova odjednom: rm fajl1.txt fajl2.txt Ova komanda će obrisati oba fajla "fajl1.txt" ...

cp

cp je Linux komanda koja se koristi za kopiranje fajlova i direktorijuma sa jednog mesta na drugo u fajl sistemu. Ova komanda vam omogućava da napravite kopiju fajlova ili direktorijuma bez brisanja originalnih sadržaja. Osnovna struktura cp komande za kopiranje fajlova je: cp [opcije] izvorni_fajl odredišni_fajl izvorni_fajl : Specificira fajl koji želite da kopirate. odredišni_fajl : Specificira destinaciju gde želite da kopirate fajl. Neki od najčešće korišćenih argumenata i opcija za cp uključuju: -r ili -R ili --recursive : Ova opcija omogućava rekursivno kopiranje direktorijuma i njihovog sadržaja. -i ili --interactive : Ova opcija omogućava interaktivno kopiranje i pita vas da potvrdite svaku kopiju. -v ili --verbose : Ova opcija prikazuje poruke o radnji kopiranja. Primeri korišćenja cp za kopiranje fajlova: Kopiranje jednog fajla: cp fajl.txt novi_fajl.txt Ova komanda će kopirati sadržaj "fajl.txt" u novi fajl s...

mv

mv je Linux komanda koja se koristi za premještanje ili preimenovanje fajlova i direktorijuma u fajl sistemu. Ova komanda omogućava da premjestite fajlove sa jednog mesta na drugo, promenite njihova imena ili oba. Osnovna struktura mv komande je: mv [opcije] izvorni_fajl odredišni_fajl izvorni_fajl : Specificira fajl ili direktorijum koji želite da premestite ili preimenujete. odredišni_fajl : Specificira odredište gde želite da premestite ili preimenujete fajl ili direktorijum. Neki od najčešće korišćenih argumenata i opcija za mv uključuju: -i ili --interactive : Ova opcija omogućava interaktivno premještanje i pita vas da potvrdite svako premještanje ako postoji već fajl sa istim imenom na odredištu. -u ili --update : Ova opcija omogućava premještanje samo ako izvorni fajl ima noviju verziju ili ako odredišni fajl ne postoji. -v ili --verbose : Ova opcija prikazuje poruke o radnji premje...

touch — kreiranje praznog fajla i menjanje vremenskih oznaka

Komanda radi dve stvari: pravi prazan fajl ako ne postoji, a ako postoji — osvežava mu vremenske oznake. Ime dolazi od te druge, originalne namene: „dodirni fajl, ali ga ne menjaj". $ touch beleske.txt $ ls -l beleske.txt -rw-r--r-- 1 alen alen 0 Aug 22 14:23 beleske.txt Fajl je prazan — nula bajtova. Svakodnevna upotreba $ touch fajl1.txt fajl2.txt fajl3.txt $ touch log-{01..05}.txt $ touch ~/projekat/README.md Vitičaste zagrade u drugom redu su prečica koju proširuje shell, objašnjena u lekciji Džokeri i navodnici . Direktorijum se ne pravi sam: $ touch novi/fajl.txt touch: cannot touch 'novi/fajl.txt': No such file or directory $ mkdir -p novi && touch novi/fajl.txt Osvežavanje vremena $ ls -l staro.txt -rw-r--r-- 1 alen alen 1024 Jan 15 09:00 staro.txt $ touch staro.txt $ ls -l staro.txt -rw-r--r-- 1 alen alen 1024 Aug 22 14:30 staro.txt Sadržaj je netaknut, promenjeno je samo vreme. Ovo je korisnije nego što zvuči — alati poput make , rsy...

file

file je Linux komanda koja se koristi za određivanje vrste (tipa) fajla na osnovu njegovog sadržaja. Ova komanda će vam reći informacije o tome da li je fajl tekstualni dokument, slika, izvršna datoteka ili nešto drugo. file se često koristi za identifikaciju nepoznatih fajlova ili za proveru vrste fajlova na Linux sistemu. Osnovna struktura file komande je: file [opcije] ime_fajla ime_fajla : Specificira ime fajla za koji želite da saznate njegov tip. Primeri korišćenja file : Određivanje tipa fajla: file neki_fajl Ova komanda će prikazati informacije o tipu fajla "neki_fajl", na primer, da li je to tekstualni fajl, binarni fajl, slika i slično. Određivanje tipa više fajlova odjednom: file fajl1 fajl2 fajl3 Ova komanda će prikazati informacije o tipu svakog od navedenih fajlova. Određivanje tipa direktorijuma: file neki_direktorijum file komanda takođe može dati informacije o tipu direktorijuma, ali će obično prikazati "dire...

zip i unzip — arhiva koja radi i na Windowsu

Uprkos sličnom imenu, zip i gzip nemaju mnogo zajedničkog. gzip samo smanjuje jedan fajl, a tar samo spaja više njih. zip radi oba posla odjednom. Zbog toga na Linuxu nije podrazumevan izbor — ali ima jednu prednost koju tar nema: otvara se dvoklikom na svakom sistemu , bez ijednog dodatnog programa. Kad arhivu šalješ nekome ko nije na Linuxu, zip je pravi izbor. Osnovno $ zip arhiva.zip fajl1.txt fajl2.txt adding: fajl1.txt (deflated 62%) adding: fajl2.txt (deflated 58%) Za direktorijum je -r obavezno: $ zip -r sajt.zip sajt/ adding: sajt/ (stored 0%) adding: sajt/index.html (deflated 71%) adding: sajt/css/style.css (deflated 68%) Bez -r dobijaš arhivu sa praznim direktorijumom i ničim unutra — što je najčešća greška sa ovom komandom. Nastavak .zip se dodaje sam ako ga nisi napisao. Raspakivanje $ unzip sajt.zip $ unzip sajt.zip -d /gde/hocu/ Za razliku od tar-a, gde je odredište -C , ovde je -d . Pregled pre raspakivanja $ unzip -l paket.zip ...

tar — standardna Linux arhiva

Ime je skraćeno od tape archive — nastao je za pisanje na magnetne trake. Traka je odavno nestala, a tar je ostao, jer radi jednu stvar koju nijedan drugi format ne radi tako dobro: pakuje ceo direktorijum u jedan fajl, uz čuvanje dozvola, vlasništva i simboličkih linkova. Zato je backup Linux sistema gotovo uvek tar arhiva. Tri komande koje su dovoljne $ tar -czf arhiva.tar.gz direktorijum/ # napravi $ tar -tf arhiva.tar.gz # pogledaj sadržaj $ tar -xf arhiva.tar.gz # raspakuj Sve ostalo na ovoj stranici su varijacije. Ako zapamtiš samo ove tri, u devedeset odsto slučajeva ti je dovoljno. Šta znače slova -c create — napravi arhivu -x extract — raspakuj -t list — samo prikaži sadržaj -f file — ime arhive dolazi odmah iza -v verbose — ispiši svaki fajl -z / -j / -J gzip / bzip2 / xz Prva tri se međusobno isključuju — biraš tačno...

cat

cat je Linux komanda koja se koristi za prikazivanje sadržaja fajlova na standardnom izlazu (u konzoli). Naziv "cat" potiče od "concatenate," što znači spajanje, a osnovna svrha komande je da prikaže sadržaj jednog ili više fajlova. Evo osnovne strukture cat komande i nekoliko primera: Osnovna struktura cat komande: cat [opcije] fajlovi fajlovi : Specificira fajlove čiji sadržaj želite da prikažete. Neki od najčešće korišćenih opcija za cat su: -n ili --number : Ova opcija dodaje brojeve linija uz svaku liniju teksta u izlazu. -b ili --number-nonblank : Ova opcija dodaje brojeve linija samo uz neprazne linije teksta u izlazu. Primeri korišćenja cat : Prikazivanje sadržaja jednog fajla: cat fajl.txt Ova komanda će prikazati sadržaj fajla "fajl.txt" na ekranu. Prikazivanje sadržaja više fajlova: cat fajl1.txt fajl2.txt fajl3.txt Ova komanda će prikazati sadržaj svih navedenih fajlova jedan za drugim. Prikaziva...