The cat command in Linux is our primary tool for viewing the contents of text files on Linux systems. When using or administrating a Linux system, you are usually confronted with a command line. There are no graphical aids such as mouse or windows to help you navigate through directories or edit files.
All Linux systems consist of many different configuration files. By editing or creating these files, an administrator is changing the behaviour of various services available within the system. Another situation where you can encounter text files are log files. Log files are produced by services running on the system. Information stored in the log file is there for the administrator to help troubleshoot and optimize running services.
Whether we are talking about Linux log files or configuration files, they are all simple ASCII text files. Therefore, the skills to be able to read the content of such text files is imperative. In this guide, you’ll see how to use the cat command through examples to view text files on Linux. We’ll also go over some of its most frequently used options so you’ll be armed with all the knowledge necessary to use this command effectively.
In this tutorial you will learn:
- How to use the cat command on Linux
|Requirements, Conventions or Software Version Used
|Any Linux distro
|Privileged access to your Linux system as root or via the
|# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
Frequently Used Options
The cat command works by concatenating files and printing their contents to standard output. Check some of the example commands below to see how it works.
Cat command in Linux Basic Examples
- Normally, you won’t specify any extra options with the cat command. All you need to do is specify the name of the file you wish to view, and the contents will be printed to your terminal.
$ cat file.txt
- If you have more than one file you want to view, you can specify multiple file names in your command. Their contents will be concatenated and sent to your screen (standard output).
$ cat file1.txt file2.txt
- Concatenation can also extend its usage with redirection. Suppose, that we want to create a new file
file3which will contain the content of both files,
file2. In this situation, we use the cat command to concatenate content of both files and then use the
>operator to redirect standard output to a file called
$ cat file1 file2 > file3
After execution of this command, no output is presented on the screen. This is perfectly normal considering that we have used the
>operator to redirect the output from the cat command to yet another file called
file3. When we now try to read the content of
catcommand the output produced should contain the combined content of
$ cat file3 This is content from file1 This is content from file2
Please note that it is not important to create a
file3prior to redirecting an output into it. If the file3 would exist it will be overwritten and if the file does not exist it will be created.
- One of the useful options with cat is
-n, which will create line numbers in the output.
$ cat -n file3 1 This is content from file1 2 This is content from file2
- And another useful option is
-s, which will suppress output of repeated empty lines. Empty lines are usually not very useful in your output, so this can make things much more concise.
$ cat file Start of file End of file
And now the same file but with
$ cat -s file Start of file End of file
The cat command doesn’t really get very advanced. It’s really a pretty simple command, as you saw in the above examples. However, as with any command in Linux, you can chain it with other commands and pipes to create some additional complexity. cat can also be used to create new files. This is also not very advanced, but it’s at least uncommon and probably the most advanced usage of cat that you would need to know.
Cat command in Linux Advanced Examples
- Another approach where the concatenated output from a cat command can be used is with a combination of
|(pipe) operator. Pipe operator can be used to redirect output of one command as an input to other commands. In the next example, we are going to use a
sortcommand which will alphabetically sort any data.
$ cat file1 file2 | sort
- When the cat command does not contain any arguments, it waits for an input from your keyboard. If you try to run the cat command lacking any arguments, cat will wait for your input from the keyboard until it receives an end-of-file ( EOF ) signal produced by
CTRL+Dkey combination. When entering some input from a keyboard, cat command will simply repeat any input and display it on the screen.
$ cat keyboard input keyboard input
- This keyboard input can be redirected directly into a file with the
>operator. The following example illustrates this idea:
$ cat > file Some example text $ cat file Some example text
After entering the “Some example text” line,
ENTERkey was pressed to produce a new line character, followed by
CTRL+D, which produces an end-of-file signal. Reading the content of
filewith the cat command confirms that the input from the keyboard was undeniably redirected into the file.
- As it was already mentioned above, a
>operator will overwrite a content of a file. To append a new line, a
>>append operator needs to be used instead. Consider the following example:
$ cat file Some example text $ cat >> file Some more example text $ cat file Some example text Some more example text
The procedure of inserting a new line with
>>append operator is exactly the same is it was in the previous example. The only distinction is that
>>will add a new line after the existing EOF character.
In this guide, we saw how to use the cat command in Linux. This included frequently used options as well as advanced usage. cat is an essential command to master on Linux because it allows us to view all kinds of text files, but it’s also one of the simplest commands you’ll come across. After reading this guide, you should have all the knowledge of this command that you’ll ever need.