Există două comenzi foarte utile în Linux care vă permit să vedeți o parte dintr-un fișier. Primul se numește cap și implicit, vă arată primele 10 linii dintr-un fișier. A doua este comanda tail, care implicit vă permite să vizualizați ultimele 10 linii dintr-un fișier.
De ce ați dori să utilizați oricare dintre aceste comenzi? De ce nu folosiți doar comanda cat pentru a vizualiza întregul fișier sau utilizați un editor precum nano?
Imaginați-vă că fișierul pe care îl citiți are 300,000 de rânduri. Imaginați-vă, de asemenea, că fișierul consumă mult spațiu pe disc.
O utilizare obișnuită pentru comanda head este să vă asigurați că fișierul pe care doriți să-l vizualizați este într-adevăr fișierul corect. De obicei, vă puteți da seama dacă vă uitați la fișierul corect doar vizualizând primele câteva rânduri. Puteți alege apoi să utilizați un editor precum nano pentru a edita fișierul.
Comanda tail este utilă pentru vizualizarea ultimelor linii de fișiere și este foarte bună atunci când doriți să vedeți ce se întâmplă într-un fișier jurnal din dosarul / var / log.
Exemplu de utilizare
Comanda coadă implicit afișează ultimele 10 linii ale unui fișier.
Sintaxa pentru comanda tail este următoarea:
coadă
De exemplu, pentru a vizualiza jurnalul de încărcare pentru sistemul dvs., puteți utiliza următoarea comandă:
sudo tail
Rezultatul ar fi ceva de genul acesta:
Cum se specifică numărul de linii de afișat
Specificați numărul de linii pe care doriți să le vedeți folosind următoarea comandă:
sudo tail -n20
Exemplul de mai sus ar arăta ultimele 20 de linii ale fișierului.
Alternativ, puteți utiliza funcția -n comutați pentru a specifica punctul de plecare și în fișier. Poate știți că primele 30 de rânduri dintr-un fișier sunt comentarii și doriți doar să vedeți datele dintr-un fișier. În acest caz, veți utiliza următoarea comandă:
sudo tail -n + 20
Comanda coadă este adesea utilizată alături de mai mult pentru a putea citi fișierul o pagină la un moment dat.
De exemplu:
sudo tail -n + 20
Comanda de mai sus trimite ultimele 20 de linii din numele fișierului și le transmite ca intrare la comanda more.
De asemenea, puteți utiliza comanda tail pentru a afișa un anumit număr de octeți în loc de linii:
sudo tail -c20
Utilizați același comutator pentru a începe să afișați dintr-un anumit număr de octeți, după cum urmează:
sudo tail -c + 20
Cum se monitorizează un fișier jurnal
Veți observa că am inclus sudo în majoritatea comenzilor. Această includere este necesară numai atunci când nu aveți permisiuni ca utilizator normal pentru a vizualiza fișierul și aveți nevoie de permisiuni ridicate.
Multe scripturi și programe nu sunt afișate pe ecran, dar se adaugă la un fișier jurnal în timp ce rulează. Utilizați următoarea comandă coadă pentru a verifica modul în care jurnalul se schimbă la fiecare atât de multe secunde:
sudo tail -F -s20
De asemenea, puteți utiliza codul pentru a continua monitorizarea unui jurnal până când un proces moare după cum urmează:
sudo tail -F --pid = 1234
Pentru a găsi ID-ul procesului pentru un proces, puteți utiliza următoarea comandă:
ps -ef | grep & l
De exemplu, imaginați-vă că editați un fișier folosind nano. Puteți găsi ID-ul procesului pentru nano folosind următoarea comandă:
p
Ieșirea din comandă vă va oferi un ID de proces. Imaginați-vă că ID-ul procesului este 1234. Acum puteți rula coada împotriva fișierului care este editat de nano folosind următoarea comandă:
sudo tail -F --pid = 1234
De fiecare dată când fișierul este salvat în nano, comanda tail va prelua noile linii din partea de jos. Comanda se oprește numai când editorul nano este închis.
Cum să reîncercați comanda coadă
Dacă primiți o eroare în timp ce încercați să executați comanda tail, deoarece aceasta este inaccesibilă din anumite motive, puteți utiliza reîncercați parametru pentru a reîncerca până când fișierul este disponibil.
sudo tail --retry -F
Acest lucru funcționează într-adevăr împreună cu -F , deoarece trebuie să urmăriți fișierul pentru a încerca din nou.
Rezumat
Pentru a afla mai multe informații despre comanda tail, puteți utiliza următoarea comandă: