搜索行数linux指令,关于linux搜索的几个命令

1、locate命令

格式:locate [-d ][--help][--version][范本样式...]

作用:在后台数据库中搜索文件名。

参数说明:

-d或--database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。

--help  在线帮助。

--version  显示版本信息。

实例:

#查找passwd文件

locate passwd

其他说明:

locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。

locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库

2、whereis 命令

格式:whereis [-bfmsu][-B ...][-M ...][-S ...][文件...]

作用:只能搜索系统命令

参数说明:

-b  只查找二进制文件。

-B  只在设置的目录下查找二进制文件。

-f  不显示文件名前的路径名称。

-m  只查找说明文件。

-M  只在设置的目录下查找说明文件。

-s  只查找原始代码文件。

-S  只在设置的目录下查找原始代码文件。

-u  查找不包含指定类型的文件。

实例:

#查找php命令所在的位置

whereis php

#显示php命令的二进制程序

whereis -b php

#显示php命令的帮助文件

whereis -m php

3、which命令

格式:which [文件...]

作用:用于查找文件,which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

参数说明:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p  与-n参数相同,但此处的包括了文件的路径。

-w  指定输出时栏位的宽度。

-V  显示版本信息。

实例:

#查看指令php的绝对路径

which php

上面的指令执行结果:

/usr/bin/php #php可执行程序的绝对路径

其他说明:

shell中自带的命令,比如:cd pwd通过whereis和which搜索不到;在$PATH环境变量中的路径下的命令,在执行的时候可以不带路径。

4、find命令

格式:find [搜索范围] [搜索条件]

作用:在系统中搜索符合条件的文件名,完全匹配,如果需要匹配使用通配符进行匹配

参数说明:

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比文件 file 更晚被读取过的文件

-atime n : 在过去n天内被读取过的文件

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比文件 file 更新的文件

-ctime n : 在过去n天内被修改过的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

-type c : 文件类型是 c 的文件。

实例:

find /root -name install.log #区分大小写

find /root -iname install.log #不区分大小写

find /root -user root #搜索所有者是root的文件

find /root -nouser #搜索没有所有的文件

find /root -mtime +10 #查找修改时间是10天前的文件

find /root -mtime -10 #查找修改时间是10天内的文件

find /root -mtime -10 #查找修改时间是10天当天的文件

find /root -size +25k #搜索文件大于25k的文件

find /root -inum 262422 #查找i节点是262422的文件

find /root -size +20k -a -size -50k #查找root目录下大于20k小于50k的文件

find /root -size +20k -a -size -50k -exec ls -lh {} \ #查找root目录下大于20k小于50k的文件并显示详细信息

find . -name "*.c" #将目前目录及其子目录下所有延伸档名是 c 的文件列出来

find . -type f #将目前目录其其下子目录中所有一般文件列出

其他说明:

-a and 逻辑与,两个条件都满足

-o or 逻辑或,其中一个满足

搜索范围不要太大,否则会很浪费资源

搜索时需要模糊查询就要用到通配符

*-表示匹配任何内容

?表示匹配任意一个字符

[]-表示匹配其中的任意一个字符

实用场景:

服务器磁盘满,一般由大的日志文件导致,需找到大文件并删除。

find / -size +500M -print0|xargs -0 du -m|sort -nr

find指令为找出500M以上的文件,print0和xargs -0配合使用,用来解决文件名中有空格或特殊字符问题。du -m是查看这些文件的大小,并以m为单位显示。最后sort -nr是按照数字反向排序(大的文件在前)

5、grep命令

格式:grep [选项] 字符串 文件名

作用:用于查找文件里符合条件的字符串,在文件中搜索符合条件的字符串,包含匹配,如果需要匹配使用正则表达式匹配

参数说明:

-a 或 --text : 不要忽略二进制的数据。

-A 或 --after-context= : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。

-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。

-B 或 --before-context= : 除了显示符合样式的那一行之外,并显示该行之前的内容。

-c 或 --count : 计算符合样式的列数。

-C 或 --context=或- : 除了显示符合样式的那一行之外,并显示该行之前后的内容。

-d 或 --directories= : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

-e 或 --regexp= : 指定字符串做为查找文件内容的样式。

-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。

-f 或 --file= : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

-F 或 --fixed-regexp : 将样式视为固定字符串的列表。

-G 或 --basic-regexp : 将样式视为普通的表示法来使用。

-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。

-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。

-i 或 --ignore-case : 忽略字符大小写的差别。

-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。

-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。

-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。

-o 或 --only-matching : 只显示匹配PATTERN 部分。

-q 或 --quiet或--silent : 不显示任何信息。

-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。

-s 或 --no-messages : 不显示错误信息。

-v 或 --revert-match : 显示不包含匹配文本的所有行。

-V 或 --version : 显示版本信息。

-w 或 --word-regexp : 只显示全字符合的列。

-x --line-regexp : 只显示全列符合的列。

-y : 此参数的效果和指定"-i"参数相同。

实例:

#查找test.txt文件中包含有bbb字符串的行

grep "bbb" test.txt

#在当前目录中,查找后缀有.txt字样的文件中包含bbb字符串的文件,并打印出该字符串的行。

grep "ddd" *.txt

#从根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 "ERROR" 的行

find / -type f -name "*.log" | xargs grep "ERROR"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值