linux cat 命令_Linux cat命令入门

linux cat 命令

Cat是一个相当简单的工具,旨在将文件串联并写入屏幕,这就是标准输出(stdout)。 它是根据GPLv3 +许可发布的GNU Core Utils的一部分。 您可以期望在几乎任何Linux发行版或其他Unix操作环境(例如FreeBSD或Solaris)中找到它。 cat的最简单用法是显示文件的内容。 这是一个名为hello.world的文件的示例


   
   
$ ls
hello.world
$ cat hello.world
Hello World !

$
cat命令用于查看配置文件,例如/ etc目录中的配置文件。 cat命令将显示一个文件,而不会有损坏文件的风险。 如果我使用Vi或Nano等编辑器打开关键配置文件,则可能会无意间对该文件进行不必要的更改。 cat命令不是编辑器,因此不会对文件的内容进行更改。

如果需要查看更长的文件,可以使用带有更多命令的管道:

 $ cat <somelongfile> | more 

Cat可以同时显示多个文件。 如果我们希望看到两个文件- hello.worldgoodbye.world -我们将包括文件名作为命令行参数:


   
   
$ cat hello.world goodbye.world
Hello World !

Good Bye World !

$

Cat也可以在输出期间为文件的行编号。 有两个命令可以执行此操作,如帮助文档中所示:


   
   
-b, --number-nonblank    number nonempty output lines, overrides -n
-n, --number             number all output lines

如果我将-b命令与hello.world文件一起使用,则输出的编号将如下所示:


   
   
$ cat -b hello.world
      1  Hello World !

$

在上面的示例中,有一个空行。 我们可以使用-n参数来确定为什么出现此空行:


   
   
$ cat -n hello.world
      1  Hello World !
      2
$

现在我们看到有一个额外的空行。 这两个参数是对最终输出而不是文件内容进行操作,因此,如果我们对两个文件都使用-n选项,则编号将按以下方式计数行:


   
   
$ cat -n hello.world goodbye.world
      1  Hello World !
      2 
      3  Good Bye World !
      4
$

可能有用的另一个选项是-s for squeeze-blank 。 此参数告诉cat将重复的空行输出减少到一行。 当检查具有很多空行的文件时,这很有用,因为它可以有效地容纳屏幕上的更多文本。 假设我有一个文件,该文件包含三行,并由几行空行隔开,例如在本示例中, greetings.world


   
   
$ cat greetings.world
Greetings World !




Take me to your Leader !




We Come in Peace !
$

使用-s选项可以节省屏幕空间:


   
   
$ cat -s greetings.world
Greetings World !

Take me to your Leader !

We Come in Peace !
$

Cat通常用于将一个文件的内容复制到另一个文件。 您可能会问:“为什么不只使用cp ?” 这是我如何创建一个名为both.files的新文件,其中包含hellogoodbye文件的内容:


   
   
$ cat hello.world goodbye.world > both.files
$ cat both.files
Hello World !

Good Bye World !

$

cat猫

cat命令还有另一种变体,称为zcat 。 此命令能够显示使用Gzip压缩的文件,而无需使用gunzip命令解压缩文件。 顺便说一句,这还保留了磁盘空间,这就是压缩文件的全部原因!

zcat命令更令人兴奋,因为对于花费大量时间检查系统日志文件的系统管理员而言,它可以节省大量时间。 我们在哪里可以找到压缩日志文件? 看一下大多数Linux系统上的/ var / log 。 在我的系统上, / var / log包含几个文件,例如syslog.2.gzsyslog.3.gz 。 这些文件是日志管理系统的结果,该系统旋转和压缩日志文件以节省磁盘空间并防止日志增长到难以管理的文件大小。 如果没有zcat ,则在查看它们之前必须使用gunzip命令解压缩这些文件。 幸运的是,我可以使用zcat


   
   
$ cd / var / log
$ ls * .gz
syslog.2.gz  syslog.3.gz
$
$ zcat syslog.2.gz | more
Jan 30 00:02: 26 workstation systemd [ 1850 ] : Starting GNOME Terminal Server...
Jan 30 00:02: 26 workstation dbus-daemon [ 1920 ] : [ session uid = 2112 pid = 1920 ] Successful
ly activated service 'org.gnome.Terminal'
Jan 30 00:02: 26 workstation systemd [ 1850 ] : Started GNOME Terminal Server.
Jan 30 00:02: 26 workstation org.gnome.Terminal.desktop [ 2059 ] : # watch_fast: "/org/gno
me / terminal / legacy / " (establishing: 0, active: 0)
Jan 30 00:02:26 workstation org.gnome.Terminal.desktop[2059]: # unwatch_fast: "
/ org / g
nome / terminal / legacy / " (active: 0, establishing: 1)
Jan 30 00:02:26 workstation org.gnome.Terminal.desktop[2059]: # watch_established: "
/
org / gnome / terminal / legacy / " (establishing: 0)
--More--

如果我们想不间断地检查两个文件,也可以将两个文件都传递给zcat 。 由于日志轮换的工作方式,您需要以相反的顺序传递文件名,以保留日志内容的时间顺序:


   
   
$ ls -l * .gz
-rw-r----- 1 syslog adm   196383 Jan 31 00:00 syslog.2.gz
-rw-r----- 1 syslog adm 1137176 Jan 30 00:00 syslog.3.gz
$ zcat syslog.3.gz syslog.2.gz | more

cat命令看起来很简单,但非常有用。 我经常使用它。 您也不需要像真正的猫一样喂养或宠物。 与往常一样,建议您查看catzcat命令的手册页( man cat ),以了解有关如何使用它的更多信息。 您也可以使用--help参数来快速概述命令行参数。

翻译自: https://opensource.com/article/19/2/getting-started-cat-command

linux cat 命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值