Alex_McAvoy

想要成为渔夫的猎手

Linux 文件内容查阅

【概述】

在查看文件内容时,有以下几个命令,可以根据不同的需要选取相应的命令:

  • cat 命令:从第一行开始显示
  • tac 命令:从最后一行开始显示
  • nl 命令:显示文件内容时同时显示行号
  • more 命令:一页一页显示文件内容
  • less 命令:一页一页显示内容,可以向前翻页
  • head 命令:只看开头几行
  • tail 命令:只看结尾几行
  • od 命令:以二进制方式读取文件内容

【直接查看文件内容】

cat 命令

命令格式

cat 命令会将文件从第一行到最后一行显示,其命令格式为:cat [选项] 文件

其选项有:

  • -n:列出行号,含空白行
  • -b:列出行号,不含空白行
  • -T:将 Tab^I 显示出来
  • -E:将结尾的断行字符 $ 显示出来
  • -v:列出看不到的特殊字符
  • -A:相当于 vET

实例

正向显示 /test/test.txt 中的内容,要求同时输出行号

tac 命令

命令格式

tac 命令则是从最后一行到第一行显示,与 cat 命令正好相反,其命令格式为:tac [选项] 文件

选项有:

  • -b:在行前而非行尾添加分隔标志
  • -r:将分隔标志视作正则表达式来解析
  • -s:使用指定字符串代替换行作为分隔标志

实例

反向显示 /test/test.txt 中的内容

nl 命令

命令格式

nl 命令会添加行号打印文件内容,其命令格式为:nl [选项] 文件

选项有:

  • 指定行号指定方式:
    • -b a:无论是否有空行,均列出行号(类似 cat -n)
    • -b t:如果有空行,空行不列出行号(默认)
  • 列出行号表示方法:
    -n ln:行号在屏幕最左方显示,且不加 0
    -n rn:行号在字段最右方显示,且不加 0
    -n rz:行号在字段最右方显示,且加 0(默认为 6 位)
  • -w:行号字段占用位数

实例

1.输出 /test/test.txt 的内容,同时显示行号,要求行号在字段左边

2.输出 /test/test.txt 的内容,同时显示行号,要求行号在字段右边

3.输出 /test/test.txt 的内容,同时显示行号,要求行号在字段右边,自动补0,若有空行同样显示行号,且行号位数为 3

【翻页查看】

more 命令

more 命令可以一页一页的对文件进行查看,当文件内容大于屏幕输出的行数时,最后一行会显示当前显示的百分比

在查看过程中,可输入一些命令,来进行操作:

  • 空格键:下翻一页
  • 回车键:下滚一行
  • /字符串:在当前页向下查询 “字符串”
  • :f:立即显示文件名及目前行数
  • b:向回翻页
  • q:退出 more

less 命令

less 命令同样是用来一页一页查看文件的,但比 more 命令更有弹性

同样,在阅读过程中,可输入一些命令,来进行操作:

  • 空格键:下翻一页
  • PageDown:下翻一页
  • PageUp:上翻一页
  • /字符串:在当前页向下查询 “字符串”
  • ?字符串:在当前页向上查询 “字符串”
  • n:重复前一个查询
  • N:反向重复前一个查询
  • q:退出 less

【数据选取】

对于输出的数据,可以利用 head 命令和 tail 命令做一个简单的选取,两者以行为单位,从前向后或从后向前选取若干行

其命令格式如下:

  • head [-n number] 文件:从前向后选取 number 行(默认 10 行)
  • tail [-n number] 文件:从后向前选取 number 行(默认 10 行)

【非纯文本文件】

对于非纯文本文件,当利用 cat 等命令读取其内容时,会产生类似乱码的数据,od 命令可以读取二进制执行文件

其命令格式为:od [选项] 文件

选项有:

  • -t a[size]:利用默认字符输出
  • -t c[size]:利用 ASCII 码输出
  • -t d[size]:利用十进制输出,每个整数占据 size 字节
  • -t f[size]:利用浮点数进制输出,每个整数占据 size 字节
  • -t o[size]:利用八进制输出,每个整数占据 size 字节
  • -t x[size]:利用十六进制输出,每个整数占据 size 字节

这个命令对用户来说,帮助并不大,但对于程序员,这个命令可以将二进制文件的内容做一个大致的输出,可以近似的看出其含义

如下图,是将 /etc/issue 这个文件的内容以八进制列出存储值与 ASCII 的对照表

感谢您对我的支持,让我继续努力分享有用的技术与知识点!