Linux命令进阶篇之一

实验目的

1)掌握文件查看命令:file

2)掌握命令位置查找之which命令

3 ) 掌握如何就行档案搜索

实验步骤一

利用file命令查看那文件的类型

      命令:file

      语法:file [-bLvz] 文件

解释:-b:显示结果,但是不显示文件名称

      -L:直接显示符号链接所指向的文件的类型

      -v:显示版本信息

      -z:测试去读取压缩文件的内容

      直接file 文件,不加任何参数可以显示文件类型

      更多用法请使用manpage查看。

      接下来就来感受下:cd /etc 这里面的文件多~

Linux命令进阶篇之一

 

 

             图1

看看 adjtime 这个是个什么类型的文件呢?

Linux命令进阶篇之一

 

               图2

原来是个文本文件呢。来试试 –b 参数:

Linux命令进阶篇之一

              图3

文件名显示了呢。

      也许你会发现有这样的文件:l 开头的,就是链接文件了,我们试试 -L参数吧,可以直接显示链接文件所指的文件的类型呢!!

 Linux命令进阶篇之一

 

              图4

linux命令搜寻之which命令

      命令:which

      语法:which [-a] 命令

解释:-a:将PATH中可以找到的指令都列出来,而不是第一个被找到的名称

      我们用which mkdir来找找mkdir命令在哪儿

Linux命令进阶篇之一

 

 

                 图5

我们来做个测试:

Linux命令进阶篇之一

 

       图6

Linux命令进阶篇之一

 

                     图7

当我们用root用户的时候,为什么能找到ifconfig ,但是用普通用户就找不到了呢?

      是这样的,which是根据用户的PATH变量设定的路径去找的。echo $PATH就能查看当前用户的PATH变量设定了,以后会详细讲这个东西的:

Linux命令进阶篇之一

 

 

               图8

实验步骤二

档案查找命令

      命令之一:whereis

      语法:whereis [-bmsu] 目录或文件名

解释:-b:只找binary(二进制)格式的文件

      -m:只找在说明文件manual路径下的文件

      -s:只找source来源档案

      -u:搜索不在上述三个项目当真的其他特殊档案

      来试试吧:

Linux命令进阶篇之一

 

               图9

 只找跟passwd命令相关的帮助文件:

Linux命令进阶篇之一

 

               图10

  我们发现whereis搜索非常快速,因为它是基于数据库的啦。这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用 whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。

      但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

      命令之二:locate

      语法:locate [-ir] keyword

解释:-i :忽略大小写

      -r :使用正规运算式做寻找的条件

      locate 使用很简单,只要后面跟关键字就行了,搜索起来也非常快速,因为它也是基于数据库的。

Linux命令进阶篇之一

 

 

                 图11

实验步骤三

命令之find

      语法:find [路径] [option] [action]

解释:find的参数有很多,我们介绍简单一点的,更多用法记得man find 。

      与时间相关的选项:-atime,-ctime和-mtime,以-mtime说明:

      -mtime n :n 为数字

      -mtime +n :n天之前(不含n天本身)

      -mtime -n:n天之内(含n天本身)

      -nwer file:file为一个存在的文件,列出比file更新的文件。

find相关的时间的意义:

      Linux命令进阶篇之一

          图12

      +4代表大于等于5天前

      -4:代表等于4天内

      4:代表4-5那一天。

      例1:将过去系统上面24小时内有更改(mtime)的内容列出来:

Linux命令进阶篇之一

               图13

数字0 代表当前时间,所有代表从现在到24小时前

 

按名称查找

      find [路径] -name 名称

      找出 /etc/下 名为passwd的文件

Linux命令进阶篇之一

 

 

           图14

 

分析与思考

1、请说明whereis和find有何区别?它们各自的优缺点是什么?

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。当我们用whereis无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查 找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis
whereis 可以找到可执行命令和man page
find 就是根据条件查找文件。

2、请使用man page,如何使用find 命令查找/etc下大于500K的文件?

find ~/etc -size +500k

3、让一个普通用户heetian能够进行cp /dir1/file1 /dir2的命令时,请说明dir1,file1,dir2的最小所需权限为何?

 

对于dir1最低肯定需要能够进入的权限x

 

对于file1肯定要有能读取的权限r

 

对于dir2肯定要有能创建的权限w以及能进入的权限x

 

 

1、Linux命令进阶篇之一查阅资料,关于PATH变量,说法错误的是?C

  • A:PATH变量的值可以修改
  • B:可以为不同的用户设置不同的PATH值
  • C:root用户的PATH不能更改
  • D:更改PATH值后不需要重启计算机就能生效

2、Linux命令进阶篇之一进入系统之后,我们在/tmp/下面新建了一个heetian.com的文件,但是我们用locate /tmp heetian 搜索的时候,却没有找到。为什么?B

  • A:命令没有输完整
  • B:数据库没有更新
  • C:命令错误
  • D:系统错误

3、Linux命令进阶篇之一如何查找 /etc下5天内被改动过的文件呢?B

  • A:find /etc –mtime 5
  • B:find /etc –mtime -5
  • C:find /etc –mtime +5
  • D:find /etc 

 

Linux命令进阶篇之一

上一篇:windows系统中git下拉代码同名大小写文件系统冲突问题解决


下一篇:小程序---订阅消息