Linux常用命令(四)

本文介绍了Linux系统中常用的文件搜索命令,如find、which、whereis、locate及grep等的功能与用法,并通过实例展示了如何高效地进行文件查找与内容检索。
1.命令名称:find
英文原意:
命令所在路径:/bin
执行权限:所有用户
功能描述:按条件搜索
使用:find 搜索范围  匹配条件
选项:
-name按名称搜索
-iname  按名称搜索(不区分大小写)

-size   按照大小搜索

-and连接两个条件,同时满足

-or连接两个条件,满足其一即可

-type按照文件类型搜索

-user按照所有者搜索

-group按照所属组搜索
-amin按照访问时间搜索
-cmin按照文件内容的修改时间

-mmin按照文件属性的修改时间


e.g.:

find /etc -name init

搜索etc目录下,所有文件名称为init的文件

find /etc -iname init

搜索etc目录下,所有文件名称为init的文件(不区分大小写)

find /etc -name *init

搜索etc目录下,所有以init结尾的文件

注意:通配符*代表0个一个或多个字符,?代表一个字符

find /etc -size +2048

搜索etc目录下,所有文件大小大于1M的文件

注意:

1)+n代表大于n,-n代表小于n,n代表等于n

2)文件的大小适宜数据块的个数为单位的

1数据块=0.5k=512B

   所以1k=2数据块,1024k=2048数据块

find /etc -name init -a -size +2

搜索etc目录下,所有文件名称为init并且大小大于1k的文件

find /tmp -name test -a -type d

搜索tmp目录下所有名称为test的目录

注意:type后面的选项

d 目录

l 链接

f 文件

find /home -user test

搜索home目录下所有所有者为test的文件

find /home -group test

搜索home目录下所有所属组为test的文件

find /home -amin -5 

搜索home目录下5分钟内访问过的文件

find /etc -name init -a -size +2 -exec ls -ld {} \;

搜索etc目录下所有文件名为init,大小大于1k的文件并且以ls -ld的命令显示出来

find /etc -name init -a -size +2 -ok ls -ld {} \;

搜索etc目录下所有文件名为init,大小大于1k的文件并且询问每个文件是否以ls -ld的命令显示出来

注意: ls -ld的命令可以任意替换。

      {}看作是搜索到的文件的替换,代替搜索到的文件,显然就是ls -ld后面的参数

      \是转义字符



2.命令名称:which

英文原意:
命令所在路径:/usr/bin
执行权限:所有用户
功能描述:显示命令的path shows the full path of (shell) commands.
使用:which command
e.g.: which ls

which cp

注意:不能which shell内置命令,例如cd

     不止显示命令的path,还显示命令别名的相关信息

     help显示所有的shell内置命令


3.命令名称:whereis

英文原意:

命令所在路径:/usr/bin

执行权限:所有用户

功能描述:显示命令的path和相关帮助文档以及二进制文件  locate the binary, source, and manual page files for a command

使用:whereis command

e.g.:whereis ls

whereis cp


4.命令名称:locate

英文原意:

命令所在路径:/usr/bin

执行权限:所有用户

功能描述:搜索文件

选项:-i  不区分大小写

e.g.:locate inittab

locate -i inittab

注意:locate的搜索速度要比find快很多,它并不是进行全盘搜索,而是在一个叫做文件资料库/var/lib/mlocate/mlocate.db的文件中进行搜索,所以在使用locate之前,要更新文件资料库updatedb,对于不会写入到文件资料库中的内容不会搜索到,例如tmp目录下的内容。


5.命令名称:grep

英文原意:

命令所在路径:/bin

执行权限:所有用户

功能描述:搜索文件中的内容

选项:-i不区分大小写

     -v 忽略内容

e.g.:grep service /etc/services搜索etc下services文件中所有含service的行的内容

      grep -v service /etc/services搜索etc下services文件中所有不含service的行的内容

      grep -v ^# /etc/services搜索etc下services文件中所有不以#为首的内容(^行首)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值