GNU/Linux >> Tutoriels Linux >  >> Linux

Commande principale Linux avec exemples

La commande head est utilisée pour imprimer les premières lignes d'un fichier texte. Par défaut, la commande head imprime les 10 premières lignes de chaque fichier sur la sortie standard, qui est l'écran d'affichage. Il peut être utilisé avec d'autres commandes pour fournir des résultats plus spécifiques du système.

Dans un article précédent, nous avons appris à utiliser la commande tail et ses différentes options. Dans cet article, nous allons apprendre à utiliser la commande Linux head pour lire les premières lignes de n'importe quel fichier texte et ce sont les options les plus courantes.

1) Utilisation de la tête avec entrée standard

Si aucun fichier n'est spécifié, ou lorsque le fichier est spécifié comme -, la commande head lit à partir du flux d'entrée standard (stdin) plutôt qu'un fichier. Cela signifie qu'il renvoie tout ce qui a été tapé à partir de votre clavier. Dans cet exemple, je vais saisir des mots, puis head affichera ce que j'ai tapé. Après la saisie, j'appuierai sur CTRL + C pour quitter.

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

2) Affichage des 10 premières lignes d'un fichier

Spécifier un nom de fichier avec head imprime les 10 premières lignes.

$ 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) Visualiser les N premières lignes d'un fichier

Vous pouvez spécifier le nombre exact de lignes à afficher autres que les 10 premières. Vous pouvez le faire en utilisant le -n  ou --lines commutateur, puis le nombre de lignes que vous souhaitez imprimer.

$ 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) Afficher plusieurs fichiers

Si plusieurs fichiers sont donnés en argument, il affiche les 10 premières lignes et précède chacune d'un en-tête affichant le nom du fichier.

$ 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:

Si vous ne voulez pas imprimer les en-têtes, vous pouvez utiliser le -q , --quite , ou --silent commutateurs.

$ 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:

Pour toujours imprimer les en-têtes, vous pouvez laisser le nom du fichier tel quel ou utiliser le -v ou --verbose commutateur.

Pour afficher les N premières lignes de plusieurs fichiers, vous pouvez utiliser la commande ci-dessous.

$ 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

Vous pouvez utiliser le caractère générique * pour imprimer les lignes de chaque fichier dont le nom se termine par une extension spécifique.

$ 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]

# Configuration pour getaddrinfo(3).## Il s'agit de la configuration par défaut pour hdparm pour Debian. C'est un # La ligne "order" n'est utilisée que par les anciennes versions de la bibliothèque C.## Kernel Image management overrides#include /etc/ld.so.conf.d/*.confdefault_driver=pulse# Ceci est le fichier de configuration pour les paramètres réglables de libaudit.

5) Impression des N derniers octets d'un fichier

Pour imprimer les N derniers octets d'un fichier, il faut utiliser le -c ou --bytes commutateur suivi du nombre d'octets. Cela imprime les 50 premiers octets du fichier. Vous pouvez également utiliser

$ 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:

Pour afficher une autre taille autre que les octets, par exemple les kilo-octets, vous pouvez spécifier kB , MB , M , etc

$ 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:

Alternativement, vous pouvez utiliser -c +N pour sortir les octets en commençant par le Nième de chaque fichier

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

Pour supprimer les N dernières lignes et imprimer tout le reste, on utilise la commande :

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

6) Utilisation de la tête avec des tuyaux

La commande principale peut être dirigée vers ou depuis d'autres commandes. Cette commande répertorie le contenu d'un fichier journal, le dirige vers head pour afficher les 5 premières lignes avec un en-tête, puis la commande sort affiche les résultats dans l'ordre inverse.

$ 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'exemple suivant imprime une partie du fichier bootstrap.log, c'est-à-dire de la 10e à la 20e ligne. Cela signifie que le -n20  switch imprime les 20 premières lignes tandis que le -n10 switch imprime les 10 dernières des 20 premières lignes.

$ 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:

Vous devez maintenant comprendre comment la commande head et ses arguments fonctionnent pour afficher les premières lignes d'un fichier. Il fonctionne exactement à l'opposé de la queue et peut être utilisé avec d'autres commandes en utilisant également des tuyaux. Vous pouvez consulter les pages de manuel de la commande principale pour plus d'informations.

Lire aussi :

  • Linux plus de commandes expliquées avec des exemples

Linux
  1. Commande Linux wc avec exemples

  2. Commande de tri Linux avec exemples

  3. Commande Echo sous Linux (avec exemples)

  4. Commande Linux Tee avec exemples

  5. Commande JQ sous Linux avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Wait sous Linux avec des exemples

Commande d'exportation Linux avec exemples

Commande de redémarrage sous Linux avec des exemples

Commande IP Linux avec exemples