Comanda less
oferă posibilitatea de a explora un fișier text, prezentând textul pe ecran, pagină cu pagină. Deși la o primă vedere pare a fi o comandă Linux simplă, less
ascunde o profunzime și o complexitate considerabile.
Scurtă istorie a comenzii less
În lumea Linux și Unix, aproape fiecare instrument are o istorie bogată. less
nu face excepție, fiind un descendent al comenzii more
, care a apărut inițial în 1978 odată cu lansarea versiunii 3.0 a distribuției Berkeley Software Distribution Unix (3.0BSD). more
permitea utilizatorilor să navigheze secvențial printr-un fișier text, afișând o pagină de text la un moment dat.
În contextul în care necesitatea este mama invențiilor, limitarea versiunilor timpurii ale comenzii more
, care nu permiteau derularea înapoi printr-un fișier, l-a determinat pe Mark Nudelman să dezvolte less
, depășind această problemă specifică. Munca a început în 1983, iar prima versiune a fost disponibilă în afara companiei pentru care lucra în 1985. Din octombrie 2019, Mark Nudelman este în continuare cel care se ocupă de întreținerea less
.
Oare există vreun utilizator Linux care să nu fi folosit less
? Chiar dacă nu a folosit-o direct pentru a analiza un fișier text, este foarte probabil să fi folosit comanda man
, care, în culise, utilizează less
pentru a afișa paginile manualului. Aceasta este o comandă cu multe funcții utile.
De ce less
este superioară lui more
less
a evoluat constant de-a lungul anilor, acumulând o mulțime de opțiuni pentru linia de comandă și scurtături de taste în interiorul aplicației. Comparând pagina de manual pentru less
cu cea pentru more
, veți înțelege rapid de ce less
este considerabil mai avansată.
Deși more
a depășit inițiala limitare de a nu permite navigarea înapoi, această îmbunătățire se aplică doar fișierelor, nu și intrărilor canalizate. less
, pe de altă parte, permite navigarea înapoi indiferent de sursa datelor.
Datorită flexibilității sale în navigarea fișierelor, vizualizarea simultană a mai multor fișiere, căutarea de text, utilizarea marcajelor și gestionarea intrărilor canalizate, less
se dovedește a fi mult mai utilă. Este recomandabil să folosiți less
în locul lui more
.
Cum se citește un fișier cu less
Pentru a deschide un fișier în less
, introduceți numele fișierului în linia de comandă:
less NumeleFisierului.txt
Fișierul se va încărca și va fi afișat. Începutul fișierului va apărea în fereastra terminalului. Puteți utiliza rotița de scroll a mouse-ului pentru a naviga prin text, atât în sus, cât și în jos.
Pe tastatură, bara de spațiu sau tasta Page Down vă permite să avansați în text câte o pagină. Tasta Page Up vă deplasează înapoi (spre începutul fișierului). Tastele Home și End vă duc direct la începutul și, respectiv, sfârșitul fișierului text.
Numele fișierului este afișat în colțul din stânga jos al ecranului. Când începeți să navigați prin fișier, linia de jos se golește și este folosită pentru a afișa mesajele și a introduce comenzi.
Apăsați tasta q
pentru a închide less
.
Afișarea numerelor de linie
Pentru a afișa numerele de linie ale fișierului text, folosiți opțiunea -N
(numere de linii):
less -N NumeleFisierului.txt
Numerele de linie pot fi utile pentru a localiza rapid anumite linii sau secțiuni din fișierele jurnal sau alte tipuri de fișiere care nu sunt scrise sub formă de proză.
Căutarea în less
Pentru a căuta text în fișier, apăsați tasta /
și introduceți expresia de căutat. Căutarea ține cont de diferența dintre majuscule și minuscule. Expresia introdusă va apărea pe linia de jos a ecranului. Apăsați tasta Enter pentru a efectua căutarea.
În acest exemplu, termenul de căutare este „termen”, iar acesta poate fi văzut în partea de jos a ecranului.
Căutarea se realizează de la pagina curentă către sfârșitul fișierului. Pentru a căuta în tot fișierul, derulați la începutul acestuia înainte de a începe căutarea.
Veți fi notificat dacă nu se găsesc potriviri. Dacă o potrivire este găsită, ecranul se va deplasa pentru a afișa rezultatul.
Pentru a găsi următorul rezultat, apăsați tasta n
. Pentru a căuta rezultatul anterior, apăsați tasta N
.
Pentru a căuta înapoi, de la poziția curentă din fișier către început, apăsați tasta ?
și introduceți termenul de căutat. Pentru a găsi următorul rezultat, apăsați n
. Pentru a căuta rezultatul anterior, apăsați N
.
Rețineți că, atunci când căutați înapoi, următorul element găsit cu n
va fi cel mai apropiat de începutul fișierului, în timp ce N
va căuta un element mai apropiat de sfârșitul fișierului. Altfel spus, n
și N
își inversează direcția de căutare când căutați înapoi.
Deschiderea unui fișier cu un termen de căutare
Puteți utiliza opțiunea -p (model)
pentru a face ca less
să caute un termen în fișier și să afișeze pagina care conține prima potrivire, în loc de prima pagină a fișierului (cu excepția cazului în care termenul de căutat este găsit chiar pe prima pagină).
Rețineți că nu trebuie să existe spațiu între -p
și termenul de căutare.
less -pTermenulCautat NumeleFisierului.txt
Fișierul este afișat, cu primul termen de căutare evidențiat.
Navigarea în less
: Cele mai utile taste
Folosiți aceste taste pentru a vă deplasa și a căuta în fișierul text:
Deplasare o linie înainte: | Săgeată în jos, Enter, e sau j |
Deplasare o linie înapoi: | Săgeată sus, y sau k |
Deplasare o pagină înainte: | Bara de spațiu sau Page Down |
Deplasare o pagină înapoi: | Page Up sau b |
Derulare la dreapta: | Săgeată la dreapta |
Derulare la stânga: | Săgeată la stânga |
Salt la începutul fișierului: | Home sau g |
Salt la sfârșitul fișierului: | End sau G |
Salt la o linie specifică: | Introduceți numărul liniei și apăsați apoi „g” |
Salt la un anumit procent din fișier: | Introduceți procentul și apăsați apoi „p” sau „%” (Puteți introduce și valori zecimale, de exemplu 27,2%, tastând „27.2” și apoi „p” sau „%”. Motivul pentru care ați folosi zecimale este incert.) |
Căutare înainte: | Apăsați „/”, introduceți textul căutat, apoi apăsați Enter |
Căutare înapoi: | Apăsați „?”, introduceți textul căutat, apoi apăsați Enter |
Următorul rezultat al căutării: | n |
Rezultatul anterior al căutării: | N |
Ieșire: | q |
Eliminarea liniilor goale multiple
Opțiunea -s
(elimină liniile goale) reduce seriile de linii goale la o singură linie goală.
În fișierul nostru exemplu există mai multe linii goale consecutive. Să vedem cum le gestionează less
cu opțiunea -s
:
less -s NumeleFisierului.txt
Toate liniile goale duble (sau multiple) au fost înlocuite cu o singură linie goală.
Vizualizarea mai multor fișiere
less
poate deschide mai multe fișiere. Puteți naviga de la un fișier la altul, iar less
va reține poziția din fiecare fișier.
less NumeleFisierului1.txt NumeleFisierului2.txt
Fișierele sunt deschise, iar primul fișier este afișat. Veți fi informat despre fișierul curent și câte fișiere au fost încărcate. Această informație este evidențiată mai jos.
Pentru a vizualiza fișierul următor, apăsați :
și apoi n
.
Ecranul se va actualiza pentru a afișa al doilea fișier, iar informațiile de pe linia de jos vor indica faptul că vizualizați al doilea fișier. Acest lucru este evidențiat mai jos.
Pentru a naviga la fișierul anterior, tastați :
și apoi apăsați p
.
Utilizarea marcajelor
less
vă permite să plasați marcaje, pentru a putea reveni ușor la un pasaj marcat. Fiecare marcaj este reprezentat de o literă. Pentru a adăuga un marcaj pe linia afișată în partea de sus a ecranului, apăsați tasta m
, apoi litera pe care doriți să o utilizați, de exemplu a
.
Când apăsați m
, linia de jos a ecranului va afișa un prompt, așteptând să apăsați o literă.
Imediat ce apăsați o literă, prompt-ul dispare.
Din orice altă locație din fișier, vă puteți întoarce la marcaj apăsând apostroful '
și apoi litera corespunzătoare marcajului. Când apăsați '
, vi se va solicita marcajul la care doriți să mergeți.
Apăsați litera marcajului dorit, iar acea secțiune din fișierul text va fi afișată.
Folosirea intrărilor canalizate cu less
less
poate afișa informații din fluxuri text canalizate, la fel de ușor ca și cum ar fi fișiere.
Comanda dmesg
afișează mesajele din bufferul inelului kernelului. Putem canaliza rezultatul de la dmesg
către less
folosind următoarea comandă:
dmesg | less
Rezultatul de la dmesg
va fi afișat.
Puteți căuta în textul canalizat ca și cum ar fi un fișier. Pentru a vedea cele mai recente mesaje, apăsați tasta End
pentru a naviga la capătul fișierului.
Pe măsură ce sosesc mesaje noi, va trebui să apăsați continuu tasta End
pentru a forța less
să afișeze partea de jos a fișierului, ceea ce nu este foarte practic. Pentru a face ca less
să afișeze continuu capătul textului, chiar și atunci când sunt adăugate date noi, utilizați opțiunea +F
(înainte). Rețineți că este +
și nu -
ca indicator de opțiune.
dmesg | less +F
Indicatorul opțiunii +
spune lui less
să trateze opțiunea ca și cum ați fi folosit acea comandă în less
. Deci, dacă ați uitat să utilizați opțiunea +F
, apăsați F
în interiorul less
.
less
va afișa capătul textului, care va conține cele mai recente mesaje de la dmesg
, afișând un mesaj care indică faptul că așteaptă date noi. Pe măsură ce apar mesaje noi, ecranul se va derula, astfel încât să puteți vedea întotdeauna cele mai recente mesaje.
Nu puteți derula sau naviga prin pagini în acest mod; funcția este dedicată afișării părții de jos a textului canalizat. Pentru a ieși din acest mod, apăsați Ctrl+c
și veți reveni la modul interactiv less
.
Editarea fișierelor cu less
Puteți edita fișiere cu less
, într-un anumit sens. Comanda nu permite editarea directă, dar dacă apăsați tasta v
în timp ce vizualizați un fișier, acesta va fi transferat în editorul implicit. Când ieșiți din editor, veți reveni la less
.
Apăsați v
în timp ce vizualizați un fișier în less
:
Fișierul va fi încărcat în editorul implicit, în acest caz nano
:
Când închideți editorul, veți reveni la less
.
Concluzie
Deși poate suna neintuitiv, în acest caz less
este mai mult decât more
.