0
点赞
收藏
分享

微信扫一扫

Linux命令--查看文件内容

回溯 2022-02-25 阅读 57


简介

        本文介绍Linux下查看文档的命令,有实例。命令有:tail、head、cat、tac、vi、vim、hexdump、cut。

tail

格式

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

参数


  • -f  监视File文件增长。
  • -c Number 从Number字节位置读取指定文件
  • -n Number 从Number行位置读取指定文件。
  • -m Number 从Number多字节字符位置读取指定文件。
  • 比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
  • -b Number 从Number表示的512字节块位置读取指定文件。
  • -k Number 从Number表示的1KB块位置读取指定文件。

示例

1、监视文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。

tail -f filename

退出:CTRL+C

2、显示filename最后20行

tail -n 20 filename  或 tail -20 filename

3、监视文件的尾部100行内容

tail -100f filename

4、逆序显示filename最后10行

tail -r -n 10 filename 或 tail -r -10 filename

head

参数

-q 隐藏文件名

-v 显示文件名

-c 显示前多少个字节数

-n 显示前几行

示例

1.显示文件的前5行

head -n 5 test.txt

2.显示文件前5个字节

head -c 5 test.txt

3.显示除了最后5个字节以外的内容

head -c -5 test.txt

cat

作用

显示文件

示例

cat file1     //显示文件file1的内容

cat file1 file2 > file3

cat file1 file1 > file2   // 此时file1被复制了两次,然后写到file2中

tac

反向显示文件(和cat显示顺序相反)

vi

定位


命令



作用



0(或^)



光标移到行首



$



光标移到行尾



gg



光标移动到文件首部



G



光标移动到文件末尾



ngg/nG 无需回车

:n 回车

vi +n fileName 回车


跳转到第n行。


ctrl+o



回到上一个光标的位置



ctrl+i



回到下一个光标的位置



/



输入查找的字符,按n会往后查找,按N会往前查找



?



输入查找的字符,按n会往前查找,按N会往后查找



ctrl+b



上翻



ctrl+f



下翻


编辑


命令



作用



u



恢复到上一步



ctrl+R



恢复到撤销之前的状态。(对撤销的撤销)



a



光标后插入文本



i



光标前插入文本



o



插入新的一行,从行首开始输入



d0



删至行首



ndd



删除从当前行开始的n行



D



删至行尾



x



删除光标后一个字符


退出

命令

作用


:w



保存文件



:wq



保存文件并退出



:q



退出



:q!



退出但是不保存



:qall!



放弃所有修改并退出 (可以用:qa!)



:wqall!



保存所有并退出(可以用:wqa!)


窗口


命令



作用



:split



竖直分割窗口。(可以用":sp",另外,可以这样用:":sp./file1,以打开另一个文件)



:vsplit



竖直分割窗口。(可以用":vs",另外,可以这样用:":vs./file1,以打开另一个文件)



ctrl+w



可以在窗口之间跳转



:only



关闭其他窗口,只保留此窗口(可以用:on)



vim-o



水平分割打开。例如:vim-ofile1file2



vim-O



竖直分割打开。例如:vim-Ofile1file2



:shell



在vi编辑的时候用此命令暂时跳出vi,可以运行命令(可用:sh)。可以用exit来恢复到vi界面


vi上下左右和退格不正常问题解决

步骤一:

输入chsh,回车

在Login Shell...后输入/bin/bash回车

步骤二:

修改/etc/vim/vimrc.tiny

修改  set compatible  为  set nocompatible     设置是否兼容

添加  set backspace=2             设置 backspace可以删除任意字符

备注:

set baskspace=2等同于set backspace=indent,eol,start

 indent: 如果用了:set indent,:set ai 等自动缩进,想用退格键将字段缩进的删掉,必须设置这个选项。否则不响应。

eol:如果插入模式下在行开头,想通过退格键合并两行,需要设置eol。

start:要想删除此次插入前的输入,需设置这个。

more

作用

more会以一页一页的显示方便使用者逐页阅读,而且还有搜寻字串的功能。

格式

more [-dlfpcsu ] [-num ] [ / pattern] [ linenum] [file ... ]

参数

n 从笫n行开始显示

-n 定义屏幕大小为n行

/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行向后显示

-c 从顶部清屏,然后显示

-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能

-l 忽略Ctrl l(换页)字符

-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

-s 把连续的多个空行显示为一行

-u 把文件内容中的下画线去掉

常用操作命令​:


  • Enter:向下n行,需要定义。默认为1行
  • 空格:向下滚动一屏(Ctrl F也可以)
  • b:返回上一屏(Ctrl B也可以)
  • =:输出当前行的行号
  • f 输出文件名和当前行的行号
  • v:调用vi编辑器(或者V)
  • !命令:调用Shell,并执行命令
  • / 向后搜索
  • q 退出more

less

作用

less会以一页一页的显示方便使用者逐页阅读,而且还有搜寻字串的功能。

操作命令


  • 向前翻一页:[pageup] 或 ctrl+b 或 b
  • 向后翻一页:[pagedown] 或 ctrl+f 或 空格
  • 向前翻半页:u
  • 向后翻半页:d
  • 向前翻一行:k 或 y
  • 向后翻一行:j 或 回车
  • 移动到最后一行:G
  • 移动到第一行:g
  • 向上搜索:?字符串
  • 向下搜索:/字符串
  • 重复前一个搜索:n
  • 反向重复前一个搜索:N
  • 使用配置的编辑器编辑:v
  • 显示帮助界面:h
  • 退出命令:q或Q

参数


  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将"tab"键显示为规定的数字空格

hexdump

格式

hexdump [-bcCdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]

参数

-b     每个字节显示为8进制。一行共16个字节,一行开始以十六进制显示偏移值

-c     每个字节显示为ASCII字符

-C​     每个字节显示为16进制和相应的ASCII字符

-d     两个字节显示为10进制

-e     格式化输出

-f     Specify a file that contains one or more newline separated format strings. Empty lines and lines whose first non-blank

        character is a hash mark (#) are ignored.

-n​     只显示前n个长度的字符

-o     两个字节显示8进制数据

-s​     从偏移量开始输出

-v     The -v option causes hexdump to display all input data. Without the -v option, any number of groups of output lines,

         which would be identical to the immediately preceding group of output lines

-x     双字节十六进制显示

示例

1.以ASCII字符显示文件中字符

    hexdump -c test

2.以16进制和相应的ASCII字符显示文件里的字符

    hexdump -C test

3.只显示文件中前n个字符

    hexdump -C -n 5 test

4.以偏移量开始格式输出

    hexdump -C -s 5 test

cut

简介

cut 命令从文件的每一行来剪切字节、字符和字段,并将这些字节、字符和字段写至标准输出。


选项



含义



-b,--bytes=lists



只选中指定的这些字节



-c,--characters=lists



只选中指定的这些字符



-d, --delimiter=分界符



使用指定分界符代替制表符作为区域分界。只有指定-f时使用。不指定时分界为制表符。



-f, --fields=列表



只选中指定的这些域;并打印所有不包含分界符的行,除非-s 选项被指定。

仅使用f -b, -c 或-f 中的一个,每一个列表都是专门为一个类别作出的,或者您可以用逗号隔开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次。

每种参数格式表示范围如下:

N   从第1 个开始数的第N 个字节、字符或域

N-  从第N 个开始到所在行结束的所有字符、字节或域

N-M 从第N 个开始到第M 个之间(包括第M 个)的所有字符、字节或域

-M  从第1 个开始到第M 个之间(包括第M 个)的所有字符、字节或域



-n



取消分割多字节字符。仅和 -b 标志一起使用,如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。



--complement



补全选中的字节、字符或域



-s, --only-delimited



不打印没有包含分界符的行



--output-delimiter=字符串



使用指定的字符串作为输出分界符,默认采用输入的分界符



--help



显示此帮助信息并退出



--version



显示版本信息并退出



示例



cat test.txt

结果:

Name; Mark; Percent

tom; 69; 91

jack; 71; 87

alex; 68; 98




cut -d " " -f1 test.txt

结果:

Name;

tom;

jack;

alex;



cut -d " " -f2,3 test.txt

结果:

Mark; Percent

69; 91

71; 87

68; 98



cut -d " " -f2 --complement test.txt

结果:

Name; Percent

tom; 91

jack; 87

alex; 98



cut -c1-3 test.txt

结果:

Nam

tom

jac

ale





cut -c1- test.txt

结果:

Name; Mark; Percent

tom; 69; 91

jack; 71; 87

alex; 68; 98




cut -d ";" -f2 test.txt

结果:(有空格)

 Mark

 69

 71

 68




cut -d ";" -f2 test.txt | cut -d " " -f2

结果:(无空格)

Mark

69

71

68







举报

相关推荐

0 条评论