Linux搜索命令

LINUX 搜索命令

1:whereis

whereis 是搜索系统命令的命令(像绕口令一样),也就是说,whereis 命令不能搜索普通文件.

而只能搜索系统命令。whereis 命令的基本信息如下。

命令名称:whereis。

英文原意:locate the binary, source, and manual page files for a command。

所在路径:/usr/bin/whereis。

执行权限:所有用户。

功能描述:查找二进制命令、源文件和帮助文档的命令。

 

2:which  命令

which 也是搜索系统命令的命令。和 whereis 命令的区别在于:

whereis 命令可以在查找到二进制命令的同时,查找到帮助文档的位置;

而 which 命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。

which 命令的基本信息如下:

命令名称:which。

英文原意:shows the full path of (shell) commands。

所在路径:/usr/bin/which。

执行权限:所有用户。

功能描述:列出命令的所在路径。

3 :locate  命令

3.1 基本用法

locate 命令才是可以按照文件名搜索普通文件的命令。

优点:按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db,

可以使用 updatedb 命令强制更新数据库。

 缺点:只能按照文件名来搜索文件,而不能执行更复杂的搜索,比如按照权限、大小、修改

时间等搜索文件。

locate 命令的基本信息如下。

命令名称:locate。

英文原意:find files by name。

所在路径:/usr/bin/locate。

执行权限:所有用户。

功能描述:按照文件名搜索文件。

Updatedb //强制更新数据库

 

4:find

功能描述:在目录中搜索文件。

4.1 按照文件名搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

-name: 按照文件名搜索

-iname: 按照文件名搜索,不区分文件名大小写

-inum: 按照 inode 号搜索

 

4.2.按照文件大小搜索

find 搜索路径 [选项] 搜索内容

选项:-size [+|-]大小:  按照指定大小搜索文件

 

4.3 按照修改时间搜索

Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件。

-atime [+|-]时间:  按照文件访问时间搜索

-mtime [+|-]时间:  按照文件数据修改时间搜索

-ctime [+|-]时间:  按照文件状态修改时间搜索

-5:代表 5 天内修改的文件。

5:代表前 5~6 天那一天修改的文件。

+5:代表 6 天前修改的文件。

 

4.4 按照权限搜索

-perm 权限模式: 查找文件权限刚好等于“权限模式”的文件

-perm -权限模式: 查找文件权限全部包含“权限模式”的文件

-perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件.

+444 只要有一个比4打就能查到

-444  所有的都要比4大

 

4.5 按照所有者和所属组搜索

find 搜索路径 [选项] 搜索内容

选项:

-uid 用户 ID:  按照用户 ID 查找所有者是指定 ID 的文件

-gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件

-user 用户名:  按照用户名查找所有者是指定用户的文件

-group 组名:  按照组名查找所属组是指定用户组的文件

-nouser:  查找没有所有者的文件

按照所有者和所属组搜索时,“-nouser”选项比较常用,主要用于查找垃圾文件。

 

4.6 按照文件类型搜索

-type d:  查找目录

-type f:  查找普通文件

-type l:  查找软链接文件

find . –type d

 

4.7  逻辑运算符

-a: and 逻辑与

-o: or 逻辑或

-not: not 逻辑非

(1)-a:and 逻辑与

find 命令也支持逻辑运算符选项,其中-a 代表逻辑与运算,也就是-a 的两个条件都成立,find 搜

索的结果才成立。举个例子:

[root@localhost ~]# find . -size +2k -a -type f

# 在当前目录下搜索大于 2KB ,并且文件类型是普通文件的文件

(2)-o:or 逻辑或

-o 选项代表逻辑或运算,也就是-o 的两个条件只要其中一个成立,find 命令就可以找到结果。例

如:

[root@localhost ~]# find . -name cangls -o -name bols

./cangls

./bols

# 在当前目录下搜索文件名要么是 cangls 的文件,要么是 bols 的文件

(3)-not:not 逻辑非

-not 是逻辑非,也就是取反的意思。举个例子:

[root@localhost ~]# find . -not -name cangls

# 在当前目录下搜索文件名不是 cangls 的文件

 

4.8 grep(正则表达式)

grep在文件中搜索字符串.

[root@localhost ~]# grep [选项] "搜索内容" 文件名

选项:-i: 忽略大小写

-n: 输出行号

-v: 反向查找

--color=auto:  搜索出的关键字用颜色显示

grep --color=auto EXEC con.sqx

4.9  find与grep的区别

find 也是搜索命令,那么 find 命令和 grep 命令有什么区别呢?

(1)find 命令

find 命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,通配符

是完全匹配(find 命令可以通过-regex 选项,把匹配规则转为正则表达式规则,但是不建议如此)。

(2)grep 命令

grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配,

正则表达式是包含匹配。

 

(3)通配符与正则表达式的区别

通配符:用于匹配文件名,完全匹配

通 配 符  作 用

?  匹配一个任意字符

*  匹配 0 个或任意多个任意字符,也就是可以匹配任何内容

[]  匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c

[-]  匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母

[^]  逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符

 

正则表达式:用于匹配字符串,包含匹配

正 则 符  作 用

?  匹配前一个字符重复 0 次,或 1 次(?是扩展正则,需要使用 egrep 命令)

*  匹配前一个字符重复 0 次,或任意多次

[]  匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c

[-]  匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母

[^]  逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符

^  匹配行首

$  匹配行尾

 

4.10 管道的用法 |

命令格式: 命令1 | 命令2

命令 1 的正确输出作为命令 2 的操作对象

find . –name “*.h”|xargs grep “abc”

find . –name “*.h” -> | 管道运算符查找结果为字符串放入,后面命令的缺失选项中。

[root@localhost ~]# ll -a /etc/ > /root/testfile

# 用输出重定向,把 ll 命令的输出保存到 /root/testfile 文件中

ll -a /etc/ | more  显示/etc下面所有文件 | more显示出来

 

4.11:网络状态命令

netstat [选项]

选项:

-a: 列出所有网络状态,包括 Socket 程序

-c 秒数:  指定每隔几秒刷新一次网络状态

-n: 使用 IP 地址和端口号显示,不使用域名与服务名

-p: 显示 PID 和程序名

-t: 显示使用 TCP 协议端口的连接状况

-u: 显示使用 UDP 协议端口的连接状况

-l: 仅显示监听状态的连接

-r: 显示路由表

netstat -an | grep "ESTABLISHED" | wc -l

统计网络连接的数量

posted @ 2019-08-18 17:26  INSTANCE_SELF  阅读(525)  评论(0编辑  收藏  举报