GNU/Linux >> Linux Esercitazione >  >> Linux

Comando testa di Linux con esempi

Il comando head viene utilizzato per stampare le prime righe di un file di testo. Per impostazione predefinita, il comando head stampa le prime 10 righe di ogni file sull'output standard, che è lo schermo di visualizzazione. Può essere utilizzato con altri comandi per fornire risultati più specifici e dal sistema.

In un articolo precedente, abbiamo imparato come usare il comando tail e le sue diverse opzioni. In questo articolo impareremo come usare il comando head di Linux per leggere le prime righe di qualsiasi file di testo e sono le opzioni più comuni.

1) Utilizzo della testa con input standard

Se non viene specificato alcun file o quando il file è specificato come -, il comando head legge dal flusso di input standard (stdin) anziché da un file. Ciò significa che respinge tutto ciò che è stato digitato dalla tastiera. In questo esempio, inserirò le parole e poi head visualizzerà ciò che ho digitato. Dopo aver inserito, premo CTRL + C per uscire.

$ head -
this
this
is
is
an
an
example
example
of
of
head
head
with no file specified 
with no file specified

2) Visualizzazione delle prime 10 righe di un file

Specificando un nome file con head si stampano le prime 10 righe.

$ head /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command

3) Visualizzazione delle prime N righe di un file

Puoi specificare il numero esatto di righe da visualizzare oltre alle prime 10. Puoi farlo usando il -n  o --lines interruttore e quindi il numero di righe che desideri stampare.

$ head -n11 /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly

4) Visualizzazione di più file

Se vengono forniti più file come argomento, vengono visualizzate le prime 10 righe e ciascuna precede con un'intestazione che mostra il nome del file.

$ head /etc/crontab /etc/group
==> /etc/crontab <==
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command

==> /etc/group <==
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,eyramm
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:

Se non vuoi stampare le intestazioni, puoi usare -q , --quite o --silent interruttori.

$ head --silent /etc/crontab /etc/group
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,eyramm
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:

Per stampare sempre le intestazioni, puoi lasciare il nome del file così com'è o usare il -v o --verbose interruttore.

Per visualizzare le prime N righe di più file puoi usare il comando seguente.

$ head -3 /etc/group /etc/fuse.conf /etc/passwd
==> /etc/group <==
root:x:0:
daemon:x:1:
bin:x:2:

==> /etc/fuse.conf <==
# /etc/fuse.conf - Configuration file for Filesystem in Userspace (FUSE)

# Set the maximum number of FUSE mounts allowed to non-root users.

==> /etc/passwd <==
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

Puoi utilizzare il carattere jolly * per stampare le righe di ogni file il cui nome termina con un'estensione specifica.

$ head -1 -q /etc/*.conf
# /etc/adduser.conf: `adduser' configuration.
# this file sets defaults for apg if apg is called without parameters
#
# Documents/brltty.conf. Generated from brltty.conf.in by configure.
# This file lists certificates that you wish to use or to ignore to be
# This is the main config file for debconf. It tells debconf where to
# /etc/deluser.conf: `deluser' configuration.
# /etc/fuse.conf - Configuration file for Filesystem in Userspace (FUSE)

[fwupd]

# Configurazione per getaddrinfo(3).## Questa è la configurazione predefinita per hdparm per Debian. È una # La riga "order" è usata solo dalle vecchie versioni della libreria C.## La gestione dell'immagine del kernel ha la precedenza#include /etc/ld.so.conf.d/*.confdefault_driver=pulse# Questo è il file di configurazione per accordabili libaudit.

5) Stampa degli ultimi N byte di un file

Per stampare gli ultimi N byte di un file, dovresti usare -c o --bytes switch seguito dal numero di byte. Questo stampa i primi 50 byte del file. Puoi anche usare

$ head -c 70 /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,eyramm
tty:x:5:

Per visualizzare un'altra dimensione diversa dai byte, ad esempio Kilobyte, puoi specificare kB , MB , M , ecc

$ head -c 2kB /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,eyramm
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:

In alternativa, puoi usare -c +N per generare byte che iniziano con l'ennesimo di ogni file

$ head -c +50 /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:sy

Per rimuovere le ultime N righe e stampare tutto il resto, utilizziamo il comando:

$ head -n -20 /var/log/syslog

6) Utilizzo della testina con tubi

Il comando head può essere indirizzato ao da altri comandi. Questo comando elenca il contenuto di un file di registro, lo reindirizza a head per visualizzare le prime 5 righe con un'intestazione e quindi il comando di ordinamento visualizza i risultati in ordine inverso.

$ cat /var/log/dpkg.log | head -n 5 -v | sort -r
==> standard input <==
2017-02-15 20:18:59 status unpacked base-passwd:amd64 3.5.39
2017-02-15 20:18:59 status unpacked base-passwd:amd64 3.5.39
2017-02-15 20:18:59 status half-installed base-passwd:amd64 3.5.39
2017-02-15 20:18:59 startup archives install
2017-02-15 20:18:59 install base-passwd:amd64 <none> 3.5.39

L'esempio seguente stampa una parte del file bootstrap.log, ovvero dalla decima riga alla ventesima riga. Ciò significa il -n20  switch stampa le prime 20 righe mentre -n10 switch stampa le ultime 10 delle 20 righe iniziali.

$ head -n20 /var/log/bootstrap.log | tail -n 10
 dpkg: warning: parsing file '/var/lib/dpkg/status' near line 4 package 'dpkg':
 missing maintainer
 dpkg: warning: parsing file '/var/lib/dpkg/status' near line 4 package 'dpkg':
 missing architecture
 Selecting previously unselected package base-passwd.
 (Reading database ... 0 files and directories currently installed.)
 Preparing to unpack .../base-passwd_3.5.39_amd64.deb ...
 Unpacking base-passwd (3.5.39) ...
 dpkg: base-passwd: dependency problems, but configuring anyway as you requested:
 base-passwd depends on libc6 (>= 2.8); however:

Ora dovresti capire come funzionano il comando head e i suoi argomenti nella visualizzazione delle prime righe di un file. Funziona esattamente in modo opposto a tail e può essere utilizzato anche con altri comandi utilizzando pipe. Puoi fare riferimento alle pagine man dei comandi head per ulteriori informazioni.

Leggi anche:

  • Linux more Command spiegato con esempi

Linux
  1. Comando wc Linux con esempi

  2. Comando di ordinamento Linux con esempi

  3. Comando Echo in Linux (con esempi)

  4. Comando Tee Linux con esempi

  5. Comando JQ in Linux con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Attendi comando in Linux con esempi

Comando di esportazione Linux con esempi

Riavvia il comando in Linux con esempi

Comando IP Linux con esempi