Gym
lesson

Delovi fajlova

Cilj lekcije: Naučiti kako da pregledaš samo početak ili kraj fajla, i kako da pratiš log fajlove u realnom vremenu dok se popunjavaju.


Zašto gledati samo deo fajla?

Zamislimo da imaš log fajl servera koji ima 500.000 linija. Otvaranje takvog fajla sa cat bi preplavilo terminal. Sa less možeš da prelistaš, ali ako te zanima samo:

  • Koje su prve linije fajla (zaglavlje, format, start programa)?
  • Koje su poslednje linije (najnoviji događaji, poslednje greške)?
  • Šta se trenutno dešava dok server radi?

Za sve ove situacije postoje head i tail.


Komanda head

head prikazuje prvih N linija fajla. Po podrazumevanoj vrednosti prikazuje prvih 10 linija.

Osnovna upotreba

head fajl.txt

Prikazuje prvih 10 linija fajla fajl.txt.

Opcija -n — broj linija

Možeš da specificiraš koliko linija želiš:

head -n 20 fajl.txt
head -n 1 fajl.txt    # samo prva linija
head -n 100 fajl.txt  # prvih 100 linija

Kraći oblik koji mnogi koriste:

head -20 fajl.txt     # ekvivalentno sa head -n 20

Praktični primeri sa logovima

# Pogledaj format log fajla (prve 5 linija)
head -n 5 /var/log/syslog

# Proveri zaglavlje CSV fajla
head -n 1 podaci.csv

# Pogledaj početak skripte
head -n 20 install.sh

head sa više fajlova

Kada prosleđuješ više fajlova, head prikazuje zaglavlje za svaki:

head -n 3 fajl1.txt fajl2.txt

Izlaz:

==> fajl1.txt <==
Linija 1 iz fajla 1
Linija 2 iz fajla 1
Linija 3 iz fajla 1

==> fajl2.txt <==
Linija 1 iz fajla 2
Linija 2 iz fajla 2
Linija 3 iz fajla 2

Komanda tail

tail prikazuje poslednjih N linija fajla. Po podrazumevanoj vrednosti prikazuje poslednjih 10 linija.

Osnovna upotreba

tail fajl.txt

Prikazuje poslednjih 10 linija.

Opcija -n — broj linija

tail -n 20 fajl.txt   # poslednjih 20 linija
tail -n 1 fajl.txt    # samo poslednja linija
tail -n 50 fajl.txt   # poslednjih 50 linija

Zašto je tail koristan za logove?

Log fajlovi se uvek pišu hronološki — nove informacije se dodaju na kraj fajla. Kada server prijavi grešku, ona je na dnu. Kada aplikacija startuje, nova poruka se pojavljuje na kraju.

# Pogledaj poslednjih 20 linija log fajla
tail -n 20 /var/log/auth.log

# Pogledaj poslednju grešku
tail -n 5 /var/log/nginx/error.log

Komanda tail -f — praćenje fajla uživo

Ovo je jedna od najkorisnijih komandi za sistem administratore i programere. Opcija -f (od follow — pratiti) čini da tail ne izađe nakon prikazivanja poslednjih linija, već ostane i prikazuje svaku novu liniju čim bude zapisana u fajl.

tail -f /var/log/syslog

Terminal ostaje "živ" i svaki novi zapis u fajlu se odmah pojavljuje na ekranu. Da izađeš, pritisni Ctrl+C.

Praktičan scenario: debugovanje web servera

# Terminal 1 — pratis log fajl
# (nginx je popularan web server — log fajl pamti svaki HTTP zahtev)
tail -f /var/log/nginx/access.log

# (U terminalu 2 ili browseru) Posecujes stranicu
# U terminalu 1 odmah vidis:
# 192.168.1.5 - - [13/Apr/2026 14:23:45] "GET / HTTP/1.1" 200 1234

Kombinovanje -f i -n

# Prikaži poslednjih 50 linija, pa nastavi da pratiš
tail -n 50 -f /var/log/syslog

Praćenje više fajlova odjednom

tail -f /var/log/nginx/access.log /var/log/nginx/error.log

tail -f će označiti ime fajla iznad svake grupe linija da znaš odakle dolaze.


Kombinovanje head i tail

Možeš kombinovati ove komande. Na primer, da vidiš linije od 95 do 100 u fajlu:

# Uzmi prvih 100 linija, pa od toga poslednjih 6
head -n 100 fajl.txt | tail -n 6

Pregled komandi

Komanda Šta radi
head fajl.txt Prvih 10 linija
head -n 20 fajl.txt Prvih 20 linija
tail fajl.txt Poslednjih 10 linija
tail -n 20 fajl.txt Poslednjih 20 linija
tail -f fajl.txt Prati fajl uživo (Ctrl+C za izlaz)
tail -n 50 -f fajl.txt Poslednjih 50, pa prati uživo

Rezime

  • head prikazuje početak fajla (podrazumevano 10 linija)
  • tail prikazuje kraj fajla (podrazumevano 10 linija)
  • Opcija -n kontroliše broj linija kod oba alata
  • tail -f prati fajl u realnom vremenu — nezamenjljivo za praćenje logova
  • Korisno za log fajlove jer su najnoviji zapisi uvek na kraju

U sledećoj lekciji naučićeš kako da dobiješ informacije o samom fajlu — tip, veličinu, broj reči i metapodatke.