What if you could instantly see just the part of a huge file you really need, without waiting or scrolling?
Why head and tail in Linux CLI? - Purpose & Use Cases
Imagine you have a huge log file from a server, and you want to quickly see the first few lines to check the start of the log or the last few lines to see recent events.
Opening the entire file in a text editor or scrolling through thousands of lines manually is frustrating and slow.
Manually opening large files can freeze your editor or take a long time to load.
Scrolling to the end to find recent entries wastes time and can cause mistakes if you miss important lines.
Copying and pasting parts of the file is error-prone and inefficient.
The head and tail commands let you instantly see just the first or last few lines of any file.
This saves time, avoids loading the whole file, and helps you focus on the important parts quickly.
open bigfile.log and scroll to top or bottom
head -n 10 bigfile.log tail -n 10 bigfile.log
You can instantly peek into any file's start or end, making troubleshooting and data checks fast and easy.
System admins often use tail -f to watch live updates in log files, catching errors as they happen without opening huge files.
Quickly view the start or end of files without loading everything.
Save time and avoid errors from manual scrolling.
Monitor live logs easily with simple commands.
Practice
head command do by default when run on a text file?Solution
Step 1: Understand the default behavior of
Theheadheadcommand shows the start of a file, by default 10 lines.Step 2: Compare with other options
tailshows the end, butheadshows the beginning lines.Final Answer:
Shows the first 10 lines of the file -> Option DQuick Check:
head= first 10 lines [OK]
- Confusing head with tail
- Thinking head deletes lines
- Assuming head counts lines
log.txt?Solution
Step 1: Identify the command to show last lines
tailshows the end of a file, so it is used to show last lines.Step 2: Use correct syntax with
The option-noption-n 5specifies to show 5 lines. Sotail -n 5 log.txtis correct.Final Answer:
tail -n 5 log.txt -> Option AQuick Check:
tail -n 5shows last 5 lines [OK]
- Using head instead of tail
- Omitting -n option
- Using tail without -n for line count
data.txt with 20 lines, what will be the output of head -n 3 data.txt | tail -n 2?Solution
Step 1: Understand
This command outputs the first 3 lines: lines 1, 2, and 3.head -n 3 data.txtStep 2: Apply
tail -n 2on the outputtail -n 2takes the last 2 lines of the previous output, so lines 2 and 3.Final Answer:
Lines 2 and 3 of data.txt -> Option AQuick Check:
head 3 then tail 2 = lines 2 & 3 [OK]
- Assuming tail works on whole file, not head output
- Confusing line numbers
- Thinking tail -n 2 shows first 2 lines
head -n 5 file.txt but get an error: head: invalid option -- 'n'. What is the likely cause?Solution
Step 1: Analyze the error message
The error saysinvalid option -- 'n', meaning-nis not recognized.Step 2: Understand command version differences
Some older or non-GNU versions ofheaddo not support-nand require different syntax.Final Answer:
Theheadcommand version does not support-n-> Option BQuick Check:
Invalid option error means unsupported flag [OK]
- Assuming file missing causes option error
- Trying to run as root unnecessarily
- Using wrong syntax without checking version
app.log in real-time but only want to see the newest lines as they appear. Which command combination is best?Solution
Step 1: Understand the need to see last lines and follow updates
You want the last 15 lines and to watch new lines as they are added.Step 2: Use
tailwith-n 15and-ftail -n 15 -f app.logshows last 15 lines and follows file changes live.Final Answer:
tail -n 15 -f app.log -> Option CQuick Check:
tail -n 15 -f = last 15 lines + live updates [OK]
- Using head which shows start, not end
- Omitting -f to follow updates
- Using head -f which is invalid
Ready to prove it?
Pass the test and this pattern moves unknown
