首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《鸟哥的Linux私房菜》笔记整理Part.3

五、命令与文件的查询

我们常常需要知道那个文件放在哪里,才能够对该文件进行一些修改或维护等动作。有些时候某些软件配置文件的文件名是不变的,但是各分发版本放置的目录则不同。此时我们就需要利用一些搜索命令将该配置文件的完整文件名找到,这样才能进行修改。

1.脚本文件的文件名查询

我们知道在终端模式当中,连续输入两次[tab]按键就能够知道用户有多少命令可以下达。但是我们不知道这些命令的完整文件名放在哪里。这个时候,我们就可以通过which或type来寻找。

(1)which(寻找“执行文件”)

如图5.1所示的举例。

图5.1 which举例

注意,这个命令是根据“PATH”这个环境变领所规范的路径去搜索“执行文件”的文件名。

(2)type

type将在后续来讲,在此就不说了。

2.文件名的查找

通常来说,find命令不常用,因为速度很慢。一般常用的是whereis和locate,前者是只找系统中某些目录底下的文件,而后者是利用数据库来搜索文件名。

(1)whereis

如图5.2所示,第一个例子是找出ifconfig这个文件名,第二个例子是找出跟passwd的文件名,第三个例子是在man page中找到passwd的文件名。

图5.2 whereis演示

whereis只是查询/bin/sbin、/usr/share/man下的man page文件等几个比较特定的目录。具体想知道whereis查了多少目录,可以使用whereis -l来确认。

(2)locate/updatedb

我们要记住无论是whereis还是locate都是有局限性的。whereis只能在所能够检索的目录下检索文件,所以目录之外的文件搜索不到;而locate只能在建立的数据库中查找(数据库在/var/lib/mlocate),而这个数据库并不是实时更新,是定期更新,所以有可能刚建立的文件并不能搜索到。

解决locate的方法就是使用updatedb命令来手动更新数据库。使用方法非常简单,直接输入“updatedb”,然后回车即可。然后updatedb就会去读取/etc/updated.conf这个配置文件的设置,去搜索文件名,然后更新数据库。

如图5.3所示,是locate的演示。

图5.3 locate演示

(3)find

find的特殊功能就是能够进行额外的动作。我们将下面的例子以图解来说明。

find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;

图5.4 解释说明

该例子中特殊的地方有{}以及\;还有-exec这个关键词,这些东西的意义为:

①{}代表的是由find找到的内容,如上图所示,find的结果会被放置到{}位置中;

②-exec一直到\;是关键词,代表find额外动作的开始(-exec)到结束(\;),在这中间的就是find指令内的额外动作。在本例中就是ls-l{}。

③因为;在bash环境下是有特殊意义的,因此利用反斜杠来转义。

六、权限与命令间的关系(非常重要)

1.让用户能进入某目录成为“可工作目录”的基本权限为:

(1)可使用的命令:例如cd等变换工作目录的命令;

(2)目录所需权限:用户对这个目录至少需要具有x的权限;

(3)额外需求:如果用户想要在这个目录内利用ls查阅文件名,则用户对此目录还需要r的权限。

2.用户在某个目录内读取一个文件的基本权限是:

(1)可使用的命令:例如本章谈到的 cat, more, less等等

(2)目录所需权限:用户对这个目录至少需要具有x权限;

(3)文件所需权限:用户对文件至少需要具有r的权限才行。

3.让用户可以修改一个文件的基本权限为何?

(1)可使用的命令:例如nano或未来要介绍的vi编辑器等;

(2)目录所需权限:用户在该文件所在的目录至少要有 x 权限;

(3)文件所需权限:用户对该文件至少要有r,w权限。

4.让一个用户可以建立一个文件的基本权限为何?

目录所需权限:用户在该目录要具有w,x的权限,重点在w。

5.让用户进入某目录并执行该目录下的某个命令之基本权限为何?

(1)目录所需权限:用户在该目录至少要有x的权限;

(2)文件所需权限:用户在该文件至少需要有x的权限。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190105G0O5BD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券