关于查找which、whereis、locate、find、grep

Linux查找命令which、whereis、locate、find、grep

前言:

我们在使用linux时,经常需要进行文件查找,以及找到文件后,对文件内容进行查找,以保证我们高效率的工作。
本文详细对文件查找命令whichwhereislocatefind
文档内容查找命令 grep 进行详解

文件查找命令

文件查找命令可分为whichwhereislocatefind

!!!∑(゚Д゚ノ) ノwhichwhereislocatfind
文件支持可执行文件二进制文件、帮助文件、源文档所有文件类型所有文件类型
查找方式环境变量PATH数据库索引数据库索引可指定路径,默认查当前路径和所有路径
查找原理查找所有PATH所指定的目录,寻找完全匹配filename的可执行文件数据库索引,对去除.之后的所有字符filename进行完全匹配数据库索引,绝对路径,部分匹配寻遍磁盘
查找速度
适用场景可执行文件的查找二进制文件、帮助文件、源文档模糊查找能使用前三种尽量不要使用这个,速度慢

Ps:文件查找方式是使用数据库索引的,需要在查之前使用updatedb更新索引,或者重启系统,否则有些新创建的文件查不到哦 !!!∑(゚Д゚ノ) ノ

1 . which的详细使用

-n <文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p <文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V (大写)显示版本信息。

[root@localhost var]# which useradd
/usr/sbin/useradd
[root@localhost var]# which touch
/usr/bin/touch

2 .whereis的详细使用

-b 只查找二进制文件。
-B <目录>  只在设置的目录下查找二进制文件。
-f 不显示文件名前的路径名称。
-m 只查找说明文件。
-M <目录>  只在设置的目录下查找说明文件。
-s 只查找原始代码文件。
-S <目录>  只在设置的目录下查找原始代码文件。
-u 查找不包含指定类型的文件。

flle:[root@localhost var]# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd
[root@localhost var]# whereis -b file1.txt
file1:[root@localhost var]# 查不到 

3. locate的详细使用

-i, --ignore-case – 忽略大小写
-c, --count – 只输出找到的数量
-b, --basename – 仅匹配路径名的基本名称
-d, --database DBPATH – 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
-e, --existing – 仅打印当前现有文件的条目

[root@localhost /]# locate -i file1.txt
/var/File1.txt
/var/file1.txt

4. find的详细使用

-name 文件名字
-atime 最近读取时间
-mtime 最近修改内容时间
-ctime 最近权限状态改动时间
amin : 最近打多少分钟被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-perm :按照 文件权限查找
-siz-大小 +5M就代表>5M 反之
-empty 为空的文件类型
-type 文件类型 f代表文件 d代表文件夹b代表设备文件 p管道 l代表链接 e 大小
-user 按照属主
-group按照属组

# find /etc -iname "fun*" -ok  -delete  #不区分大小写找到etc下名字是fun开头的文件删除

在这里插入图片描述

文件内容查找命令

grep的详细使用

Linux grep 命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

常用参数:
-c:只输出匹配行的计数。
-i:不区分大小写。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
--color=auto :可以将找到的关键词部分加上颜色的显示。

pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
*:所有字符,长度可以为0。


##显示passwd文件里包含关键字root的行
[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

##显示passwd文件里包含关键字root的行数
[root@localhost ~]# grep -c root /etc/passwd
2

##不区分大小写显示passwd文件里包含关键字root或“ROOT”的行
[root@localhost ~]# grep -i root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

##显示包含root关键的行及行号
[root@localhost ~]# grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

##不显示包含root关键字的行,并加入行号
[root@localhost ~]# grep -v -n  root /etc/passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync

##匹配包含关键词roo的行,并加行号
[root@localhost ~]# grep roo* -n  /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
17:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
21:chrony:x:998:996::/var/lib/chrony:/sbin/nologin

## 包含r开头h结尾内容的行,并加行号
[root@localhost ~]# grep -n 'r.*h'  /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
17:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
21:chrony:x:998:996::/var/lib/chrony:/sbin/nologin




  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king config

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值