平时使用ll(即ls -l)命令,不方便看出文件大小,可以改成ls -lh,h表示人类可读
crazyboy# ls -lh
total 2.3G
-rw-r--r-- 1 root root 109 Aug 6 10:01 admin_access.log
-rw-rw-rw- 1 root root 3.1K Aug 6 10:01 default.run.log.2021-08-06
-rw-rw-rw- 1 root root 2.3G Aug 9 00:09 xxx.run.log.2021-08-06
diff local.txt boe.txt -y -W 200 --suppress-common-lines
-y: 表示以并列的方式显示文件的异同之处
-W: 在使用-y参数时,指定栏宽,即对一个文本每行展示的字符数
--suppress-common-lines: 表示只展示有差异的行
<表示本文件比另一个文件少一行
>表示本文件比另一个文件多一行
|表示两个文件在同一行有差异

上图表示local.txt比boe.txt多了很多行
grep -A 10 'xxx' 2021-10-01.log 显示匹配行的后10行
grep -B 10 'xxx' 2021-10-01.log 显示匹配行的前10行
grep -C 10 'xxx' 2021-10-01.log 显示匹配行的前5行和后5行
grep -v 'sniffer' 2021-10-01.log 显示不匹配sniffer的行
lsof -p pid 查看一个进程打开了哪些文件
比如想要查询java进程的日志文件打在哪,可以先jps拿到进程id,再lsof -p pid
cut -c 1-n,取前1-n个字符
crazyboy# ll log.2021-09-07
-rw-rw-rw- 1 root root 52807680532 Oct 13 12:29 log.2021-09-07
crazyboy#
crazyboy# ll log.2021-09-07 | cut -c 1-5
-rw-r
grep时,如果某一行文本太长,很难找到所需内容,下面的语法可以打印匹配部分的前n个字符
grep -Eo ".{0,10}f18a079294194b79bb18cc81a196a38a.{0,10}" po.log
统计字符串出现次数
crazyboy#grep -o 'b4c79d0ca6204405a16dfc952e5dfdb8' po.log | wc -l
3
less命令,b向前翻一页,空格向后翻一页
网友评论