centos使用find和grep命令

作为一个ITer需要竟要使用到命令行,find和grep命令了解非常必要,下面说些常用方法


find

查找文件

find ./ -name 192.168.1.166_server_log #根据文件名查找

find . -type f -name "*.phtml" #根据文件后缀查找


查找目录

find / -type d -name games


根据文件权限查找

find . -type f -perm 0777 -print #输出权限是777的文件

find / -type f ! -perm 777 #找出所有权限不是777的文件

find / -type f -perm 0777 -print -exec chmod 644 {} \; #把所有777权限文件改为644权限

-perm -2 如果xxx全面是“-”表示other必须包含写权限,“+”表示其中u,g,o任何地方包含即可

find / -type f -perm -2 -o -perm -20 | xargs ls -al 查看所有other权限包含2或者group包含2权限的文件


根据文件的创建和修改时间

mtime 修改时间

ctime 创建时间

atime 访问时间

find / -mtime 50 #查找修改文件日期为50天的文件

find / -mtime +50 �Cmtime -100 #查找文件修改时间大于50天小于100天的文件


根据文件大小查找

find / -size +50M -size -100M #查找文件大于50M小于100M的文件

find ./ -mmin -60 #60分钟内的

find /home -name tmp.txt -maxdepth 4 #列出/home内的tmp.txt 查时深度最多为3层

find -empty


查找条件逻辑关系(and|or)

-a 表示条件间的并关系

-o表示条件的或关系




find /var/www/html/ -type f -print|xargs grep -l zabbix_logo 查找指定目录含有zabbix_logo字段的文件



grep

grep-n'word'aaa.txt#显示匹配到关键字内容行号
grep-w"word"xxxx.txt#-w指定的字符的完整单词
grep-eaaa-ebbbba.txt#过滤“txt”里面带有aaa和bbb的行


grep过滤后显示正则匹配到部分

过滤出“IP:port”这样的字符串
grep-E-o"([0-9]{1,3}[\.]){3}[0-9]{1,3}\:[0-9]{1,4}"/tmp/ip.data>/tmp/proxy.txt

里面正则是这样写的

(匹配0-9的数字1~3次后面是“.)前面这段重复3次,后面继续是(匹配0-9的数字1~3次)

后面加“:”,(匹配0-9的数字1~4次)


grep过滤关键字的上下一定范围

grep-C5'myword'pdo.PHP查找包含myword及其上下5行内容
grep-A5'myword'pdo.PHP包含myword的行和它下面的5行
grep-B5'myword'pdo.PHP包含myword的行和它上面的5行

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native