本文使用 Zhihu On VSCode 创作并发布
当我们在进行调试的时候,经常需要查看各种日志文件,这时候熟悉linux下一些常用的查看文件命令是非常重要的,本篇文章专门整理了这些常用的命令,主要有下面几个。
- tail
- cat
- more
tail命令
ltail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个文件的最后几行显示到终端上,假设该文件有更新,tail会自己主动刷新,确保你看到最新的文件内容。
tail命令语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [-r] [ File ]
参数解释:
- -f 该参数用于监视File文件动态增长。
- -c Number 从 Number 字节位置读取指定文件
- -n Number 从 Number 行位置读取指定文件。
- -m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
- -b Number 从 Number 表示的512字节块位置读取指定文件。
- -k Number 从 Number 表示的1KB块位置读取指定文件。
- -r 这个会似的按照现实内容相反的顺序现实,具体见下面例子
- File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部开始计算。这个具体看下面例子。
tail命令使用例子
tail -f filename 说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
tail -n 20 filename 说明:显示filename最后20行。
tail -n +20 filename 说明:显示filename前面20行。
tail -r -n 10 filename 说明:逆序显示filename最后10行。
2 filename
cat命令
cat命令用于连接文件并打印到标准输出设备上。
cat命令语法
cat [-benstuv] [file ...]
参数解释:
- -n 由 1 开始对所有输出的行数编号。
- -b 和 -n 相似,只不过对于空白行不编号。
- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行。
- -v 显示非打印字符,使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
- -e 显示非打印字符 在每行结束处显示 $。
- -t 显示非打印字符,将 TAB 字符显示为 ^I。
- -u 禁用输出缓冲
- file... 可以同时指定多个文件,会按照文件名输入的顺序显示文件,如果文件名不存在或者是"-",表示读取标准输入作为内容,如果文件是一个socket文件,cat链接这个文件直到读取EOF标志为止。
cat使用例子
cat -n textfile1 > textfile2 把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat /dev/null > /etc/test.txt 清空 /etc/test.txt 文档内容:
cat /dev/fd0 > OUTFILE cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入.
相反的,如果想把 image file 写到软盘,输入: cat IMG_FILE > /dev/fd0
more命令
more命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
more命令语法
more [-dlfpcsu] [-num] [+/pattern] [+lnum] [fileNames..] 参数解释:
- -num 一次显示的行数
- -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
- -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
- -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
- -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
- -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
- -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
- +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
- +num 从第 num 行开始显示
- -num 设置每屏显示的行数
- fileNames 欲显示内容的文档,可为复数个数
more命令实例
more -s testfile 逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile 从第 20 行开始显示 testfile 之文档内容。
more -5 testfile 每屏显示5行
more +/day3 testfile 从文件中查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出
配置more常用操作命令
- Enter 向下n行,需要定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- V 调用vi编辑器
- !命令 调用Shell,并执行命令
- q 退出more
less命令
![v2-cd193ac6d627171ef987b462a991ffef_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=0cbdb850-3929-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-cd193ac6d627171ef987b462a991ffef_b.jpg)