Linux常用命令 | 文本查看相关

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

一、全文本显示--cat

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

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

另外,cat也可用作合并文件:该命令将file1 file2的内容合并写到file3中。

cat file1 file2 >file3

二、倒序显示全文本--tac

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

tac file

三、分页显示文本--more

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

more file

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

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

2.从指定行开始显示

more +10 file

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

3.从匹配的字符串行开始显示

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

3.去掉重复的行
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:

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

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

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

# -n, --numeric-sort
sort -n file

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

八、过滤显示文本--sed

sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
1.显示匹配关键字行
有时候查看日志,可能只需要查看包含某些关键字的日志行:

sed -n "/string/p" logFile

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

2.打印指定行

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

九、去重显示文本--uniq

NAME
       uniq - report or omit repeated lines

SYNOPSIS
       uniq [OPTION]... [INPUT [OUTPUT]]

DESCRIPTION
       Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).

       With no options, matching lines are merged to the first occurrence.

       Mandatory arguments to long options are mandatory for short options too.

       -c, --count
              prefix lines by the number of occurrences

       -d, --repeated
              only print duplicate lines

       -u, --unique
              only print unique lines

       -i, --ignore-case
              ignore differences in case when comparing

       -D, --all-repeated[=delimit-method]
              print all duplicate lines delimit-method={none(default),prepend,separate} Delimiting is done with blank lines.

       -f, --skip-fields=N
              avoid comparing the first N fields

       -s, --skip-chars=N
              avoid comparing the first N characters

       -z, --zero-terminated
              end lines with 0 byte, not newline

       -w, --check-chars=N
              compare no more than N characters in lines

       --help display this help and exit

       --version
              output version information and exit

       A field is a run of blanks (usually spaces and/or TABs), then non-blank characters.  Fields are skipped before chars.

       Note:  ’uniq’ does not detect repeated lines unless they are adjacent.  You may want to sort the input first, or use ‘sort -u’ without ‘uniq’.  Also, comparisons honor the rules
       specified by ‘LC_COLLATE’.

常见用法如下:

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容