Read in 3 minutes

last updated 

Linux Head Command

The head command prints the first lines (10 lines by default) of one or more files or piped data to standard output.

In this tutorial, we will explain how to use the Linux head utility through practical examples and detailed explanations of the most common head options.

Head Command Syntax

The syntax for the head command is as follows:

head [OPTION]... [FILE]...
  • OPTION - head options. We will go over the most common options in the next sections.
  • FILE - Zero or more input file names. If no FILE is specified, or when FILE is -, head will read the standard input.

How to Use the Head Command

In its simplest form when used without any option, the head command will display the first 10 lines.

head filename.txt

How to Display a Specific Number of Lines

Use the -n (--lines) option followed by an integer specifying the number of lines to be shown:

head -n <NUMBER> filename.txt

You can omit the letter n and use just the hyphen (-) and the number (with no space between them).

To display the first 30 lines of a file named filename.txt you would type:

head -n 30 filename.txt

The following will produce the same result as the above commands:

head -30 filename.txt

How to Display a Specific Number of Bytes

The -c (--bytes) option allows to print a specific number of bytes:

head -c <NUMBER> filename.txt

For example to display the first 100 bytes of data from the file named filename.txt you would type:

head -c 100 filename.txt

You can also use a multiplier suffix after the number to specify the number of bytes to be shown. b multiplies it by 512, kB multiplies it by 1000, K multiplies it by 1024, MB multiplies it by 1000000, M multiplies it by 1048576, and so on.

The following command will display the first five kilobytes (2048) of the file filename.txt:

head -c 5k filename.txt

How to Display Multiple Files

If multiple files are provided as input to the head command, it will display the first ten lines from each provided file.

head filename1.txt filename2.txt

You can use the same options as when displaying a single file.

This example shows the first 20 lines of the files filename1.txt and filename2.txt:

head -n 20 filename1.txt filename2.txt

When more than one file is used, the output precede each with a header showing the file name.

How to Use Head with Other Commands

The head command can be used in combination with other commands by redirecting the standard output from/to other utilities using pipes.

The following command will hash the $RANDOM environment variable, display the first 32 bytes and display 24 characters random string:

echo $RANDOM | sha512sum | head -c 24 ; echo


By now you should have a good understanding of how to use the Linux head command. It is complementary to the tail command which prints the last lines of a file to the to the terminal.