Linux中的 Cat 命令
cat
命令是Linux中最广泛使用的命令之一。cat
命令的名字来自于它对文件进行concatenate的功能。它可以读取、串联和写入文件内容到标准输出。如果没有指定文件或输入文件名被指定为一个连字符(-
),它就从标准输入中读取。
cat
最常用于显示一个或多个文本文件的内容,通过将一个文件的内容附加到另一个文件的末尾来合并文件,以及创建新的文件。
在这篇文章中,我们将通过实际的例子来告诉你如何使用cat
命令。
cat
命令的句法
在讨论如何使用cat
命令之前,让我们先回顾一下基本的语法。
cat 的实用性表达方式有以下形式。
cat [OPTIONS] [FILE_NAMES]
OPTIONS
-cat
选项 。使用cat --help
来查看所有可用的选项。FILE_NAMES
- 零个或更多的文件名。
显示文件的内容
cat
命令的最基本和最常见的用法是读取文件的内容。
例如,下面的命令将在终端上显示/etc/issue
文件的内容。
cat /etc/issue
重定向文件的内容
与其将输出显示在stdout
(屏幕上),你可以将其重定向到一个文件。
下面的命令将使用(>
)操作符将file1.txt
的内容复制到file2.txt
中。
cat file1.txt > file2.txt
通常你会使用
cp
命令来复制一个文件。
如果file2.txt
文件不存在,该命令将创建它。否则,它将覆盖该文件。
使用(>>
)运算符来将file1.txt
的内容附加到file2.txt
上。
cat file1.txt >> file2.txt
和以前一样,如果文件不存在,就会被创建。
打印行号
要显示带有行号的文件内容,请调用带有-n
选项的cat
。
cat -n /etc/lsb-release
输出
1 DISTRIB_ID=Ubuntu
2 DISTRIB_RELEASE=18.04
3 DISTRIB_CODENAME=bionic
4 DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
不显示重复的空行
使用-s
选项,可以省略重复的空输出行。
cat -s file.txt
显示TAB
字符
-T
选项允许你在视觉上区分制表符和空格。
cat -T /etc/hosts
输出
127.0.0.1^Ilocalhost
127.0.1.1^Iubuntu1804.localdomain
TAB字符将被显示为^I
。
显示行的末尾
要显示不可见的行结束符,请使用-e
参数。
cat -e /etc/lsb-release
输出
DISTRIB_ID=Ubuntu$
DISTRIB_RELEASE=18.04$
DISTRIB_CODENAME=bionic$
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"$
换行符将显示为$
。
串联文件
当把两个或多个文件名作为参数传给cat
命令时,文件的内容将被串联起来。cat
按其参数中给出的顺序读取文件,并按相同的顺序显示文件的内容。
例如,下面的命令将读取file1.txt
和file2.txt
的内容,并将结果显示在终端。
cat file1.txt file2.txt
你可以把两个或更多的文本文件串联起来,并把它们写入一个文件中。
下面的命令将连接file1.txt
和file2.txt
的内容,并使用(>
)操作符将它们写到一个新的文件combinedfile.txt
中。
cat file1.txt file2.txt > combinedfile.txt
如果combinedfile.txt
文件不存在,该命令将创建它。否则,它将覆盖该文件。
要将file1.txt
和file2.txt
的内容连接起来,并将结果附加到file3.txt
上,要使用(>>
)运算符。
cat file1.txt file2.txt >> file3.txt
如果该文件不存在,它将被创建。
当用cat
连接文件时,你可以使用与上一节中所示相同的参数。
创建文件
用cat
创建小文件往往比打开文本编辑器(如nano、Vim、Sublime Text或Visual Studio Code)更容易。
要创建一个新的文件,使用cat
命令,然后是重定向操作符(>
)和你要创建的文件的名称。按Enter
,输入文字,完成后按CRTL+D
保存文件。
在下面的例子中,我们正在创建一个名为file1.txt
的新的文件。
cat > file1.txt
如果有一个名为file1.txt
的文件存在,它将被覆盖。使用'>>
'操作符将输出附加到一个现有的文件中。
cat >> file1.txt
总结
cat
命令可以显示、合并和创建新文件。
如果你有任何问题或反馈意见,请随时留言。