操作系统

linux命令技巧

2021-08-08  本文已影响0人  修行者12138

平时使用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: 表示只展示有差异的行
<表示本文件比另一个文件少一行
>表示本文件比另一个文件多一行
|表示两个文件在同一行有差异


image.png

上图表示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向前翻一页,空格向后翻一页

上一篇 下一篇

猜你喜欢

热点阅读