2024-05-23
head CommandThe head command displays the beginning of a file, showing the first 10 lines by default. This is useful for quickly inspecting a file’s contents without loading the entire file into memory, especially for large files. It’s a fundamental command for any Linux user, from beginners to seasoned system administrators.
The simplest use case involves specifying the file name:
head myfile.txtThis command displays the first 10 lines of myfile.txt. If myfile.txt doesn’t exist, you’ll receive an error message.
Let’s create a sample file for demonstration:
echo "Line 1" > myfile.txt
echo "Line 2" >> myfile.txt
echo "Line 3" >> myfile.txt
echo "Line 4" >> myfile.txt
echo "Line 5" >> myfile.txt
echo "Line 6" >> myfile.txt
echo "Line 7" >> myfile.txt
echo "Line 8" >> myfile.txt
echo "Line 9" >> myfile.txt
echo "Line 10" >> myfile.txt
echo "Line 11" >> myfile.txt
echo "Line 12" >> myfile.txtNow, running head myfile.txt will output:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
You can control the number of lines displayed using the -n option (or --lines). For example, to display only the first 5 lines:
head -n 5 myfile.txtThis will output:
Line 1
Line 2
Line 3
Line 4
Line 5
You can also use a negative number to display lines from the end of the file. For example head -n -5 myfile.txt will show the last five lines. Note that this behavior might differ slightly between different versions of head.
The head command can handle multiple files simultaneously. If you provide multiple file names, the output will be prefixed with the filename for each:
head myfile.txt anotherfile.txtThis will display the first 10 lines of myfile.txt, followed by the first 10 lines of anotherfile.txt, each section labeled with the filename.
The power of head is amplified when combined with other commands using pipes (|). For example, to view the first 5 lines of the output of a grep command:
grep "Line" myfile.txt | head -n 5This will find all lines containing “Line” in myfile.txt and then display only the first 5 matches.
The -c option (or --bytes) allows you to specify the number of bytes to display instead of lines:
head -c 20 myfile.txtThis displays the first 20 bytes of myfile.txt. This is particularly useful for binary files where line breaks aren’t meaningful.
head with Standard Inputhead can also read from standard input, which is particularly useful when combined with other commands.
ls -l | head -n 5This will list all files and directories, and then display only the first five lines of the output.