|
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。 全文本显示--catcat可能是常用的一个文本查看命令了,使用方法也很简单: cat file #全文本显示在终端, G* q) I% |" b1 [cat -n file #显示全文本,并显示行号 另外,cat也可用作合并文件: cat file1 file2 >file3" r! ]$ K1 N v该命令将file1 file2的内容合并写到file3中。 倒序显示全文本--tactac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。 tac file2 o( O" P2 C2 O" d/ \* z分页显示文本--more cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。 more file2 ~# x, d9 H- O3 x4 g! i9 |1.显示内容 之后,就可以使用按键来查看文本。常用按键如下: 回车 #向下n行,默认为1行空格 #向下滚动一屏' C8 F% o7 \7 M" Q. G- ^ b #向上滚动一屏 = #输出当前行号, f2 O' N, E7 }" L- H" [ :f #输出当前文件名和当前行号7 d2 _- S0 E0 ?5 ~0 v C3 \9 c q #退出! H; W: K( O0 y0 | 2.从指定行开始显示 more +10 file该命令从第10行开始显示file的内容。 3.从匹配的字符串行开始显示 more +/string file该命令从有string的行的前两行开始file的内容。 任意浏览搜索文本--lessless命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。 less file #浏览file s S5 [6 R7 p1 \常见使用方法: less -N file #浏览file,并且显示每行的行号% n5 x8 S# n7 G& q less -m file #浏览file,并显示百分比$ r) ^# ]2 U" ?' x; s 常用按键如下: f #向前滚动一屏0 o; z7 a, H. P o) Fb #向后滚动一屏 回车或j #向前移动一行 k #向后移动一行; i' D7 W6 } o( I, [ G #移动到最后一行 g #移动到第一行6 z1 E1 H3 E8 R: M& J /string #向下搜索string,n查看下一个,N查看上一个结果 ?string #向上搜索string,n查看下一个,N查看上一个结果 q #退出 相比more命令,less命令能够搜索匹配需要的字符串。: q/ e. h+ L% T& R6 z less file1 file2 file3另外,less还能在多个文件间切换浏览: :n #切换到下一个文件5 L% j5 U2 }& L+ s* M) T \. l6 W( R :p #切换到上一个文件/ D H) L4 [" k, v. D+ P :x #切换到第一个文件! t5 r- {' i- ?+ Z" l+ N :d #从当前列表移除文件 显示文本头部内容--head head命令的作用就像它的名字一样,用于显示文件的开头部分文本。 head -n 100 file #显示file的前100行常见用法如下: head -n -100 file #显示file的除最后100行以外的内容。 ; e" G( D: l& X ~0 ^8 g7 _2 n4 s 显示文本尾部内容--tail 和head命令类似,只不过tail命令用于读取文本尾部部分内容: tail -100 file #显示file最后100行内容+ X4 v3 w1 q. ]tail -n +100 file #从第100行开始显示file内容 + R' Q3 |6 H! t7 f) z. l ~ tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令: tail -f logFile2 `6 ?7 s# s- W8 @, r对于更新的日志内容,会实时打印到终端上,方面查看实时日志。 指定顺序显示文本--sortsort可用于对文本进行排序并显示,默认为字典升序。1 O( k' [# v9 \3 h vim例如有一段文本test.txt内容如下: count( t8 y: W0 o: R! O fail7 ]: y' ], l! u& d# I help' [: B+ Q/ t" H$ c5 r1 T4 B help2 W- _" t3 }, c& ` dead apple. f V# f3 T! k* \, b$ a* g 1.升序显示文本 sort test.txt+ V0 J" g# A' n* q0 u: E使用命令: apple& q/ |" K" F z% g9 f count4 [9 ?8 \# F" A( q$ g" g/ g dead fail help help vim 文本内容将以升序显示。 sort -r test.txt2.降序显示3 d F# c( E; W 相关参数-r: vim help help* j7 p; I: H) q6 m" e9 H! l fail+ ~7 N" q% d5 x5 ~6 \ dead count" u) s3 x9 d, Q/ i6 Q1 k3 @ apple2 N1 H7 t, M% C4 N, l" M0 _3 c 3.去掉重复的行5 x4 k( C% k1 g- r sort -u test.txt' x% g4 B9 |5 D4 `' p我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如: apple( W: v, B' U& W n- T+ L3 e; i count dead0 q+ N- J3 A% \9 D Q fail help9 k9 S' l p7 b5 l( E7 B9 s vim5 s4 c$ e X ]' I 可以看到help行不再重复显示。 4.按照数字排序 sort -n file3 V0 n- {# }! Y) y如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序: 由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。 过滤显示文本--sedsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。 sed -n "/string/p" logFile6 ]; ?! [' J" |2 |) [1.显示匹配关键字行 有时候查看日志,可能只需要查看包含某些关键字的日志行: 上面的命令表示打印包含string的行。 2.打印指定行 sed -n "1,5p" logFile #打印第1到5行sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号 sed -n "10p" logFIle #打印第10行去重显示文本--uniq 常见用法如下: uniq file #去除重复的行% h) i/ _9 }5 h6 K8 d1 ], huniq -c file #去除重复的行,并显示重复次数/ e; ~' C( u+ F1 Q- D uniq -d file #只显示重复的行 uniq -u file #只显示出现一次的行 uniq -i file #忽略大小写,去除重复的行; i/ a0 c! K r6 b uniqe -w 10 file #认为前10个字符相同,即为重复$ M+ A% b& K+ d& p( y 文本编辑查看--vi 查看文件也很简单: vi file而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。 玩游戏练习Vim :https://vim-adventures.com/ 总结文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。 |
微信公众号
手机版