最新在看《Linux And Unix shell Programing 》,避免看完之后忘记,以后每看一部分都记录下。今天主要记录下linux下

最常用的两个命令grep和find。

一、Grep命令

grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

查找文件中包含某个关键词的行;

常用选项:
  1. -c : 只输出匹配的行数
  2. -i : 查找不区分大小写
  3. -n: 显示匹配的行号
  4. -v: 显示不包含关键词的行
  5. -A Num: 显示匹配的行及其后面num行
  6. -B Num: 显示匹配的行及其前面的num行
  7. -r:  如果遇到目录递归查询
  8. -E :正则表达式扩展
常见的用法

grep keyword -r * # 在当前目录及其子目录下查找包含keyword的行

grep --exclude="*\.svn*" keyword -r  *  #功能同上,但是不查找.svn文件

#正则表达式

grep  ‘48[34]’ your_file #查找包含483或者484的行

grep '4\{3,8\}' your_file #查找包含3个到8个4的行

grep -E  '216|329' your_file  #包含216或者329的行

#和其它程序配合使用

ps  aux | grep apache2 | grep -v grep #查找apache2相关进程

二、Find命令

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

在目录中查找文件

常用选项:
  1. -name: 按照文件名来查找
  2. -type: 按照文件类型查找(b: block  d: directory  )
  3. -perm: 按照权限来查找
  4. -user: 按照文件属主来查找
  5. -group: 按照组来查找
  6. -mtime +n -n: 按照修改时间来查找,-n代表n天以内的修改的文件,+n代表n天以前的修改的文件
  7. -newer fil1 !file2 : 查找比file1新的文件,但是比file2旧的文件
  8. -size n c: 按照文件大小查找,带c表示以字节计算
  9. -exec:  当匹配到文件后,执行某些命令,该命令以 {} \;结束,如果在执行命令前需要确认,请加-ok选项
常见的用法

find . -name "*.txt" -print  #在当前目录及其子目录中查找以.txt文件为后缀的文件

find . -type d -print #查到当前目录中的目录文件

find . -mtime +5  -name "*.log" -exec rm {} \; #删除5天前得日志

find . -mtime +5  -name "*.log" -ok rm {} \; #功能同上,但是删除前会确认
来自yaronspace.cn  本文链接:http://yaronspace.cn/blog/archives/1511