1. locate 搜索功能-比windows的搜索命令更强
特点: 搜索速度很快。
格式: locate 文件名
功能: 搜索在后台数据库中按文件名进行搜索,搜索速度更快。
缺点: 不能按照文件大小,日期什么进行搜索,locate只能通过文件名进行搜索。
筛选规则: /etc/updatedb/conf
注意:对于新创建的文件是无法找到的,因为locate命令不会整个数据库 里去搜索,会在/var/lib/mlocate数据库中进行搜索;
mlocate的更新频率是1天1次,因此新建的文件是无法找见的;
当然,可以提前对该数据库进行强制更新,用updatedb命令强制更新数据库。
特殊情况:当特定目录下新建的文件名称与之前创建的文件名称相同,这样在使用locate时候,就还是无法找到该新建的文件,只会找到旧的,因为locate的搜索规则会遵循/etc/updatedb.conf该配置文件下的规则,该配置文件中规则中:
第一行:yes代表全部生效,no代表全部不生效。
第二行:第二行所包含的文件系统,都不搜索。
第三行:包含的关键字,都不进行搜索。
第四行:所列出的目录都不会进行搜索
2. whereis 命令名
功能:只能搜索系统命令,不能搜索文件。
选项:
-b:只查找可执行文件
-m:只查找帮助文件
3. which 命令名
功能: 出了查询到命令所在位置以外,还会查询到别名所在位置
例子: alias ls='ls --color=auto'
意味着在执行了ls基础上,还执行了color=auto的命令,我们看到不同的文件颜色就是有通过这个功能展示的。
注意:
1. 可以发现,在查询cd命令的时候,发现找不到命令,是因为cd是属于Linux相关的shell中封装的内置命令,并不是放在lib或者bin中的外置命令。所以找不到。新版本中可以在bin中找到了。
2. 在要执行命令时,实际执行的是脚本文件,在执行脚步文件的时候,需要执行脚本的绝对路径,那样的话调用起来非常麻烦,因此就有了环境变量的定义,类似于javac命令的编译执行。(echo $PATH :/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/seal/.local/bin:/home/seal/bin)这些目录都是配置的环境变量,在调用的时候,会现在这些路径下寻找该脚本。因此对于自己写的脚本,要不将自己写的脚本放在这些路径下,要不在执行的时候就需要执行绝对路径。
4. find 最为强大的搜索命令
格式: find [搜索范围] [搜索条件]
样式: find / -name install.log
选项:
a. find /root -iname install.log 不区分大小写(Linux是严格区分大小写的)
b. find /root -user root 按照所有者进行搜索
c.find /root -nouser查找没有所有者的文件(常用),任何重要文件都要有所有者,如果没有所有者,一般都是垃圾文件,但是要小心,内核产生的在proc和sys文件夹下产生的文件可能没有所有者,不用管。
d. find /var/log/ -mtime +10 查找10天前修改的文件
-10 10天内修改的文件
10 第10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
e. find /root -size +25k 查找大于25k的文件
+25k
25k 三个与其同理
-25k
M 按照MB字节进行查找
G 按照GB进行查找
注意:如果不设定单位的话,默认的是数据块,而且并不是格式化分割的数据快,是硬盘的扇区进行分割的,一般是默认512个字节。
扇区定义:
扇区示意图f. find /root inum 262421 通过i节点进行查询
g. find /root -size +20k -a -size +50
-a是与逻辑语:and
-o是或逻辑语:or
h.find /root -size +20k -a -size +50k-execls -lh{}\;
含义:蓝色字体的执行结果,通过-exec命令,交给ls -lh命令进行执行,{}\;是标准格式。
固定格式:执行查询获得结果 -exec 命令 {}\;
功能: 按照条件进行搜索
通配符:
a. * 匹配任意内容 find / -name "install.log*"(注意使用双引号扩起来)
b. ? 匹配任意一个单独字符
c.[] 匹配任意一个中括号内的字符
例如:有root下有abc和abd两个文件,执行find /root -name ab[cd]就会将两个文件全部找见。
使用注意:
a. 在搜索的时候,需要严格注意搜索范围,否则会浪费资源。
b.find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
5.gred 搜索字符串命令
格式: grep [选项] 字符串 文件名
功能: 在文件中查找匹配的字符串
选项: -i 忽略大小写
-v 排除指定字符串
与find区别:
find系统:在系统中搜索复合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
gred命令:在文件中搜索复合条件的字符次,如果需要匹配,使用正则表达式进行匹配,正则表达式包含匹配。
总结:find查文件的时候,用通配符匹配,gred用正则表达式匹配查询字符串。
网友评论