Linux学习记录7---查找定位文件命令

本文详细介绍了Linux系统中常用的文件定位和操作命令,包括pwd、cd、ls、tree、find、locate、whereis和which,以及它们的使用场景、参数和区别,帮助读者更好地理解和掌握Linux环境下的文件管理。
摘要由CSDN通过智能技术生成

一.学习的内容

        今天主要学的是查找定位Linux文件的相关命令。如pwd、cd、ls、tree、find、locate、whereis、which命令。工作目录指的是用户当前在系统中所处的位置。

1、pwd

        pwd命令用于显示当前工作目录,直接输入该命令执行即可。

图1  pwd命令

2、cd

        cd命令用于切换当前工作目录。命令格式为:cd   [参数]   [文件目录]

        使用命令切换到“ /bin ”目录下,如图二所示: 

图2  切换工作路径

          “ cd - ”命令 ——返回上次工作目录,如下图所示从  /bin 到 /root。

图3  返回到上次的工作路径

         “ cd ..”命令——回到上级目录,从 /root 到 / 。

图4  返回到上级目录

         “ cd ~”命令——回到当前用户的家目录,从 / 到 /root 。

图5  回到当前用户的家目录

        “ cd ~username ”命令——切换到其他用户的家目录,从 /root 到 /home/linuxprobe。

图6  切换到其他用户的家目录

    

3、ls

        ls(list的缩写)命令用于显示目录中的文件信息。命令格式:ls [参数]  [文件名称]

        使用 ls 命令的 -a 参数可以看到全部文件(包括隐藏文件);使用 -l 参数可以看到文件的详细信息。将两个参数整合后,可以输出所有文件及其详细信息。如下图所示:

图7  ls命令

 

图8  ls -al

        如果想要查看目录的属性信息,需要额外加一个参数 -d  。如下图所示,查看 /etc 目录的属性信息。

图9  查看目录的属性信息

4、tree

        tree命令会以树状图的形式列出目录内容及结构。命令格式:tree  [文件名称]

        虽然 ls 命令可以方便地查看目录内有哪些文件,但无法直观地获取目录内文件的层次结构。比如,假设目录A内有个B,B内又有个C,那么 ls 命令只能看到最外面的A目录。而 tree命令则能够以树状图的形式列出目录内所有文件的结构。

图10  tree和ls命令的区别

        如上图所示,先将工作路径切换到 /home 内,然后一次执行 tree 命令和 ls命令,发现 ls 命令只会显示到 linuxprobe ,而 tree 命令把linuxprobe内部的文件也显示了出来。

5、find

        find命令用于按照指定条件来查找文件所对应的位置。命令格式:find [查找范围] 寻找条件

        在Linux系统中搜索工作一般都是通过find 命令来完成的。下表给出了find命令中的参数及作用。

表1 find命令中的参数及作用
参数作用
-name匹配名称
-user匹配所有者
-perm匹配权限
-exec......{}\;后面可跟用于进一步处理搜索结果的命令
图11  find命令

 

6、locate

        locate命令用于按照名称快速搜索文件所对应的位置。命令格式:locate 文件名称

        使用 find 命令进行全盘搜索虽然更准确,但是效率有点低。如果仅仅是想找一些常见的且又知道大概名称的文件,可以试试 locate 命令。在使用 locate 命令之前,先使用 updatedb 命令生成一个索引文件库,这个库文件的名字时 var/lib/mlocate/mlocate.db , 后续在使用 locate 命令时,就会在该库中进行查找,速度会快很多。如下图所示,使用 updatedb 命令生成索引库文件。

图12  updatedb命令

        然后再使用 locate 命令,查找包含指定名称的文件所在的位置

图13 update命令

7、whereis

        whereis命令用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置。命令格式:whereis  命令名称

        whereis命令也是基于updatedb命令所生成的索引库文件进行搜索,他与locate的区别在于不关心那些相同名称的文件,仅仅是快速找到对应的命令文件及其帮助文件所在的位置。下图时查找 ps 命令的位置,和帮助文件所在的位置。

图14 whereis命令

8、which

        which命令用于按照名称快速搜索二进制程序(命令)所对应的位置。

        命令格式为:which 命令名称

        which命令是在PATH变量所指定的路径中,按照指定条件搜索命令所在的位置。也就是说,若我们及不关心同名文件(find、locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径,那这个which命令就太合适了。下图是使用 which 命令查找 find 命令所在位置。

图15  which命令

二.本次学习遇到的问题

三、问题的答案及解决办法

        注意:

        1、关于 cd 命令,先看图:

图1 cd命令

        如上图所示,首先,通过 ls 命令可以显示出  /root  目录下包含的一些文件。此时,要想进入 /root/Music 的文件内,直接执行 cd Music 即可(不用执行 cd /root/Music ,当然这样也是可以的),即此时可省略前缀 /root/。除此之外的所有情况,都要写完整路径。

        2、关于 ls 命令,先看图:

图2          ls

        通过 cd 命令进入根目录(/)后,使用 ls 命令,可以发现:root、home、bin、lib、etc等都属于同级目录。不难看出,管理员的家目录在  /root  ,而普通用户的家目录在 /home/linuxprobe,如下图所示:

图3  普通用户身份登陆

        关于下图:        

图4  指定、不指定文件名称

        可以看出,若不指定文件名称,ls 命令,或默认显示当前目录下的文件信息;也可以选择指定查看某个目录下的文件信息。

3、关于tree命令,如下图所示:

图5   指定或不指定文件名称

        由上图,可以看出:1、和 ls 命令一样,若不指定目录,则以树状图的形式显示当前目录下的文件关系;也可以选择指定查看某个目录下的文件关系。2、若未指定目录,则输出的第一行用点(.)表示——上例中点(.)代表  /root ;若制定了目录,则输出第一行为指定的目录名。

4、关于find命令

        find命令绝对是最全面的文件查找命令。如下图所示:

图6  find命令

        可以发现,第一次执行find命令时,为给其指定具体的目录,它会在当前目录( /root)下,查找文件名为Music的文件;第二次执行命令时,给其指定目录(/root)。对比两次结果发现,第一次的输出和第二次的输出,就是前半段的书写形式不一样(和tree一样),但其实是同一个文件。

5、关于locate命令,它就是阉割版的 “find  [搜索范围]   -name 文件名称” 命令。

        这是因为它并不是精准匹配,只要文件名中包含它要搜索的文件名,他都会找出来。但同时,他也有自己的优势,那就是搜索速度快。如下图所示:

图7  locate命令

        从上图可以看出,在搜索 hosts 文件名称时,他把所有包含这个单词的文件都给找出来了;此外,在搜索Music文件时,能明显感觉到速度比find命令更快。

6、关于whereis命令、which命令

        它们两个和前面几个不同,他们是用来搜索 二进制程序(命令)所在的位置,不会用来搜索一般的文件地址。它们俩的不同在于搜索范围和输出结果上。whereis在updatedb生成的索引库内搜索,而which在PATH所指定的路径内搜索。在结果上,whereis的输出,除了命令的位置,还有帮组信息等;而which只有命令位置。关于path的路径,如下图所示:

        应该就是绿线标注出的5个路径。

总之,cd 的补充是在讲如何省略工作路径前缀;ls、tree、find 的补充是在讲,执行这些命令时的默认工作路径是什么和输出结果的细微差异( ./  和 /root );locate、whereis 的补充是在讲,它们的搜索范围是 updatedb 产生的库文件;which的补充是在讲,它的搜索范围是 PATH变量所指定的路径。最后,whereis和which命令,是用于查找二进制程序(命令)的位置,而非一般文件的位置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值