Linux之文件查看命令

序号命令对应英文作用
01cat 文件名concatenate查看小文件内容
02less -N 文件名less分频 显示大文件内容
03head -n 文件名查看文件的前一部分
04tail -n 文件名查看文件的最后部分
05grep 关键字 文件名grep根据关键词, 搜索文本文件内容

总结:

  • 以上5个命令都可以查询文件的内容,他们的功能如下
  • 通过 cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件
  • less 命令适合查看 内容较多 的文本文件
  • 通过 head 命令查看文档的前几行内容
  • 通过 tail -10f 文件 命令 查看文档(日志)的后几行内容
  • 通过 grep 命令 搜索存在 关键字 的行

1、cat命令

​​​​​​        使用cat命令类似于我们在Windows中查看小型(太大的时候打开会卡死)的文件,cat常用的功能其实就等价于Windows中的txt---打开--查看

        ​​​​​​​cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat txtFiles.txt

使用者权限:当前文件的权限用户

语法格式

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

具体参数:

-A, --show-all           等价于"-vET"组合选项。
-b, --number-nonblank    只对非空行编号,从1开始编号,覆盖"-n"选项。
-e                       等价于"-vE"组合选项。
-E, --show-ends          在每行的结尾显示'$'字符。
-n, --number             对所有行编号,从1开始编号。
-s, --squeeze-blank      压缩连续的空行到一行。
-t                       等价于"-vT"组合选项。
-T, --show-tabs          使用"^I"表示TAB(制表符)。
-u                       POSIX兼容性选项,无意义。
-v, --show-nonprinting   使用"^"和"M-"符号显示控制字符,除了LFD(line feed,即换行符'\n')和TAB(制表符)。

--help                   显示帮助信息并退出。
--version                显示版本信息并退出。

例子:

# 合并显示多个文件
cat ./1.log ./2.log ./3.log
# 显示文件中的非打印字符、tab、换行符
cat -A test.log
# 压缩文件的空行
cat -s test.log
# 显示文件并在所有行开头附加行号
cat -n test.log
# 显示文件并在所有非空行开头附加行号
cat -b test.log
# 将标准输入的内容和文件内容一并显示
echo '######' |cat - test.log

2、grep命令

grep命令在使用的时候类似于我们的程序中的查询,或者在txt文档中通过ctr+f查找
grep除了能对文件操作为还可以查看我们的进程信息,类似于我们在Windows系统的任务管理器(任务栏--右键---启动任务管理器--进程)下的进程

        grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

grep 命令用于查找文件里符合条件的字符串,语法如下:

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

使用者权限:当前文件的权限用户

参数详情:

-a --text  # 不要忽略二进制数据。
-A <显示行数>   --after-context=<显示行数>   # 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b --byte-offset                           # 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-B<显示行数>   --before-context=<显示行数>   # 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c --count    # 计算符合范本样式的列数。
-C<显示行数> --context=<显示行数>或-<显示行数> # 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> --directories=<动作>  # 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> --regexp=<范本样式>   # 指定字符串作为查找文件内容的范本样式。
-E --extended-regexp             # 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> --file=<规则文件>     # 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F --fixed-regexp   # 将范本样式视为固定字符串的列表。
-G --basic-regexp   # 将范本样式视为普通的表示法来使用。
-h --no-filename    # 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H --with-filename  # 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i --ignore-case    # 忽略字符大小写的差别。
-l --file-with-matches   # 列出文件内容符合指定的范本样式的文件名称。
-L --files-without-match # 列出文件内容不符合指定的范本样式的文件名称。
-n --line-number         # 在显示符合范本样式的那一列之前,标示出该列的编号。
-P --perl-regexp         # PATTERN 是一个 Perl 正则表达式
-q --quiet或--silent     # 不显示任何信息。
-R/-r  --recursive       # 此参数的效果和指定“-d recurse”参数相同。
-s --no-messages  # 不显示错误信息。
-v --revert-match # 反转查找。
-V --version      # 显示版本信息。   
-w --word-regexp  # 只显示全字符合的列。
-x --line-regexp  # 只显示全列符合的列。
-y # 此参数效果跟“-i”相同。
-o # 只输出文件中匹配到的部分。
-m <num> --max-count=<num> # 找到num行结果后停止查找,用来限制匹配行数

规则表达式(配合参数E使用正则表达式)

^    # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
$    # 锚定行的结束 如:'grep$' 匹配所有以grep结尾的行。
.    # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*    # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
.*   # 一起用代表任意字符。   
[]   # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
[^]  # 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。    
\(..\)  # 标记匹配字符,如'\(love\)',love被标记为1。    
\<      # 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。    
\>      # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。    
x\{m\}  # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    
x\{m,\}   # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    
x\{m,n\}  # 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   
\w    # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
\W    # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
\b    # 单词锁定符,如: '\bgrep\b'只匹配grep。 

3、tail命令

  • tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
  • tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

使用者权限:当前文件的权限用户

命令格式: ​​​​​​​

tail [参数] [文件]  

参数详情:

-c, --bytes=NUM                 输出文件尾部的NUM(NUM为整数)个字节内容。
-f, --follow[={name|descript}]  显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。
-F                              与 “--follow=name --retry” 功能相同。
-n, --line=NUM                  输出文件的尾部NUM(NUM位数字)行内容。
--pid=<进程号>                  与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令。
-q, --quiet, --silent           当有多个文件参数时,不输出各个文件名。
--retry                         即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“--follow=name”连用。
-s, --sleep-interal=<秒数>      与“-f”选项连用,指定监视文件变化时间隔的秒数。
-v, --verbose                   当有多个文件参数时,总是输出各个文件名。
--help                          显示指令的帮助信息。
--version                       显示指令的版本信息。

示例:

tail file #(显示文件file的最后10行)
tail -n +20 file #(显示文件file的内容,从第20行至文件末尾)
tail -c 10 file #(显示文件file的最后10个字节)

tail -25 mail.log # 显示 mail.log 最后的 25 行
tail -f mail.log # 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F mail.log # 等同于--follow=name --retry,
根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

总结

  • 在tail使用的过程中,我们使用最多的就是查看文件末尾多多少行
  • 使用tail -nf txtfile.txt
  • 通常都是在查看日志信息(报错调试时使用)

 

4、less命令

        less命令也是查看文件的,只不过它适合查看 内容较多的文本文件,它也可以用于分屏显示文件内容,  每次只显示一页内容,有点类似我们做分页查询

  • less用于查看文件,但是less 在查看之前不会加载整个文件。
  • 使用者权限:当前文件的权限用户

语法:

less [参数] 文件 

参数详情:

-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。

查看命令历史使用记录并通过less分页显示

[itcast@localhost ~]$  history | less
    1  ifconfig
    2  reboot
    3  ifconfig
    4  reboot
    5  ifconfig
    6  su root
    7  ifconfig
    8  ping  www.baidu.com
    9  \
   10  ifconfig
   11  date
   12  hwclock --systohc
   13  su root
   
   ......略

我们输入【j】可以前进行

输入【k】可以后退行

输入【G】可以 移动到最后一行

输入【g】可以移动到第一行

输入【ctrl + F】 向前移动一屏(类似于我们在浏览器中的数据分页的下一页)

输入【ctrl + B】 向后移动一屏(类似于我们在浏览器中的数据分页的上一页)

其他命令

1.全屏导航

  • ctrl + F - 向前移动一屏

  • ctrl + B - 向后移动一屏

  • ctrl + D - 向前移动半屏

  • ctrl + U - 向后移动半屏

2.单行导航

  • j - 向前移动一行

  • k - 向后移动一行

3.其它导航

  • G - 移动到最后一行

  • g - 移动到第一行

  • q / ZZ - 退出 less 命令

​​​​​​​

5、history命令

语法:

history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]

选项:

-c           清空历史列表。
-d offset    根据offset删除记录。如果是正数则表示offset位置的记录,如果为负数则表示从结尾向前offset位置的记录。
-a           将当前终端的历史记录行添加到历史记录文件。
-n           将尚未从历史文件中读取的历史行追加到当前历史列表中。
-r           读取历史文件,并将其内容附加到历史列表中。
-w           将当前历史记录列表附加到历史记录文件中并且附加它们到历史列表中。
-p           在每个arg上执行历史记录扩展并在标准输出上显示结果,而不将结果存储在历史记录列表中。
-s           将每个arg作为单个条目附加到历史记录列表。

使用history命令显示最近使用的10条历史命令

[root@localhost ~]# history 10
   92  ls
   93  cd ..
   94  ls
   95  exit
   96  ls -a
   97  cd .ssh/
   98  ls
   99  cat known_hosts
  100  exit
  101  history 10

清空历史记录

[root@localhost ~]# history -c
# 执行第 n 条历史命令
[root@localhost ~]# !n

# 执行最后一条 xxx 开头的命令
[root@localhost ~]# !xxx

注意

  1. 在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2
  2. 关闭终端后,历史列表将被写入历史文件~/.bash_history
  3. 环境变量HISTSIZE决定了历史文件中命令的存储数量,默认存储1000条。
  4. 环境变量HISTTIMEFORMAT如果是非空值,则使用其值作为strftime(3)打印相关时间戳的格式字符串添加在每个显示的历史记录之前;否则不会打印时间戳。
  5. 该命令是bash内建命令,相关的帮助信息请查看help命令。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悠然予夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值