在使用Linux的过程中linux命令大全,最常做的操作就是对文件/文本进行一些处理。本文简单介绍下Linux中常用的文本处理命令,主要包括以下命令: find / grep / sort / cut / awk / sed / uniq / tee / tr / diff / cmp / split / xargs,下面依次介绍。
find
命令说明: 查找符合条件的文件,并执行指定的操作
命令格式: find [指定目录] [查找规则] [指定操作]
1.1 指定目录
[dir1 dir2] # 可以指定多个目录
1.2 查找规则
[-name] # 根据文件名查找 (区分大小写|支持通配符)
[-iname] # 根据文件名查找 (不区分大小写|支持通配符)
[-user] # 根据所属用户查找
[-group] # 根据所属用户组查找
[-nouser] # 查找无所属用户的文件
[-nogroup] # 查找无所属用户组的文件
[-uid] # 根据用户ID查找
[-gid] # 根据组ID查找
[-a] # AND 连接两个条件
[-o] # OR 连接两个条件
[-not] # NOT 对条件取反
[-atime -n/+n] # 按文件访问时间 (n天以内 / n天以前)
[-ctime -n/+n] # 按文件创建时间 (n天以内 / n天以前)
[-mtime -n/+n] # 按文件修改时间 (n天以内 / n天以前)
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件。f#查是块设备、目录、字符设备、管道、符号链接、普通文件。答: 其实管道的使用方法与文件类似,都能使用read,write,open等普通io函数. 管道描述符来类似于文件描述符. 事实上, 管道使用的描述符,文件指针和文件描述符最终都会转化成系统中socket描述符. 都受到系统内核中socket描述符的限制. 本质上linux内核源码中管道是通过空文件来实现.faq2: 管道的使用方法。
[-size 2M/+2M/-2M] # 按文件大小 (等于2M / 大于2M / 小于2M)
[-perm 755] # 按文件权限 (755权限)
1.3 指定操作
{} # 代表找到的文件
[-print] # 查找后打印结果 (默认操作)
[-ls] # 查找后把结果列表显示
[-ok] # 查找后询问用户是否执行命令
[-exec] # 查找后不询问直接执行命令
1.4 举例说明
要求:查找 (/data/ 和 /www/) 目录下的后缀名为 (.php 或 .sh) 且创建时间在 5天之内 的 普通文件 并 重命名。
[命令1]
find /data/ /www/ -name ".php" -o -name ".sh" -ctime -5 -type f -exec mv {} {}.bak ;
说明:以上命令 [-exec] ,只会对满足 .sh 规则的文件进行重命名操作linux命令大全,而忽略了 -o 条件查找出来的 .php 文件,因此并不能满足要求,另外一定要注意命令结尾的空格和 ; 。
[命令2]
find /var/www/ -type f -name "*.php" | xargs grep "eval(" |more。find . -type f -name '*.jsp' | xargs grep -i 'gethostaddress'。find ${findpath} -name "*.php" -ctime -3 -type f -exec ls -l {} \。