失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > LINUX查看文件内容命令cat vi/vim more tail head的区别

LINUX查看文件内容命令cat vi/vim more tail head的区别

时间:2021-04-16 11:18:37

相关推荐

LINUX查看文件内容命令cat vi/vim more tail head的区别

缘起

用过linux的同学应该都知道,在linux中查看文件内容有好几个命令都可以实现,包括但不限于以下这些

catvimoretailhead

那么这些命令都有什么区别呢?又分别在什么时候用呢?下面一一道来。

这些命令的区别与联系

cat

Cat不单单是查看文件内容,还可以创建文件或者附加文件内容。

cat的语法结构

cat [参数] [文件]...

参数

-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

vi/vim

vi/vim可以查看文件的同时也可以对文件内容进行修改,且可以进行文件内容搜索。

vi的语法结构

vi 文件名

vi/vim 共分为三种模式,分别是命令模式输入模式底线命令模式。

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。输入以下命令可以执行命令

i 切换到输入模式,以输入字符。x 删除当前光标所在处的字符。: 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序w 保存文件

按ESC键可随时退出底线命令模式。

输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符ENTER,回车键,换行BACK SPACE,退格键,删除光标前一个字符DEL,删除键,删除光标后一个字符方向键,在文本中移动光标HOME/END,移动光标到行首/行尾Page Up/Page Down,上/下翻页Insert,切换光标为输入/替换模式,光标将变成竖线/下划线ESC,退出输入模式,切换到命令模式

vi/vim 按键说明

由于vi/vim的命令非常多,本处没法列举完全,可以参考这个链接

more

Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

more语法结构

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [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 行开始显示fileNames 欲显示内容的文档,可为复数个数

实例

从第 20 行开始显示 testfile 之文档内容。

more +20 testfile

常用操作命令

Enter 向下n行,需要定义。默认为1行Ctrl+F 向下滚动一屏空格键 向下滚动一屏Ctrl+B 返回上一屏= 输出当前行的行号:f 输出文件名和当前行的行号V 调用vi编辑器!命令 调用Shell,并执行命令q 退出more

tail

tail 命令常用于查看文件的最后几行命令,并且不停的刷新,比较适合实时观察程序的日志情况。

tail语法结构

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 的内容,从第 20 行至文件末尾:

tail +20 notes.log

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

tail -c 10 notes.log

显示a.log的最后200行并且不断刷新显示

tail -200f a.log

head

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

head语法结构

head [参数] [文件]

参数

-q 隐藏文件名-v 显示文件名-c<字节> 显示字节数-n<行数> 显示的行数

实例

显示文件的前n行

head -n 5 log.log

显示文件前n个字节

head -c 20 log.log

输出文件的除了最后n个字节以外的内容

head -n -32 log.log

输出文件除了最后n行的全部内容

head -n -6 log.log

如果觉得《LINUX查看文件内容命令cat vi/vim more tail head的区别》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。