14 comenzi coadă și cap în Linux/Unix

mulți oameni știu despre comanda cat, care este utilă în afișarea întregului conținut al fișierului. Dar, în unele cazuri, trebuie să tipărim o parte din fișier. În postarea de astăzi vom vorbi despre comenzile head and tail, care sunt foarte utile atunci când doriți să vizualizați o anumită parte la începutul sau la sfârșitul unui fișier, mai ales atunci când sunteți sigur că doriți să ignorați restul conținutului fișierului.,

să începem cu comanda tail, și de a explora toate caracteristicile această comandă la îndemână poate oferi și a vedea cum să-l folosească cel mai bine pentru a se potrivi nevoilor dumneavoastră. După aceea, vom arăta câteva opțiuni pe care le puteți face și nu le puteți face cu comanda head.

sintaxa comenzii Linux coada

 coada ... ...

coada este o comandă care imprimă ultimul număr de linii (implicit 10 linii) ale unui anumit fișier, apoi se termină.
Exemplul 1: implicit, „coada” tipărește ultimele 10 linii ale unui fișier, apoi iese.,

coada /path/to/file

Exemplu :

după cum puteți vedea, acest lucru imprimă ultimele 10 linii din /var/log/messages.

Exemplul 2: acum Ce zici sunteți interesat în doar ultimele 3 linii ale unui fișier, sau poate interesat în ultimele 15 linii ale unui fișier. acest lucru este atunci când opțiunea-n vine la îndemână, pentru a alege un anumit număr de linii în loc de implicit 10.,

tail -n <number_of_lines> /path/to/file

Example :

# tail -n 4 /etc/groupvboxusers:x:491:avahi:x:70:mailnull:x:47:smmsp:x:51:

Example 3: We can even open multiple files using tail command with out need to execute multiple tail commands to view multiple files., Suppose if you want to see first two lines of a

tail -n <number of lines> <file1> <file2> <file3>

Example:

[email protected]:~/code/sh$ tail -n 2 99abc.txt startup_script.sh wifiactivate.sh ==> 99abc.,txt <==
==> startup_script.sh <==sed -i 's/^.*PermitRootLogin.*$/PermitRootLogin yes/g' /etc/ssh/sshd_configservice sshd reload
==> wifiactivate.sh <==modprobe -rv iwlwifimodprobe -v iwlwifi 11n_disable=8

Example 4: Now this might be by far the most useful and commonly used option for tail command., Spre deosebire de comportamentul implicit care urmează să se încheie după imprimarea unui anumit număr de linii, opțiunea-f „care înseamnă follow” va menține fluxul. Acesta va începe să imprime linii suplimentare pe consola adăugată la fișier după ce este deschis. Această comandă va menține fișierul deschis pentru a afișa modificările actualizate la consolă până când utilizatorul rupe comanda.,

tail-f /path/to/file

Exemplu :

după Cum puteți vedea în acest exemplu, am vrut să încep crond serviciu, apoi ma uit la /var/log/cron fișier jurnal ca serviciul începe. Am folosit ; care un fel de înlănțuire de comandă în Linux inorder pentru a executa două comenzi într-o singură linie. Nu mă interesează doar un număr de câteva linii, apoi ies, dar, în plus, mă interesează să urmăresc întregul fișier jurnal până când începe serviciul, apoi să-l rup cu CTRL+C.,

exemplul 5: aceeași comandă tail-f poate fi replicată folosind o comandă mai mică. După ce ați deschis un fișier cu mai puțin

mai puțin /calea/catre/fisier

Odată ce ați deschis fișierul, apoi apăsați shift+f

Exemplu:

pentru a gonit de acasă de la modul de actualizare în mai puțin, trebuie să apăsați ctrl+c și apoi apăsați q pentru a demisionat.,c89d637cf1″>Exemplul 6: Avem altă opțiune -s care ar trebui să fie întotdeauna utilizate cu -f” va determina somn interval, întrucât coada -f va păstra uitam de fișier, rata de reîmprospătare este fiecare 1 secundă, dacă doriți pentru a controla acest lucru, apoi, va trebui să utilizați opțiunea-s „somn” și specificați somn interval

coada -f-s <somn intervalul în secunde> /path/to/file

Exemplu :

Exemplul 7: așa Cum am văzut în exemplul 3, putem deschide mai multe fișiere folosind coada de comandă., Chiar putem vizualiza fișierele 2 în același timp în creștere folosind și opțiunea-F. Se va imprima, de asemenea, un antet de vizualizare care fișier arată această ieșire. linia de titlu va fi început cu „==>”

coada /path/to/file1 /path/to/file2

Exemplu:

Exemplul 8: Dacă doriți să eliminați acest antet, folosiți -q opțiune pentru modul discret.,

Exemplu :

Exemplul 9: Acum, dacă am avea o foarte mare /var/log/messages si eu sunt interesat doar în ultimul anumit număr de octeți de date, opțiunea-c pot face acest lucru cu ușurință., urmăriți exemplul de mai jos unde vreau pentru a vizualiza doar ultimii 500 de octeți de date din /var/log/messages

coada -c <numărul de octeți> /path/to/file

Exemplu :

Acum, când ne-au vorbit o vreme despre coada, vă permite să vorbesc despre „capul” de comandă.

comanda Head va evident, dimpotrivă, coada, se va imprima primele 10 linii ale fișierului., Până la această parte a postului, comanda head va face cam la fel ca tail în toate exemplele anterioare, cu excepția opțiunii-f, nu există opțiunea-f în cap, ceea ce este foarte natural, deoarece fișierele vor crește întotdeauna de jos.

sintaxa de comandă a capului în Linux

 cap ... ...

exemplul 10: ca mai devreme de imprimare primele 10 linii.

exemplul 11: imprimați primele două linii ale unui fișier.,

# cap-n 2 /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin

Exemplu 12: această opțiune vă permite să imprimați toate liniile începând de la o linie de numărul pe care îl specificați, spre deosebire de Exemplu de 11 care va arăta mai întâi numărul de linii-ați furnizat.,

cap-n <numărul de linii precedat cu "-"> /path/to/file

Exemplu :

după Cum puteți observa, în acest exemplu, s-a imprimat toate liniile începând de după linia 27.

Combina capul și coada de comandă în Linux

Exemplu 13: Cât coada și capul comenzi de imprimare diferite părți de fișiere într-un mod eficient, putem combina aceste două pentru a imprima unele avansate de filtrare de conținut de fișiere., Pentru a imprima linia 15th la linia 20th în fișierul / etc / passwd utilizați exemplul de mai jos.

cap-n 20 /etc/passwd | coada -n 5

Rezultat:

Exemplu 14: Mulți oameni nu sugerează metoda de mai sus pentru a imprima de la o linie la alta linie. Exemplul de mai sus este de a arăta cum putem combina aceste lucruri. Dacă doriți cu adevărat să imprimați o anumită linie, utilizați comanda sed așa cum se arată mai jos.

Exemplu:

$ sed -n '5p' /etc/passwdsync:x:4:65534:sincronizare:/bin:/bin/sincronizare

Author: admin

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *