基础命令:find/grep/sed/awk/du/df/ps

find

find 属于全部匹配,如输入abc,不能查到abcd

find 默认采用递归搜索

按时间

find . -atime -1 ## 一天内访问过
find . -ctime -1 ## 一天内属性有修改
find . -mtime -1 ## 一天内内容有修改

查找比某个file新的文件:

find . -newer file

按大小

find . -size +10k ## 大于10k
find . -size -1G ## 小于1G

寻找深度

find . -maxdepth 2 -name 'xx' ## 搜索最大目录深度为2

过滤某些路径

dewan@wsl ~/tmp% find .
.
./2
./2/b
./1
./1/a
dewan@wsl ~/tmp% find . ! -path '2' ! -path '1'
.

拓展

正则,必须包含整个文件路径
与 xargs 配合
与 exec 配合
与 grep 配合
与 sed 配合

grep

-i -n -r -l -c -v -f

匹配换行符

grep -zoP '1.\n.2' file ## 包含1和2的相邻行,并打印 1之后,2之前的内容

sed

修改的同时备份

dewan Work ~/q% echo 123 > 1
dewan Work ~/q% cat 1
123
dewan Work ~/q% sed -i.bak 's/2/6/' 1
dewan Work ~/q% ll
总用量 8.0K
-rw-rw-r-- 1 dewan dewan 4 7月 31 15:04 1.bak
-rw-rw-r-- 1 dewan dewan 4 7月 31 15:05 1
dewan Work ~/q% grep -r .
1:163
1.bak:123

匹配某一字段,修改下一行

dewan Work ~/q% echo 111 >> 1
dewan Work ~/q% grep -r .
1:163
1:111
1.bak:123

dewan Work ~/q% sed '/163/ {n;s/111/222/}' 1
163
222

修改字符串元素顺序

dewan Work ~/q% echo a="1 2 3" > 1
dewan Work ~/q% cat 1
a="1 2 3"
dewan Work ~/q% sed 's/"(.) (.) (.*)"/"\2 \3 \1"/' 1
a="2 3 1

awk

-F 指定分隔符;$1指定第一个字段,依次类推;$0指定当前行;$NF指代字段总数

dewan@wsl ~/tmp% echo "1:2:3" > test
dewan@wsl ~/tmp% awk -F: '/1/{print ($1+$2)*$3 }' test
9

支持多个函数!支持if、while语句。

du/df

du -h --max-depth=2 ## 以KB、MB、GB为单位显示当前目录大小,递归深度为2
df -h . ## 显示当前目录所在磁盘总大小及使用情况

ps

ps -ef`
ps -e f # 树形显示

posted @ 2022-03-18 11:33  武平宁  阅读(171)  评论(0)    收藏  举报