Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令。我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的方式讲解Linux中cat命令一些简便的用法。
The cat (short for “concatenate“) command is one of the most frequently used command in Linux/Unix like operating systems. cat command allows us to create single or multiple files, view contain of file, concatenate files and redirect output in terminal or files. In this article, we are going to find out handy use of cat commands with their examples in Linux.
Read Also: Learn How to use ‘cat’ and ‘tac’ (Reverse of cat Command) in Linux
General Syntax
cat [OPTION] [FILE]...
1. Display Contents of File(显示文件内容)
In the below example, it will show contents of /etc/passwd file.
下面这个例子,显示出/etc/passwd文件的内容。
# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin narad:x:500:500::/home/narad:/bin/bash
2. View Contents of Multiple Files in terminal(在设备中显示多个文件内容)
In below example, it will display contents of test and test1 file in terminal.
下面这个例子,在设备中显示出test文件和test1文件内容
# cat test test1 Hello everybody Hi world,
3. Create a File with Cat Command(使用Cat命令创建文件)
We will create a file called test2 file with below command.
我们将通过如下命令格式创建test2文件
# cat >test2
Awaits input from user, type desired text and press CTRL+D (hold down Ctrl Key and type ‘d‘) to exit. The text will be written in test2 file. You can see content of file with following cat command.
输入上面的命令后点击回车按钮,等待用户输入文件内容,同时按住CTRL+D退出编辑。通过下面的命令查看文件内容。
# cat test2 hello everyone, how do you do?
4. Use Cat Command with More & Less Options(使用带有More和Less参数的Cat命令)
If file having large number of content that won’t fit in output terminal and screen scrolls up very fast, we can use parameters more and less with cat command as show above.
如果文件有大量内容,设备输出不够清晰或则屏幕滚动条滚动过快,我们可以通过使用More和Less参数使内容展示更加可控。
# cat song.txt | more # cat song.txt | less
5. Display Line Numbers in File(文件内显示内容行号)
With -n option you could see the line numbers of a file song.txt in the output terminal.
通过 -n 参数可以使song.txt文件的内容在设备中带行号显示
# cat -n song.txt 1 "Heal The World" 2 There‘s A Place In 3 Your Heart 4 And I Know That It Is Love 5 And This Place Could 6 Be Much 7 Brighter Than Tomorrow 8 And If You Really Try 9 You‘ll Find There‘s No Need 10 To Cry 11 In This Place You‘ll Feel 12 There‘s No Hurt Or Sorrow
6. Display $ at the End of File(在文件末尾显示$符号)
In the below, you can see with -e option that ‘$‘ is shows at the end of line and also in space showing ‘$‘ if there is any gap between paragraphs. This options is useful to squeeze multiple lines in a single line.
如下,使用-e参数,在文件内容的末尾和空格处会出现$符号。这个选项对于一行中挤压多行很有帮助。
# cat -e test hello everyone, how do you do?$ $ Hey, am fine.$ How‘s your training going on?$ $
7. Display Tab separated Lines in File(文件内容中显示Tab分隔符)
In the below output, we could see TAB space is filled up with ‘^I‘ character.
如下输出内容中,我们可以看到Tab分隔的内容使用 ‘^I‘ 填充。
# cat -T test hello ^Ieveryone, how do you do? Hey, ^Iam fine. ^I^IHow‘s your training ^Igoing on? Let‘s do ^Isome practice in Linux.
8. Display Multiple Files at Once(一次性显示多个文件内容)
In the below example we have three files test, test1 and test2 and able to view the contents of those file as shown above. We need to separate each file with ; (semi colon).
这个例子中,我们可以同时查看test, test1, test2三个文件的内容,三个文件之间使用 ;(分号)隔开。
# cat test; cat test1; cat test2 This is test file This is test1 file. This is test2 file.
9. Use Standard Output with Redirection Operator(使用重定向操作符作为标准输出)
We can redirect standard output of a file into a new file else existing file with ‘>‘ (greater than) symbol. Careful, existing contents of test1 will be overwritten by contents of test file.
我们可以使用大于号>将文件内容复制到新的文件或已存在的文件中,注意:复制到已存在的文件时会覆盖已有内容。
# cat test > test1
10. Appending Standard Output with Redirection Operator(使用重定向操作符将追加内容)
Appends in existing file with ‘>>‘ (double greater than) symbol. Here, contents of test file will be appended at the end of test1 file.
使用两个大于号>>将新的内容追加到已有内容的末尾。
# cat test >> test1
11. Redirecting Standard Input with Redirection Operator(使用重定向操作符将内容输出)
When you use the redirect with standard input ‘<‘ (less than symbol), it use file name test2 as a input for a command and output will be shown in a terminal.
我们可以使用小于号<,将test2文件的内容显示到设备中。
# cat < test2 This is test2 file.
12. Redirecting Multiple Files Contain in a Single File(将多个文件内容合并到一个文件中)
This will create a file called test3 and all output will be redirected in a newly created file.
将test, test1, test2的内容合并到test3文件中
# cat test test1 test2 > test3
13. Sorting Contents of Multiple Files in a Single File(将多个文件的内容合并到一个文件中并排序)
This will create a file test4 and output of cat command is piped to sort and result will be redirected in a newly created file.
# cat test test3 test2 test1 | sort > test4
例如: test文件内容是:this is test file content.
test3文件内容: this is test3 file content.
test2文件内容: this is test2 file content.
test1文件内容:this is test1 file content.
最后输出的test4文件内容:
this is test1 file content.
this is test2 file content.
this is test3 file content.
this is test file content.