Mastering the cat Command in Linux
In the world of Linux, the cat
command is a fundamental utility that every user should understand. Short for "concatenate," cat
is used to display, combine, and create text files. Whether you're a beginner or an experienced user, mastering cat
can significantly enhance your efficiency in managing files. This guide provides an in-depth look at the cat
command, its syntax, options, and practical applications.
What is the cat
Command?
The cat
command is primarily used for reading and concatenating files. It reads data from files and outputs their contents to the terminal or another file. Its simplicity and versatility make it an indispensable tool in any Linux user's toolkit.
Basic Usage of cat
To use cat
, simply type cat
followed by the filename. For example:
cat filename
This command will display the contents of "filename" in the terminal like below:

Display Multiple Files
You can also concatenate and display multiple files:
cat file1 file2
This command combines the contents of "file1" and "file2" and displays them sequentially.
Creating Files with cat
The cat
command can be used to create new files from the terminal:
cat > filename
After executing this command, you can type the content for the new file. To save and exit, press Ctrl+D
. Let's see an example:

on the above picture there is a directory called 'test', under that directory we have created a file as `example.txt`.
Appending Data to Files
Appending content to an existing file is straightforward with cat
:
cat file1 >> file2
This appends the contents of "file1" to "file2" without overwriting the existing data. Let's see the previous example:

on the above picture, we have a file example.txt
and that contains some dummy text like "Line no 1 to 3". Now the next picture we have created a new file called `example2.txt` where nothing exists or any dummy text. But by the following command we are seeing the same dummy text as the example.txt
contains:

Advanced cat
Command Options
Numbering Lines
To add line numbers to the output, use the -n
option:
cat -n filename
This will display the contents of "filename" with each line numbered like below:

Displaying End-of-Line Characters
To make the end of each line visible, use the -E
option:
cat -E filename
This will append a $
character at the end of each line, which can be useful for identifying line endings. Let's see with our previous example.txt
file:

Showing Non-Printable Characters
To reveal non-printable characters, the -v
option is used:
cat -v filename
This displays non-printable characters in a visible format, which can be helpful for debugging.
Combining with Other Commands
cat
command becomes even more powerful when combined with other Linux commands. For instance, you can use cat
with less
or more
to page through large files:
cat filename | less
in the next picture, we enter the following command

it looks like nothing is there but the below picture shows the output of that command:

or
cat filename | more
the below picture shows the output of the following command:

This allows you to scroll through the file one page at a time, which is particularly useful for large files
Practical Applications of cat
Creating Scripts
You can use cat
to quickly create small scripts:
cat > script.sh
Type your script, then press Ctrl+D
to save. Make the script executable with:
chmod +x script.sh
Now, you can run your script with:
./script.sh
Best Practices for Using cat
While cat
is a powerful tool, it’s important to use it efficiently:
- For viewing large files, prefer using
less
ormore
to avoid flooding the terminal. - When combining files, ensure you have write permissions to avoid errors.
- Use
cat
in scripts to automate tasks, but consider alternatives likeecho
for simple text outputs to improve readability and performance.
Conclusion
The cat
command is an essential tool in Linux for managing text files. Its versatility in displaying, creating, and combining files makes it invaluable for everyday tasks. By mastering the various options and applications of cat
, you can streamline your workflow and enhance your productivity in the Linux environment.