常用命令 ---tail-cat
常用选项
tail
tail 和 cat 是 Linux 和类 Unix 系统中两个常用的文本处理命令,分别用于查看文件的末尾内容和显示整个文件内容。以下是它们的一些常用选项:
tail 常用选项:
1. -n number 或 -number:
显示文件末尾的指定行数。例如,tail -n 10 filename 显示文件末尾的10行。
2. -f 或 --follow[={name|descriptor}]:
实时跟踪文件的尾部内容,随着文件增长不断输出新的内容。常用于监控日志文件,如 tail -f logfile.log。
3. -c bytes 或 --bytes=bytes:
显示文件末尾指定的字节数。
4. -F:
类似于 -f,但能检测文件名改变的情况(比如通过程序重命名日志文件时)。
5. -q:
静默模式,不打印文件名前缀。
6. -v 或 --verbose:
在输出时附加文件名。
cat
cat 常用选项:
1. -n 或 --number:
对输出的每一行进行编号。
2. -b 或 --number-nonblank:
对输出的非空行进行编号。
3. -s 或 --squeeze-blank:
连续的空白行合并为一行。
4. -E 或 --show-ends:
在每一行结尾显示 $ 符号。
5. -A 或 --show-all:
等同于 -vT,即显示制表符为 ^I,并在行尾显示 $。
6. -e 或 --show-ends:
同 -A 选项,但在较老的系统中可能只显示行尾 $ 符号。
7. -t 或 --show-tabs:
显示制表符为 ^I。
8. -T 或 --show-tabs=LIST:
与 -t 类似,但允许指定字符替代制表符。
9. file1 file2 ...:
可以连续指定多个文件,cat 命令会依次显示这些文件的内容。
例如:
- 显示整个文件内容:cat filename
- 显示并编号文件内容:cat -n filename
- 连接多个文件并输出:cat file1.txt file2.txt > combined.txt
tail
tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。
语法
tail(选项)(参数)
选项
--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c<N>或——bytes=<N>:输出文件尾部的N(N为整数)个字节内容;
-f<name/descriptor>或;--follow<nameldescript>:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n<N>或——line=<N>:输出文件的尾部N(N位数字)行内容。
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
参数
文件列表:指定要显示尾部内容的文件列表。
实例
tail file (显示文件file的最后10行)
tail +20 file (显示文件file的内容,从第20行至文件末尾)
tail -c 10 file (显示文件file的最后10个字符)
cat
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令。
注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
语法
cat(选项)(参数)
选项
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
参数
文件列表:指定要连接的文件列表。
实例
设ml和m2是当前目录下的两个文件
cat m1 (在屏幕上显示文件ml的内容)
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
区别
tail 和 cat 都是 Linux/Unix 系统中的命令行工具,用于查看文本文件内容,但它们的主要功能和使用场景有所差异:
cat(concatenate)命令:
- 主要用于查看文件内容,特别是较小的文本文件。
- 可以连接多个文件并打印到标准输出(屏幕)或重定向到另一个文件。
- 示例用法:
- 查看文件内容:cat filename
- 连接并显示多个文件:cat file1.txt file2.txt
- 创建新文件或追加内容到文件:cat > newfile.txt(之后输入内容并按 Ctrl+D 结束)或 cat file1.txt >> file2.txt
tail 命令:
- 主要用于查看文件末尾的部分内容,而不一定是整个文件。
- 提供了 -n 参数来指定显示文件末尾的行数,例如 tail -n 10 filename 会显示文件末尾的10行。
- 特别强大的功能是 -f 或 --follow 选项,可以实时追踪并显示文件新增内容,非常适合监视日志文件:tail -f logfile.log
- 示例用法:
- 查看文件末尾10行:tail -n 10 filename
- 实时追踪文件新增内容:tail -f logfile
总结:
- cat 用于显示整个文件或连接多个文件内容,而 tail 专门用于查看文件末尾部分内容,并支持实时追踪文件变化。
- 在处理大型日志文件或只需要关注最新数据的情况下,tail 更为高效和适用。而在需要查看文件全貌或合并文件时,cat 是首选工具。