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

TasterRadnja
Space ili fekran napred
bekran nazad
ili jred napred
ili kred nazad
dpola ekrana napred
upola ekrana nazad
gna početak fajla
Gna kraj fajla
50gna 50. red
qizlaz

Tasteri j i k nisu slučajno tu — isti su kao u vi-ju. Ako ih naučiš ovde, dobio si ih i tamo.

Pretraga

Ovo je razlog zbog kojeg se less koristi.

/pojam        traži unapred
?pojam        traži unazad
n             sledeće pojavljivanje
N             prethodno pojavljivanje

Otkucaj /, upiši šta tražiš i pritisni Enter. Sva pojavljivanja se osvetle, a n te vodi kroz njih.

$ less /var/log/httpd/error_log
/timeout

Pretraga razlikuje mala i velika slova. Ako ne želiš da razlikuje, uključi to sa -i:

$ less -i /etc/httpd/conf/httpd.conf

Ili unutar programa otkucaj -i pa Enter — većina opcija se može uključiti i u toku rada.

Opcije koje vredi znati

Prikaz brojeva redova (-N)

$ less -N /etc/fstab

Nezamenljivo kad ti neko kaže „greška je u 47. redu" ili kad prepravljaš konfiguraciju na osnovu poruke iz loga.

Otvaranje na kraju fajla (+G)

$ less +G /var/log/messages

Kod logova te skoro uvek zanima kraj. Ovo te odmah odvede tamo.

Bez preloma dugih redova (-S)

$ less -S pristup.csv

Dugi redovi se seku umesto da se prelamaju, pa tabela ostaje čitljiva. Levo i desno se krećeš strelicama.

Boje i kontrolni znaci (-R)

$ ls --color=always -l | less -R

Bez -R boje se prikazuju kao smeće tipa ESC[0;34m.

Praćenje loga uživo

Pritisni veliko F dok si u less-u. Program prelazi u režim praćenja i ispisuje nove redove čim stignu — isto što i tail -f.

Prednost je što iz tog režima izlaziš sa Ctrl+C i ostaješ u fajlu, pa možeš da se vratiš nazad i pretražuješ. Sa tail -f bi morao ponovo da otvaraš.

$ less +F /var/log/httpd/access_log

Radni tok koji ćeš stalno koristiti: F da pratiš, Ctrl+C kad nešto primetiš, ? da nađeš gde je to počelo, pa opet F.

Kombinovanje sa drugim komandama

less čita i sa standardnog ulaza, pa se prirodno spaja pajpom:

$ ps aux | less
$ dmesg | less
$ dnf list --installed | less
$ journalctl -u httpd --no-pager | less

Ovo je često bolje nego grep kada ne znaš tačno šta tražiš — prosledi sve u less, pa traži unutra sa / dok ne nađeš.

Više fajlova odjednom

$ less /etc/hosts /etc/resolv.conf /etc/nsswitch.conf

Krećeš se sa :n (sledeći) i :p (prethodni). Zgodno kad upoređuješ konfiguracije.

Prelazak u editor

Ako u toku pregleda vidiš nešto što odmah treba popraviti, pritisni v — fajl se otvara u editoru, na istom mestu gde si stao. Kad izađeš iz editora, vraćaš se u less.

less je već svuda oko tebe

Kada otkucaš man, ono što vidiš je zapravo less. Isto važi za git log, systemctl status i journalctl.

To znači da sve iz ovog teksta radi i tamo. Pretraga po man stranici sa / umesto skrolovanja je jedna od onih sitnica koje vidno ubrzaju rad.

$ man dnf
/history
n

Podrazumevani pager

Koji se pager koristi određuje promenljiva PAGER:

$ echo $PAGER

Ako je prazna, sistem bira sam. Da ti less uvek radi sa brojevima redova i bez razlikovanja velikih slova, dodaj u ~/.bashrc:

export LESS="-iNR"

A more?

Za slučaj da naletiš na sistem gde less nije instaliran:

$ more /etc/passwd
TasterRadnja
Spaceekran napred
Enterred napred
/pojampretraga unapred
qizlaz

Nema kretanja unazad i program sam izlazi kad dođe do kraja fajla.

Kada koristiti šta

  • cat — kratak fajl koji staje na ekran, ili kad prosleđuješ dalje pajpom
  • head / tail — kad ti treba samo početak ili kraj
  • grep — kad tačno znaš šta tražiš
  • less — sve ostalo

Povezano: cat · head · tail · grep · man · Linux osnove

Comments