Linux 中常用的查询命令的小解

来源:互联网 发布:淘宝如何进入闲鱼 编辑:程序博客网 时间:2024/05/14 21:07

1.find命令

find功能极为强大,用法也变化多端。 在linux中你可以在控制台中使用 man find 进行查询。

例1:查找/usr/share/doc 目录下所有后缀是txt的文件:

find /usr/share/doc -name *.txt

例2:在/tmp目录下查找所有文件名为core的文件,并将其全部删除:

find /tmp -name core | xargs /bin/rm -f

例3:在你的目录中查找所有24小时内修改过的文件:

find  $HOME -mtime 0

例4:查找当前目录下所有664权限的文件:

find . -perm 664

2.locate命令

和find命令不同的是,locate命令在查找文件时,实际上是到一个数据库中区查找,而且只能按照文件名来查找。

这个数据库由updatedb命令生成的。在/etc/cron.daily 下面有个文件叫做 mlocate,每天运行一次,更新数据库。

3.grep命令

global search regular expression andprint out theline -- 全面搜索正则表达式并把它打印出来,是一种强大的搜索工具。

  1.从单个文件中查询指定的文字

grep "something" document
  2.在多个文件中检索文字

grep "something" FILE_PATTERN
grep "something" file_*
  3.用grep -i 进行大小写无关的搜索

grep -i "something" document
  4.使用正则表达式进行搜索

grep "REGEX" filename
  5.如果你能有效地利用正则表达式,这是很有用的。

在下面的例子中,搜索使用lines开始,以empty结束的字串,如搜索lines和empty结束的字符串,并且忽略大小写。

grep -i "lines.*empty" document
正则表达式遵循的几个重复操作      ? 最多匹配一次      *匹配零次或者任意多次      +匹配一次以上      {n}匹配n次      {n,}最少匹配n次      {,m}最多匹配m次      {n,m}匹配n到m次
  6.使用grep -w 搜索整个词,而不是词中的部分字串。

下列搜索"is"。如果不加-w选项,将显示"is","his","this"等所有包含"is"的行。
grep -iw "is" filename
  7.使用grep -r 递归搜索全部的文件

grep -r "ramesh" *
  8.使用grep -v 进行不匹配

可以使用-v 选项显示不匹配搜索字符串的行。下列显示filename中不包含的"go"的行

grep -v "go" filename
  9.用grep -n在输出时显示行号

grep -n "go" filename