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 # 树形显示