0.管道 |
将前面命令的标准输出传递给管道作为后面的标准输入
1.文件查找 find
find 进行文件查找时,默认进行递归查找,会查找隐藏目录下的文件
1.1 用法
# find 查找路径 查找条件...
-type // 文件类型 f 普通文件 b 设备 d 目录 l 链接文件
-size // 文件大小 【+[大于] -[小于]】【KMG】
-group // 组名,属组
-user // 用户名,属主
-empty // 空文件或者目录
-mtime // 根据n天前修改内容的文件
-maxdepth // 查找层级目录 -maxdepth 1 只查找当前目录下的内容
-perm // 根据权限查找
1.2 单条件查找
示例1
PS:用无限资源设备在/home下生成一个30m大小的文件test.file
dd if=/dev/zero of=/home/test.file bs=1M count=30
<1> 找出/home下大于20m的文件
find /home size +20M
1.3 查找后条件处理
示例2
查找后的处理
-ok //进行交互式,会询问
-exec //直接处理
# find 查找路径 查找条件 -exec 处理动作 {} \; {}代表前面查找的内容\; 代表命令结束
<2> 找出系统下属主是zhangsan,属组是HR的文件,并将其权限改为666
find / -user zhangsan -group HR -exec chmod 666 {} \;
1.4 多条件查找
and ==> 与 // find查找时添加多个条件 默认为and,两个条件需要同时满足
or ==> 或 // -o 只需要满足其中一个条件
! ==> 非 // 不满足这个后面的条件
示例3
<3> 在/root目录下,找到用户权限为rw或者文件类型为普通文件的文件
find /root -type f -o -perm u=rw
示例4
<4> 在/etc下统计链接文件除外的其它文件
# find /etc ! -type l | wc -l // ! 取反
2.过滤 grep
2.1 用法
# grep [选线] 关键字 文件 // 打印出匹配到关键字的行
2.2 关键字
示例5
<5>在/etc/passwd 文件中过滤以root开头的行
以bash结尾的行
2.3 选项
示例6
<6> 统计系统内不能正常登录的用户有哪些
分析:正常登录用户在/etc/passwd文件中以/bin/bash结尾,反之剩下的就是不能正常登陆的,-v取反之后,并用-c统计对应数量。
grep -v -c "/bin/bash$" /etc/passwd