继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Linux终端命令接口(五)查找与搜索

largeQ
关注TA
已关注
手记 960
粉丝 92
获赞 585

一、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 这个程序;



作者:社会主义顶梁鹿
链接:https://www.jianshu.com/p/8aff04333290

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP