- Dave McKay
@TheGurkha
- 28 ianuarie 2020, 8:00 EDT
Linux tail
comandă afișează date la sfârșitul unui fișier. Se poate afișa chiar și actualizări care sunt adăugate la un fișier în timp real. Vă arătăm cum să o utilizați.
A ucis systemd coada?
comandatail
vă arată date de la sfârșitul unui fișier., De obicei, date noi sunt adăugate la sfârșitul unui fișier, astfel încât comanda tail
este o modalitate rapidă și ușoară de a vedea cele mai recente Adăugări la un fișier. De asemenea, poate monitoriza un fișier și afișa fiecare nouă intrare de text în acel fișier pe măsură ce apar. Acest lucru face un instrument excelent pentru a monitoriza fișierele jurnal.multe distribuții Linux moderne au adoptat systemd
system and service manager. Acesta este primul proces executat, are ID-ul procesului 1 și este părintele tuturor celorlalte procese. Acest rol folosit pentru a fi manipulate de mai vechi init
sistem.,odată cu această modificare a venit un nou format pentru fișierele jurnal de sistem. Nu mai sunt create în text simplu, sub systemd
acestea sunt înregistrate într-un format binar. Pentru a citi aceste fișiere jurnal, trebuie să utilizați utilitarul journactl
. Comanda tail
funcționează cu formate de text simplu. Nu citește fișiere binare. Deci, aceasta înseamnă că comanda tail
este o soluție în căutarea unei probleme? Mai are ceva de oferit?,
există mai mult la tail
comanda decât arată actualizări în timp real. Și pentru care contează, există încă o mulțime de fișiere jurnal care nu sunt generate de sistem și sunt încă create ca fișiere text simplu. De exemplu, fișierele jurnal generate de aplicații nu și-au schimbat formatul.
folosind tail
trece numele unui fișier la tail
și vă va arăta ultimele zece linii din acel fișier. Fișierele exemplu pe care le folosim conțin liste de cuvinte sortate., Fiecare linie este numerotată, deci ar trebui să fie ușor să urmați exemplele și să vedeți ce efect au diferitele opțiuni.
tail word-list.txt
Pentru a vedea un număr diferit de linii, folosiți -n
(numărul de linii) opțiune:
tail -n 15 word-list.txt
de Fapt, poți renunța la „n”, și de a folosi doar o cratimă „-” și numărul. Asigurați-vă că nu există spații între ele. Tehnic, aceasta este o formă de comandă învechită, dar este încă în pagina man și încă funcționează.,
tail -12 word-list.txt
tail Cu mai Multe Fișiere
poți avea tail
lucra cu mai multe fișiere simultan. Doar treceți numele fișierelor pe linia de comandă:
tail -n 4 list-1.txt list-2.txt list-3.txt
un antet mic este afișat pentru fiecare fișier, astfel încât să știți din ce fișier aparțin liniile.
Afișarea Liniilor de la începutul unui Fișier
+
(se pun de la început) modificator face tail
afișare linii de la începutul unui fișier, începând de la un anumit număr de linie., Dacă fișierul dvs. este foarte lung și alegeți o linie aproape de începutul fișierului, veți primi o mulțime de ieșiri trimise la fereastra terminalului. Dacă este cazul, are sens să conducta de ieșire de la tail
în less
.
tail +440 list-1.txt
Puteți pagina prin text într-un mod controlat.,
Pentru că acolo se întâmplă să fie 20,445 linii din acest fișier, această comandă este echivalentă cu utilizarea „-6” opțiune:
tail +20440 list-1.txt
Utilizarea Bytes Cu coada
Vă pot spune tail
pentru a utiliza compensează în octeți în loc de linii cu ajutorul -c
(bytes) opțiune. Acest lucru ar putea fi util dacă aveți un fișier de text care a fost formatat în înregistrări de dimensiuni obișnuite. Rețineți că un caracter newline contează ca un octet., Această comandă va afișa ultima 93 octeți din fișier:
tail -c 93 list-2.txt
puteți combina -c
(bytes) opțiunea cu +
(numeri de la începutul fișierului) modificator, și specificați un decalaj în octeți numărate de la începutul fișierului:
tail -c +351053 list-e.txt
Conducte În coada
mai Devreme, noi conducte de ieșire din tail
în less
. Putem, de asemenea, conducta de ieșire din alte comenzi în tail
.,
Pentru a identifica cele cinci fișiere sau foldere cu cele mai vechi ori modificare, utilizare -t
(un fel de modificare dată) opțiune cu ls
, și conducta de ieșire într-un tail
.
ls -tl | tail -5
head
comanda liste de linii de text de la începutul unui fișier. Putem combina acest lucru cu tail
pentru a extrage o secțiune a fișierului. Aici, folosim comanda head
pentru a extrage primele 200 de linii dintr-un fișier., Acesta este introdus în tail
, care extrage ultimele zece linii. Acest lucru ne dă liniile 191 până la linia 200. Adică ultimele zece linii ale primelor 200 de linii:
head -n 200 list-1.txt | tail -10
această comandă listează cele cinci procese cele mai înfometate de memorie.
ps aux | sort -nk +4 | tail -5
să spargem asta.
comanda ps
afișează informații despre procesele care rulează. Opțiunile utilizate sunt:
- a: listați toate procesele, nu doar pentru utilizatorul curent.
- u: afișează o ieșire orientată spre utilizator.,
- x: listați toate procesele, inclusiv cele care nu rulează în interiorul unui TTY.
sort
comanda felul de ieșire din ps
. Opțiunile pe care le folosim cu sort
sunt:
- n: Sortare numerică.
- k + 4: sortare pe coloana a patra.
comanda tail -5
Afișează ultimele cinci procese din ieșirea sortată. Acestea sunt cele cinci procese cele mai înfometate de memorie.,
tail pentru a Urmări Fișierele în Timp Real
de Urmărire noi intrări de text care sosesc într-un fișier—de obicei, un fișier jurnal—este ușor cu tail
. Treceți numele fișierului pe linia de comandă și utilizați opțiunea -f
(follow).
tail -f geek-1.log
deoarece fiecare intrare jurnal nou este adăugat la fișierul jurnal, coada actualizează afișarea în fereastra terminal.puteți rafina ieșirea pentru a include numai linii de relevanță sau interes special., Aici, suntem folosind grep
pentru a afișa numai liniile care includ cuvântul „medie”:
tail -f geek-1.log | grep average
Pentru a urmări modificările la două sau mai multe fișiere, trece de nume de fișiere din linia de comandă:
tail -f -n 5 geek-1.log geek-2.log
Fiecare intrare este etichetat cu un antet care indică fișier text venit de la.
afișajul este actualizat de fiecare dată când o nouă intrare ajunge într-un fișier urmat. Pentru a specifica perioada de actualizare, utilizați opțiunea -s
(sleep period)., Acest lucru spune tail
să aștepte un număr de secunde, cinci în acest exemplu, între verificările fișierelor.
tail -f -s 5 geek-1.log
desigur, nu vă puteți da seama uitându-vă la o captură de ecran, dar actualizările fișierului se întâmplă o dată la două secunde. Noile intrări de fișiere sunt afișate în fereastra terminalului o dată la cinci secunde.
când urmați adăugările de text la mai multe fișiere, puteți suprima anteturile care indică fișierul jurnal din care provine textul., Utilizați -q
(liniștit) opțiunea de a face acest lucru:
tail -f -q geek-1.log geek-2.log
ieșire de fișiere este afișat într-un amestec fără sudură de text. Nu există nicio indicație din care fișier jurnal a venit fiecare intrare.
coada Are Încă Valoare
Deși accesul la sistemul de fișiere jurnal este acum prevăzută de journalctl
, tail
are încă multe de oferit. Acest lucru este valabil mai ales atunci când este utilizat împreună cu alte comenzi, prin conducte în sau din tail
.,
systemd
s-au mai schimbat peisajul, dar există încă un loc pentru tradiționale de utilități, care sunt conforme cu filosofia Unix de a face un lucru și o face bine.Dave McKay Dave McKay a folosit pentru prima dată calculatoarele când banda de hârtie perforată era în vogă și de atunci programează. După peste 30 de ani în industria IT, acum este jurnalist tehnologic cu normă întreagă., În timpul carierei sale, a lucrat ca programator independent, manager al unei echipe internaționale de dezvoltare de software, manager de proiect pentru servicii IT și, cel mai recent, ca responsabil cu protecția datelor. Dave este un evanghelist Linux și avocat open source.Citeste tot Bio ”