Posts

Showing posts with the label linux-osnove

less i more — pregled velikih fajlova

Kad otvoriš fajl sa cat , ceo sadržaj se prospe kroz terminal i ostaje ti samo poslednji ekran. Za konfiguraciju od petsto linija ili log od pedeset hiljada to je neupotrebljivo. Pager je program koji prikazuje sadržaj ekran po ekran i dozvoljava da se krećeš gore-dole i pretražuješ. Na Linuxu ih ima dva: more i less . Kratko: koristi less more je stariji i primitivniji — kreće se samo unapred i izlazi na kraju fajla. less je napisan kao njegova bolja zamena, odakle i ime: šala na račun izreke da je manje ponekad više. Nauči less , a more zapamti samo zato što ga ponekad zatekneš na starim ili vrlo minimalnim sistemima. Pokretanje $ less /etc/ssh/sshd_config Fajl se otvara u punom ekranu, sa : na dnu. Izlaz je taster q . less ne učitava ceo fajl u memoriju, nego čita onoliko koliko treba. Zato otvara fajl od nekoliko gigabajta trenutno, dok bi ga editor učitavao dugo ili se ugušio. Kretanje Taster Radnja Space ili f ekran napred b ekran nazad ↓...

Rad sa fajlovima i direktorijumima

Ovo je lekcija u kojoj terminal počinje da bude koristan. Osam komandi pokriva praktično sve svakodnevno baratanje fajlovima — kretanje, kreiranje, kopiranje, premeštanje i brisanje. Pretpostavlja se da već znaš kako se komanda sastavlja i kako izgleda stablo direktorijuma . Sve što sledi radi u tvojoj virtuelnoj mašini, u home direktorijumu, bez sudo . Napravi radni prostor: $ mkdir ~/vezba $ cd ~/vezba Gde sam — pwd $ pwd /home/alen/vezba Ispisuje punu putanju direktorijuma u kom se nalaziš. Prompt to obično već pokazuje, ali skraćeno — pwd daje ceo put. Šta je ovde — ls $ ls Documents Downloads skripta.sh Sam po sebi daje samo imena. Prava vrednost je u opcijama: $ ls -l detaljan prikaz $ ls -a i skriveni fajlovi $ ls -h čitljive veličine (uz -l) $ ls -t sortirano po vremenu izmene $ ls -S sortirano po veličini $ ls -r obrnut redosled $ ls -R i sadržaj poddirektorijuma U praksi se spajaju: $ l...

Rad iz komandne linije

Ako dolaziš sa Windowsa, terminal deluje kao korak unazad — crn ekran umesto lepog interfejsa. Ali kad na serveru treba pronaći grešku u milion redova loga ili istu izmenu primeniti na dvesta fajlova, komandna linija radi za sekunde ono što mišem nije izvodljivo. Ovo je prvi stvarni susret sa terminalom. Sve ostalo na blogu oslanja se na ovaj tekst. Terminal i shell nisu isto Dva pojma koja se stalno mešaju: Terminal je prozor. Program koji prikazuje tekst i prima ono što kucaš — GNOME Terminal, Konsole, PuTTY, ili prazan ekran na serveru bez grafike. Shell je program unutar tog prozora koji tvoje komande zapravo tumači i izvršava. Na Linuxu je to najčešće bash . Terminal je telefon, shell je osoba sa druge strane. Koji shell koristiš: $ echo $SHELL /bin/bash Postoje i drugi — zsh , fish , sh — ali osnove su svuda iste. Ovaj blog polazi od bash-a. Kako otvoriti terminal Grafičko okruženje: Ctrl+Alt+T , ili potraži „Terminal" u meniju aplikacija Serv...

Direktorijumi i fajlovi Linux sistema

Na Windowsu imaš C:\ , D:\ i svaki disk svoje slovo. Na Linuxu postoji samo jedno stablo koje počinje od korena, oznake / . Svi diskovi, particije, USB uređaji i mrežni deljeni direktorijumi ubacuju se negde u to stablo. Ta razlika je prva stvar koja zbunjuje, a druga je što svaki direktorijum u korenu ima tačno određenu svrhu. To nije stvar navike nego standarda koji se zove FHS — Filesystem Hierarchy Standard. Zato se, kad naučiš ovu strukturu, snalaziš na svakom Linux sistemu na svetu, bez obzira na distribuciju . Pogled na koren $ ls / bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr Deluje kao gomila skraćenica, ali svaka ima logiku. Podeliću ih po tome koliko ćeš ih često koristiti. Direktorijumi koje ćeš koristiti svakog dana /etc — konfiguracija Ovde je podešavanje celog sistema i svih servisa. Sve su to obični tekstualni fajlovi koje uređuješ editorom . /etc/passwd korisnički nalozi /etc/...

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...

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...

history — istorija komandi

Bash pamti sve što otkucaš. To nije samo udobnost — istorija ti štedi kucanje dugih komandi, pomaže da rekonstruišeš šta si radio pre tri dana, i jedan je od prvih izvora u koji se gleda kad nešto krene naopako. Oblik komande history [broj] history [opcije] broj — prikaži samo poslednjih toliko komandi opcije — brisanje, upis i učitavanje istorije Pregled $ history 138 cd /var/log 139 ls -lt 140 tail -n 50 messages 141 systemctl status httpd 142 history Svaka komanda ima svoj broj — on je bitan, jer se preko njega komanda poziva ponovo. Ako te zanima samo skorašnje: $ history 10 A kad tražiš nešto konkretno, provuci kroz grep : $ history | grep systemctl $ history | grep -i docker Ovo je jedan od najkorisnijih obrazaca u svakodnevnom radu — setiš se da si nešto radio, ali ne i kako tačno. Ponavljanje komandi Strelice Taster ↑ vraća prethodnu komandu, ↓ ide napred. Najjednostavniji način i onaj koji ćeš koristiti najviše. Ctrl+...

echo — ispis teksta i promenljivih

echo ispisuje tekst na ekran. Deluje kao komanda bez svrhe — dok ne shvatiš da je to alat kojim proveravaš šta je u promenljivoj, gradiš izlaz skripte i puniš fajlove. Uz to, na njemu se najlakše uči jedna stvar koja zbunjuje sve početnike: kako shell tumači navodnike . Oblik komande echo [opcije] [tekst] opcije — menjaju način ispisa ( -n , -e ) tekst — ono što se ispisuje; može biti običan tekst, promenljiva ili rezultat druge komande Osnovno $ echo Zdravo Zdravo $ echo "Zdravo, svete" Zdravo, svete Bez navodnika radi, ali ne uvek isto: $ echo Zdravo svete Zdravo svete Razmaci su nestali. Shell je tekst razdvojio na argumente, a echo ih je spojio jednim razmakom. Sa navodnicima ostaje tačno onako kako si napisao: $ echo "Zdravo svete" Zdravo svete Zato je navika da tekst uvek staviš u navodnike — ne kozmetika nego zaštita. Promenljive Ovde echo postaje koristan. Znak $ ispred imena vraća vrednost: $ b...

alias — prečice za komande

Ako komandu kucaš deset puta dnevno, nema razloga da je kucaš celu. Alias je sopstveno, kraće ime za komandu — sa svim opcijama koje inače dodaješ. Uz to, alias objašnjava jednu stvar koja početnike zbunjuje: zašto ls na tvom sistemu prikazuje boje, a na tuđem serveru ne. Oblik komande alias [ime='komanda'] unalias ime bez argumenata — ispisuje sve postojeće aliase ime — kako ćeš zvati prečicu komanda — šta se zapravo izvršava; obavezno u navodnicima ako sadrži razmake Prvi alias $ alias ll='ls -lah' $ ll Od sada ll radi isto što i ls -lah . Bez razmaka oko znaka jednakosti. Sa razmakom ne radi: $ alias ll = 'ls -lah' -bash: alias: ll: not found Šta već imaš $ alias alias egrep='egrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' Distribucija ti je već postavila nekoliko. Tu je i odgovor na...

Početak u Linuxu — šta je i zašto se uči

Ovo je prva lekcija na blogu. Ne uči se nijedna komanda — cilj je da razumeš gde ideš i zašto, pre nego što otvoriš terminal. Linux koristiš i sada Verovatno misliš da nikada nisi radio na Linuxu. Zapravo si u kontaktu sa njim ceo dan: Sajtovi koje otvaraš — najveći deo interneta vrti se na Linux serverima Android telefon — ispod svega je Linux kernel Netflix, Facebook, Google, banke — sve na Linuxu Superračunari — svih pet stotina najbržih na svetu Ruteri, televizori, automobili, bankomati Cloud — AWS, Azure i Google Cloud u ogromnoj većini pokreću Linux instance Praktično svugde osim na desktopu. To je i razlog zašto se Linux uči: ne zato što je bolji od Windowsa za svakodnevni rad, nego zato što je operativni sistem infrastrukture . Šta Linux zapravo jeste Linux je kernel — sloj koji upravlja hardverom, memorijom i procesima. Sam po sebi ne radi ništa vidljivo. Ono što instaliraš zove se distribucija : kernel plus sve ostalo — komande, serv...

Prijavljivanje na sistem

Prvo što Linux traži od tebe je da dokažeš ko si. Za razliku od Windowsa, gde jedan korisnik obično ima ceo računar, Linux je od početka napravljen kao višekorisnički sistem — više ljudi radi na istoj mašini istovremeno, a svako vidi i sme samo svoje. Zato prijava nije formalnost. Ona određuje čiji si i šta smeš. Kako izgleda prijava Na serveru bez grafike dočeka te ovako nešto: Rocky Linux 10.2 (Red Quartz) Kernel 6.12.0-211.el10.x86_64 on an x86_64 lab01 login: alen Password: Upisuješ korisničko ime, pa lozinku. Dok kucaš lozinku ne prikazuje se ništa — ni zvezdice, ni tačke. To je namerno, da onaj ko gleda preko ramena ne sazna ni dužinu. Kucaj normalno i pritisni Enter. Ako sve prođe, dobijaš prompt: [alen@lab01 ~]$ Kako se prompt čita i šta znače $ i # , objašnjeno je u lekciji Rad iz komandne linije . Ko sam Prva provera kad se zatekneš na nepoznatom sistemu: $ whoami alen Detaljnije — sa brojevima i grupama: $ id uid=1000(alen) gid=1000(alen) ...