Linux 常用命令-文本查看篇

  • Post author:
  • Post category:linux


原文地址

mp.weixin.qq.com

前言


Linux 常用命令中,除了 cat 还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。



全文本显示 –cat

cat 可能是常用的一个文本查看命令了,使用方法也很简单:

cat file  #全文本显示在终端
cat -n file #显示全文本,并显示行号


另外,cat 也可用作合并文件:

cat file1 file2 >file3


该命令将 file1 file2 的内容合并写到 file3 中。



倒序显示全文本 –tac

tac 是 cat 倒过来的写法,tac 以行为单位,倒序显示全文本内容。

tac file




分页显示文本 –more

cat 将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而 more 命令可以分页显示。

  1. 显示内容
more file


之后,就可以使用按键来查看文本。常用按键如下:

回车    #向下n行,默认为1行
空格    #向下滚动一屏
b      #向上滚动一屏
=      #输出当前行号
:f     #输出当前文件名和当前行号
q      #退出


  1. 从指定行开始显示
more +10 file


该命令从第 10 行开始显示 file 的内容。

  1. 从匹配的字符串行开始显示
more +/string file


该命令从有 string 的行的前两行开始 file 的内容。



任意浏览搜索文本 –less

less 命令的基本功能和 more 没有太大差别,但是

less 命令可以向前浏览文件,而 more 只能向后浏览文件

,同时 less 还拥有更多的搜索功能。

常见使用方法:

less file     #浏览file
less -N file  #浏览file,并且显示每行的行号
less -m file  #浏览file,并显示百分比


常用按键如下:

f        #向前滚动一屏
b        #向后滚动一屏
回车或j   #向前移动一行
k        #向后移动一行
G        #移动到最后一行
g        #移动到第一行
/string  #向下搜索string,n查看下一个,N查看上一个结果
?string #向上搜索string,n查看下一个,N查看上一个结果
q    #退出


相比 more 命令,less 命令能够搜索匹配需要的字符串。

另外,less 还能在多个文件间切换浏览:

less file1 file2 file3
:n     #切换到下一个文件
:p     #切换到上一个文件
:x     #切换到第一个文件
:d     #从当前列表移除文件




显示文本头部内容 –head

head 命令的作用就像它的名字一样,用于显示文件的开头部分文本。

常见用法如下:

head -n 100 file #显示file的前100行
head -n -100 file #显示file的除最后100行以外的内容。  




显示文本尾部内容 –tail

和 head 命令类似,只不过 tail 命令用于读取文本尾部部分内容:

tail -100 file  #显示file最后100行内容
tail -n +100 file  #从第100行开始显示file内容   


tail 还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:

tail -f logFile


对于更新的日志内容,会实时打印到终端上,方面查看实时日志。



指定顺序显示文本 –sort

sort 可用于对文本进行排序并显示,默认为字典升序。

例如有一段文本 test.txt 内容如下:

vim
count
fail
help
help
dead
apple


  1. 升序显示文本

    使用命令:
sort test.txt
apple
count
dead
fail
help
help
vim


文本内容将以升序显示。

2. 降序显示

相关参数 – r:

sort -r test.txt
vim
help
help
fail
dead
count
apple


  1. 去掉重复的行

    我们可以观察到,前面的 help 有两行,如果我们不想看到重复的行呢?可以使用参数 – u,例如:
sort -u test.txt
apple
count
dead
fail
help
vim


可以看到 help 行不再重复显示。

  1. 按照数字排序

    如果按照字典排序,10 将会在 2 的前面,因此我们需要按照数字大小排序:
sort -n file


由于本文篇幅有限,不在本文展开介绍,后续将单独介绍 sort 命令的妙用。



过滤显示文本 –sed

sed 是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。

  1. 显示匹配关键字行

    有时候查看日志,可能只需要查看包含某些关键字的日志行:
sed -n "/string/p" logFile


上面的命令表示打印包含 string 的行。

  1. 打印指定行
sed -n "1,5p" logFile #打印第1到5行
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
sed -n "10p" logFIle  #打印第10行




去重显示文本 –uniq

常见用法如下:

uniq file  #去除重复的行
uniq -c file #去除重复的行,并显示重复次数
uniq -d file #只显示重复的行
uniq -u file #只显示出现一次的行
uniq -i file #忽略大小写,去除重复的行
uniqe -w 10 file #认为前10个字符相同,即为重复




文本编辑查看 –vi

查看文件也很简单:

vi file


而从 vi 发展出来的被誉为编辑器之神的 vim 有着更加强大的功能,这里不作展开。



总结

文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用 man 命令查看。很多命令可以结合其他命令使用,例如 ps -elf|more,分页显示进程信息等等,更多用法可自行探索。