首页 > 技术文章 > Linux cat与tail 命令

qqfff 2019-07-11 17:23 原文

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

命令格式:

tail [参数] [文件]

参数:

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例

要显示 notes.log 文件的最后 10 行,请输入以下命令:

tail notes.log

要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log

此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

显示文件 notes.log 的内容,从第 20 行至文件末尾:

tail +20 notes.log

显示文件 notes.log 的最后 10 个字符:

tail -c 10 notes.log

命令:cat

cat 命令用于连接文件并打印到标准输出设备上。

使用权限

所有使用者

语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明:

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends : 在每行结束处显示 $。

-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

-A, --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

实例:

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt

cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0

  • 1. OUTFILE 指输出的镜像文件名。
  • 2. IMG_FILE 指镜像文件。
  • 3. 若从镜像文件写回 device 时,device 容量需与相当。
  • 4. 通常用制作开机磁片。

推荐阅读