cat
命令是Linux中常见命令之一,cat
命令的名称来自于concatenate。它可以载入和连接文件,并将其内容载入到标准导出。
倘若未找到文件名或特殊连字符-
作为基本参数,将在标准输入载入内容,即复制标准输入到标准导出。
cat
广泛应用于打印/查看一个或多个文本文件的内容。将一个文件的内容提升到另一个文件结尾来构成文件,以及创建新文件。
在教学中我们将要说起名一些cat命令方式的方式。包括运用cat打印文件内容,自动跳转文件的内容,打印号,去除重复的空行,说明TAB和空格字符,打印看不见标志符,用cat连接文件,运用cat创建文件。
cat命令句法
在讨论如何使用cat
命令之前,让我们先回顾一下基本语法。cat
命令表达式采用cat [OPTIONS] [FILE_NAMES]
的形式。
OPTIONS
是选项,可以用cat --help
能够查看历史能用这个功能。FILE_NAMES
零个或多个文件名。
倘若FILE_NAMES
并没传递给cat
命令请特殊特定连字符-
作为基本参数,从标准输入载入内容
打印/查看文件内容
cat
命令最基本和常见的操作方法是载入/查看/打印文件的内容。将打印文件内容到标准导出中。
例如,以下cat
命令将在智能终端打印/etc/issue
文件的内容,将导出你目前的Linux发行版的名称:
cat /etc/issue
自动跳转文件的内容
默认情况下cat命令将内容打印/载入标准导出。但您可以使用重定向操作符>
或者>>
将导出跳转文件,并非将内容打印到标准导出,即终端的屏上。
当cat
命令与重定向操作符一起使用时,就会发现cat
命令还可以进行cp
命令的复制文件操作过程。倘若cp
命令不可以用可运用cat
命令替代,但这种基本上不会造成。
以下cat
命令将file1.txt
的内容运用重定向操作符>
拷到file2.txt
。倘若file2.txt
文件也不会有,cat
命令将建立该文件。要不然,它会被遮住:
cat file1.txt > file2.txt
cat
命令除了可以进行复制文件之外。还可以使用另一个重定向操作符>>
,>>
操作符可提升一切内容在规定机械设备或者文件中。
以下cat
命令将file1.txt
内容增至file2.txt
。倘若文件也不会有,则会把创建该文件。如果出现了则增至文件末尾:
cat file1.txt >> file2.txt
打印号
很多VPS的给与上商预构建的Linux服务器,大部分都不会内置桌面环境Gnome/KDE等。也就是说你没办法在Linux服务器拼装带GUI的在线编辑。
这时候如果需要打印文件的号,除了运用vim/nano命令行在线编辑打开文件说明号之外,还可以是cat
命令。
cat
命令在编写脚本务必打印号的时候还非常有帮助。例如打印辅助制作给与这个功能
如果你务必说明文件的内容还自带号,挑选-n
选项,以下cat
命令带大家号说明/etc/lsb-release
内容:
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"
去除重复的空行
在编写脚本时你也许会在载入文件时,想消除文件中不断所发生的空行。也就是说将好多个空行删除为一个空行。
cat
命令的-s
选项可以轻松为你进行这一点,让省去很多无需shell编号。节省你的时间。
以下cat
命令将删除重复的空行导出,我们将好多个空行部位只剩下一个空行:
cat -s file.txt
说明TAB标志符
如果你为看不见的分隔符号感觉疑惑。cat
命令的-T
选项可以在视觉上差别tab分隔符和空格符,TAB标志符将可以看到^I
。
以下cat
命令将使用将-T
选项打印/etc/hosts
文件中的内容,可让你直接地看到tab分隔符:
cat -T /etc/hosts
127.0.0.1^Ilocalhost
127.0.1.1^Iubuntu1804.localdomain
打印看不见标志符
cat
命令的-e
选项可以在视觉上查看行结束位置,cat
命令打印内容时,将于行末尾可以看到$
标记的行结束。
以下cat
命令将使用将-e
选项打印/etc/lsb-release
文件中的内容,可让你直接地看到行结束位置:
cat -e /etc/lsb-release
DISTRIB_ID=Ubuntu$
DISTRIB_RELEASE=18.04$
DISTRIB_CODENAME=bionic$
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"$
合并/连接文件
将两个或多个文件名作为传送数据给cat
命令时,此刻连接文件的内容。cat
命令将根据其基本参数中给出的顺序载入文件,并以一样次序说明文件的内容。
这相当于将第二个文件的内容增至第一个文件中,而且在智能终端中显示2个文件的内容。这对于你来说想说明2个文件内容那一个,但不愿创建文件时非常有帮助。
例如,以下cat
命令将载入file1.txt
和file2.txt
的内容,而且在智能终端中显示2个文件的所有内容:
cat file1.txt file2.txt
在查看2个文件的合并结果后,得到你最期待得到的结果。大伙儿能将连接/合并2个或多个文件得出的结论。运用重定向操作符载入到文件中。倘若文件也不会有,命令将建立它。
以下cat
命令将连接file1.txt
和的file2.txt
文件内容,并且用自动跳转>
操作符将它们载入新文件combinedfile.txt
:
cat file1.txt file2.txt > combinedfile.txt
你还可以用另一个重定向操作符>>
,>>
操作符可提升一切内容在规定机械设备或者文件中。倘若文件也不会有,则会把创建该文件。
以下cat
命令将file1.txt
内容增至file2.txt
。倘若file3.txt
存在则增至文件末尾,不然就会创建文件:
cat file1.txt file2.txt >> file3.txt
创建文件
在编写脚本时你也许会想让顾客导出非常的长的内容并让顾客输入一切标志符接着保存到文件中。
这时候极有可能首先想到的就是时运用Vim,Sublime Text,Visual Studio Code或其他文本处理,但顾客的计算机并一定具备这类在线编辑。
如果你运用打开vim让顾客输入内容,但不是所有顾客都会使用这一让新客不太清楚在哪挑选的在线编辑。
简单解决方式就是使用cat作为在线编辑一样让顾客输入一切内容。在运行cat
命令前进行跟自动跳转运算符>
作为选项和建立的文件的名称作为基本参数。此刻好似打开一个在线编辑一样。
如果客户的完成内容的差别后,可以按照CRTL D
贮存文件。如果用户不知道如何贮存内容时,也可以从运行cat
之前告之顾客贮存键盘快捷键CRTL D
。
运行以下cat
命令创建一个名为的文件file1.txt
,在按着回车后你能输入一切内容,接着CRTL D
贮存:
cat > file1.txt
倘若文件file1.txt
存在,则会把遮住该文件。运用>>
运算符将增至file1.txt
文件。
结论
你已知道如何使用cat命令和基础这个功能。如有疑问请在下方留言
