本系列文章为尚硅谷武晟然老师的Linux入门教程学习笔记,前面的系列文章链接如下
Linux入门教程:P3->Linux文件系统
Linux入门教程:P4->Vim编辑器
Linux入门教程:P5->网络配置
Linux入门教程:P6->系统管理
Linux入门教程:P7->Shell介绍
Linux入门教程:P8->文件目录类
Linux入门教程:P9->时间日期类
Linux入门教程:P10->用户权限类
一、find 查找文件或者目录
find
功能: find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
基本语法:find [搜索范围] [选项]
选项说明:
-name<查询方式>
:按照指定的文件名查找模式查找文件
-user<用户名>
:查找属于指定用户名所有文件
-size<文件大小>
:按照指定的文件大小查找文件,单位为:
b —— 块(512 字节)
c —— 字节
w —— 字(2 字节)
k —— 千字节
M —— 兆字节
G —— 吉字节
在文件大小前要加上+
或-
或=
,代表大于、小于、等于文件大小。
示例: 当前目录下有个info文件,我在公共目录下也创建一个info文件,最后使用find -name info
查找info文件。可以看出成功将两个info文件列举出来。
我们还可以指定查找范围,我们这里指定范围为/root/公共
示例: 我们不光能够查找对应名字的文件,还可以按照名字的模式来查找。比方说我们最常用的星号就可以表示一个通配符,所有类似的文件都可以指定。现在我们使用find /root -name "*.cfg*
查找root目录下的所有.cfg文件,可以看到包括隐藏文件也查找出来了。
示例: 使用命令find /home -user tony
查找/home
目录下的属于tony用户的文件。
示例: 根据文件大小来查找。我们可以ll
查看文件的大小
这样看着不太好看,可以使用ll -lh
现在使用find -size +1M
来查看当前目录下大于1M的文件。
二、locate 快速定位文件路径
locate
功能: locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
基本语法:locate 搜索文件
经验技巧: 由于locate
指令基于数据库进行查询,所以第一次运行前,必须使用updatedb
指令创建locate数据库。(如果有错误说明没安装locate数据库,yum -y install mlocate)
示例: 使用locate tmp
查找所有带tmp的文件和目录。
查找命令:
①使用which
命令。我们这里使用which ls
查找ls、locate、which命令的位置。
②使用whereis
命令。我们这里使用whereis ls
查找ls、locat、whereis命令的位置。
三、grep 过滤查找及“|”管道符
grep
功能: 前面的locate、find命令都是查找文件名,而grep是在文件里面去查找指定的内容,有点类似于在vim中的命令行模式下去搜索指定内容。
基本语法:grep 选项 查找内容 源文件
选项说明:-n
显示匹配行及行
示例: initial配置文件里面有一些boot,我们使用grep -n boot initial-setup-ks.cfg
在该文件中查找boot,并显示行号。
管道符
功能: 管道符
|
表示将前一个命令的处理结果输出传递给后面的命令处理,通常搭配grep使用。
示例: 目前桌面有两个.cfg文件,于是我们使用ls | grep .cfg
来筛选出ls出来的文件和目录中以.cfg结尾的文件。
示例: 前面我们统计了initial文件中的boot,现在我们想统计boot出现的次数。我们这里需要使用wc命令,wc就是word count的意思。比如我想统计info文件,可以使用wc info
看出统计出行数、单词数、字节数信息。
现在我们将grep
、|
、wc
命令结合使用,统计initial文件中boot出现的次数。可以看到出现了8次。