Linux终端命令接口(五)查找与搜索
一、find 查找 指令将从指定目录下向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端。
find [搜索范围][选项] eg: find /home -name "*.txt" 在home文件下查找名字为‘txt’的文件
-name 按照指定的文件名查找模式查找文件 eg:find /home -name hello.txt 根据名称查找/home 目录下的hello.txt文件
-user 查找属于指定文件名所有文件 eg:find /opt -user nobody 查找/opt目录下,用户名称为nobody的文件
-size 按照指定的文件大小查找文件 eg:find / -size +20M find / -size -20M find / -size 20M 查找整个linux系统下大于20M的文件(+n 大于、-n小于、 n等于)注意:M大写
二、locate 是find -name的另一种写法
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
三、grep 搜索
-c 只输出匹配行数量,即文件中有几行含有搜索的关键字
-v 显示不包含匹配文件的所有行,
-n 同-c相反-n#列出所有的匹配行,并显示行号
-i 搜索时忽略大小写,使得搜索对大小写不敏感
-h 查询多文件时不显示文件名,不加的话,搜索结果前面多文件时会显示文件名
-l 只列出符合匹配的文件名,而不列出具体的匹配行,即只说哪些文件里面有关键词
-s 不显示不存在或无匹配文本的错误信息,默认如果多文本搜索时,若有文件没有关键词会输出信息的
-w 匹配整词,字符都被解释为字面意思,不会被解释为特殊含义,比如"*"
-x 匹配整行,同上
-r 递归搜索,不仅搜索当前工作目录,而且搜索子目录
-q 禁止输出任何结果,以推出状态表示搜索是否成功
-b 打印匹配行距文件头部偏移量,以字节为单位
-o#和-b选项结合使用,打印匹配的词距文件头部的偏移量,以字节为单位,加了这个以后就-E#支持扩展的正则表达式
-F 不支持正则表达式,按照字符串的字面意思进行匹配
grep搜索的时候,可以是字符,也可以是变量,还可以是正则表达式。但是无论哪种模式,只要其中包含空格,就需要用双引号将模式引出来,因为如果不加上空格的话,空格后的单词容易被误认成为文件名 。
1、匹配行首"^"
grep ^-*.txt#匹配.txt文件中以“-”开头的行
grep -c ^$ *.txt#在txt文件中有多少空白行
grep -c ^[^$] *.txt#在txt文件中有多少非空白行,第二个“^”表示的是取反的意思
2、大小写问题
grep [Cc]ertificate *.txt 表达C不区分大小写,如果都不区分的话,可以用下面的指令
grep"certificate" *.txt
3、匹配未知的字"." "*"
grep ^/..../*.txt#匹配以“/”字符开始,中间四个任意字符后再跟“/”
grep ^-*B *.txt#匹配以“-”字符开始任意个“-”以后,紧跟B的意思
4、转义符""
试想一种情况,就是我们要搜索bupt.edu.cn这个字符串,注意03中“.”是作为任意字符的,所以我们需要把它标记出来,使用的方法就是""。
注意 :“-”也需要转移哟
grepbupt\.edu\.cn*.txt#搜索的是bupt.edu.cn
5、或“|”
grep -E"OU|seu"#匹配OU或者seu
这部分不加-E,则|理解为字面 ,OU|seu两侧的引号也是必不可少的
四、cat 、tac 查找 cat用于较少的文件展示 tac 倒序查询
-n 对所有输出行进行编号
-b 与-n相似,但空白行不编号
例:$ cat file1 file2 file3 同时显示三个文件
$cat –b file1 file2 file3
五、head 查找
eg: head -10 具体文件路径 会显示前10行'
六、tail 查找
eg: tail - 10 具体文件路径 会显示后10行
七、more 查找 从前向后展示
-num:每页显示多少行内容
+num:从多少行开始显示
eg: more +2 -2 test.txt 从第2行开始,每页显示2行数据阅读test.txt文件
八、less 查找 从后向前展示 具体搜索高量显示
•less的功能和more相似,但是使用more无法向前翻页,只能向后翻。
•less可以使用【pageup】和【pagedown】键进行前翻页和后翻页,这样看起来更方便。
•less还有一个功能,可以在文件中进行搜索你想找的内容,假设你想在passwd文件中查找有没有weblogic字符串,那么你可以这样来做:•[root@redhat etc]# less passwd
•然后输入:/weblogic 再回车,此时如果有weblogic字符串,linux会把该字符已高亮方式显示。
搜索功能
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;