1. 查找文件或目录(find)
find [搜索范围] [选项] <根据选项决定>
:从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端- 常见选项
-name
:按文件名查找find /home -name "*.txt"
:查找/home下所有的txt文件
-user
:查找属于指定用户名的文件find /home -user root
:查找/home下所有属于root用户的文件
-size
:按照指定的文件大小查找文件find /home -size +20M
:查找/home下所有大于20M的文件find /home -size 20M
:查找/home下所有等于20M的文件find /home -size -20M
:查找/home下所有小于20M的文件
2. 快速定位文件路径(locate)
locate 搜索文件
:locate指令可以快速定位文件路径,它是利用事先建立的系统中所有文件名称以及路径的locate数据库实现快速定位给定的文件,无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须定期更新locate时刻。- 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用
updatedb
3. 显示命令及相关文件的路径(whereis)
whereis [] 命令名
:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
4. 在PATH变量中搜索指令位置(which)
which 可执行文件名
:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果
5. 过滤查找(grep)和管道符号(|)
-
grep [选项] 查找内容 源文件
:查找文件里符合条件的字符串grep "yes" dog.txt
:查找文件dog.txt中的目标字符串
-
常用选项
-n
:显示匹配行及行号-v
:显示不包含匹配文本的所有行-i
:忽略字母大小写
-
|
:管道符号表示将前一个命令的输出作为后一个命令的输入。- 组合使用:
cat hello.txt | grep -ni yes
:查找hello.txt的内容里是否包含字符串“yes”(cat可以一次连接多个文件,然后对其进行查找)
- 组合使用:
-
grep允许对文本进行模式查找,所谓模式查找,又被称为正则表达式
grep ^i.*d$ dog.txt
:查找以i开头,以d结尾的行