如何在 Linux 中通过示例使用“cat”和“tac”命令
本文是我们的 Linux 技巧和技巧系列的一部分,在本文中我们将介绍 cat 命令(Linux 中最常用的命令)和 tac ( cat 命令的反向操作 - 以相反的顺序打印文件)以及一些实际示例。
另请阅读: Linux 中的 13 个有用的“cat”命令示例
Linux中Cat命令的基本用法
Cat 命令是 Concatenate 的缩写,是 *nix 系统中最常用的命令之一。该命令最基本的用法是读取文件并将其显示到stdout,即在终端上显示文件的内容。
cat file.txt
cat 命令的另一种用法是读取或组合多个文件并将输出发送到监视器,如以下示例所示。
cat file1.txt file2.txt file3.txt
该命令还可用于使用 “> ”
Linux 重定向运算符将多个文件连接(加入)为一个文件。
cat file1.txt file2.txt file3.txt > file-all.txt
通过使用追加重定向器,您可以使用以下语法将新文件的内容添加到 file-all.txt
的底部。
cat file4.txt >> file-all.txt
cat 命令可用于将文件内容复制到新文件。新文件可以任意重命名。例如,将文件从当前位置复制到 /tmp/
目录。
cat file1.txt > /tmp/file1.txt
将文件从当前位置复制到 /tmp/
目录并更改其名称。
cat file1.txt > /tmp/newfile.cfg
cat 命令的较少用法是使用以下语法创建一个新文件。完成文件编辑后,请按 CTRL+D
保存并退出新文件。
cat > new_file.txt
为了对文件的所有输出行(包括空行)进行编号,请使用 -n
开关。
cat -n file-all.txt
要仅显示每个非空行的编号,请使用 -b
开关。
cat -b file-all.txt
想要了解更多有关 Linux cat 命令的信息?然后阅读我们关于 Linux 中 13 个有用的“cat”命令示例的文章。
了解如何在 Linux 中使用 Tac 命令
另一方面,*nix 系统中一个鲜为人知且较少使用的命令是 tac 命令。 Tac 实际上是 cat
命令的反向版本(也向后拼写),它按照机器标准从底行开始到顶行打印文件的每一行输出。
tac file-all.txt
该命令最重要的选项之一由 -s
开关表示,它根据字符串或关键字将文件的内容与文件分开。
tac file-all.txt --separator "two"
接下来,tac命令最重要的用途是,它可以为调试日志文件提供很大的帮助,反转日志内容的时间顺序。
tac /var/log/auth.log
Or to display the last lines
tail /var/log/auth.log | tac
样本输出
tecmint@tecmint ~ $ tac /var/log/auth.log
pr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr 6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...
与cat
命令相同,tac
在操作文本文件方面表现出色,但在其他类型的文件中应该避免使用它,特别是二进制文件或第一行所在的文件表示将运行它的程序。