The Linux tail command is a super powerful tool for all Linux users. So whether you are monitoring a real-time log, debugging applications, or viewing the last few lines of a file, tail offers you a quick and smart way to access the end of a text based file. It is quite popular among the system administrators and developers who depend on log files for insights into the system performance and application behavior.
In this guide, we will go through the basics to advanced use cases of the Linux tail command, which will help you become more efficient at managing and troubleshooting the Linux systems.
Basic Syntax of tail
The basic syntax of the Linux tail command is:
tail [options] [file_name]
- file_name: The path to the file you want to view.
- options: Optional flags that modify the behavior of the command (e.g., number of lines, follow output, etc.).
For an example:
tail /var/log/syslog
Get exclusive access to all things tech-savvy, and be the first to receive
the latest updates directly in your inbox.
This will display the last 10 lines of the /var/log/syslog file by default.
Common Use Cases for tail
Some of the most common uses cases for the Linux tail command are:
- Viewing the latest log entries from the system or application logs
- Monitoring the log files to debug services
- Checking for error messages at the end of a large text file
- Watching the continuous output form background processes
Displaying the Last N Lines of a File
To view a specific number of lines at the end of a file, use the -n flag in this manner:
tail -n 20 filename.log
This will display the last 20 lines of filename.log. The number 20 is used as a variable here, so you can replace it with any number depending on how many lines you need to review.
Related Article: How to Use the mv Command in Linux: Syntax, Options, and Examples
Real-Time Log Monitoring with tail -f
The -f flag allows you to follow a file as it grows, updating the output in real time. This is immensely useful for monitoring logs during live debugging.
tail -f /var/log/nginx/access.log
As new entries are added to the log file, they will be instantly disabled in your terminal. You can press CTRL+C to stop following the file.
Using tail with Multiple Files
You can monitor or view the end of multiple files together using the Linux tail command.

tail file1.log file2.log
This displays the last 10 lines of all files along with the headers showing the right file names. It is useful when comparing the logs from different services or instances.
To follow multiple different logs in real-time, use the command:
tail -f file1.log file2.log
Each file’s updates will appear as new content will be added.
Combining tail with grep for Pattern Search
To extract only a few specific lines that match a pattern, use the Linux tail command with grep. For example:
tail -n 100 /var/log/syslog | grep “error”
This will show only the lines that have the word “error” from the last 100 lines of the syslog.
You can also follow logs in real-time and filter them:
tail -f /var/log/syslog | grep “nginx”
It is great for monitoring the events or errors for a specific service.
Differences Between tail, less, and head
The Linux tail, less, and the head commands are all used for reviewing or viewing the file content, but they all provide different purposes:
- The Linux tail command shows the end of a file, usually the 10 lines by default. It is commonly used to monitor log files and check out the most recent output. With the help of -f flag, it will display the most recent content added to the file in real time.
- The Linux head command is the complete opposite of tail, as the name suggests, it displays the first 10 lines of the file. It is quite useful when you need to review the structure or the headers of a file.
- The Linux less command is more of a pager that allows you to scroll through the entire contents of a file, both forward and backward. It is more interactive than both tail or head, which makes it ideal for reviewing long files.
To summarise, use tail for the latest updates, head for an overview, and less for full-file navigation.
Advanced Options and Flags
Some of the most powerful flags for the Linux tail command includes:
- -n N: Show the last N lines (e.g., -n 50)
- -f: Follow a file in real-time
- -F: Like -f, but handles file rotation (e.g., when logs are reloaded)
- –pid=PID: Stops following when the process with PID ends
For example:
tail -n 100 -f /var/log/syslog
This shows the last 100 lines and follows the file as it updates.
Practical Examples of tail in System Administration
System administrators use the Linux tail command regularly for log monitoring and debugging. Here are a few common examples:
- Monitor Apache Logs in Real Time
tail -f /var/log/apache2/access.log
- Track SSH Login Attempts
tail -f /var/log/auth.log | grep sshd
- Watch Syslog for Kernel Events
tail -f /var/log/syslog | grep kernel
- Check Last 50 Lines of a Crash Report
tail -n 50 /var/log/myapp/crash.log
- Follow Logs Across Multiple Files
tail -f /var/log/nginx/access.log /var/log/nginx/error.log
These use cases help sysadmins troubleshoot issues faster and ensure smooth operations.
Troubleshooting Tips For Linux tail Command
Issue | Cause | Solution |
tail: file not found | Incorrect file path or file doesn’t exist | Double-check the path and file name |
Output doesn’t update with -f | File is not being written to | Make sure the app/service is running and logging |
Lines are cut off or unreadable | Log file has unusual formatting or encoding | Use less or cat -v for better readability |
Tail stops following the file after log rotation | Log file was rotated or replaced | Use tail -F instead of -f to handle rotation |
Permission denied | Insufficient access rights to the file | Use sudo or change file permissions if appropriate |
Conclusion
The Linux tail command is an essential powerhouse to swipe through files. It provides quick insights into the recent logs and helps you with real-time monitoring, along with rapid debugging.
FAQs
How do I continuously monitor a log file using tail
?
Use tail -f filename
to follow a file in real-time. It updates the terminal as new lines are added to the file.
Can I use tail
with multiple files at once?
Yes, you can specify multiple file names like tail -f file1.log file2.log
to view them simultaneously.
Is it possible to combine tail
with grep
?
Absolutely. You can filter tail
output using grep
, like tail -f /var/log/syslog | grep "error"
to show only lines containing “error”.