良许Linux教程网 Linux命令大全 Linux系统搜索命令

Linux系统搜索命令

在 Linux 系统中,我们可能经常需要去查找某个文件,但是因为文件太多,又不记得到底是放在哪个目录下了。这样如果一个个目录去遍历的话,很浪费时间和精力。所以今天就告诉大家在 Linux 下如何快速查找到一个文件。

首先第一个介绍的就是 which 命令啦,which 命令它的作用就是在 PATH 系统环境指定的那些路径中去搜索某个系统命令的位置,依次根据这些目录的顺序进行搜索然后返回第一个匹配到的结果返回。换句话说使用 which 命令其实是可以看到系统中某个命令到底是不是存在并且它到底执行的是具体哪一个目录下的命令。所以如果你想知道你执行的命令是在哪个目录下,那么就可以使用 which 去进行查找。当然这里需要注意的是它是在 PATH 指定的路径中才可以,并且普通用户和超级用户的 PATH 是不一样的。

关于 which 的语法格式:

which [option] [programname]which [选项] [命令名称]

which 命令主要用于在 PATH 环境变量里查找指定的命令。关于 which 命令的参数选项常用的只有一个 -a 选项。通常默认在 PATH 路径中会由前往后进行命令的查找,如果找到了,那么后续的路径就不会进行匹配了。如果使用 -a 选项的话那么在查找时就会遍历所有的 PATH 路径,并且把所有匹配到的都进行输出。

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql:/usr/local/mysql:/usr/local/mysql:/root/bin
#先查一下环境变量

which date
/usr/bin/date
#查看 date 命令的全路径

which which 
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
 /usr/bin/which
#如果指定的命令有别名,那么使用 which 也会将别名显示出来

which cd
/usr/bin/which: no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
#bash 内置命令一般是没有办法使用 which 的

上面是对 which 命令的使用简单做了下示例,下面我们加上 -a 这个参数试试:

which mysql
/usr/local/sbin/mysql

echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

$ PATH=$PATH:/application/mysql/bin/
#添加路径到环境变量

echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/applicaion/mysql/bin

which -a mysql
/usr/local/sbin/mysql
/application/mysql/bin/mysql
#所有包含 mysql 命令的路径都显示出来了

说完了第一个命令,那么接下来我们继续来说第二个命令,第二个命令是 whereis ,这个命令很有意思啊,相当于两个英文的拼接,它的作用也就是它翻译过来的字面意思。它的作用想必大家也都可以看出来,就是用来查找文件的。这个命令它会在特定的目录中查找符合我们搜索条件的文件,这个命令它会找到指定的文件的源或者是二进制文件又或者是 man 手册等等内容。需要注意的是这个命令也是用于 PATH 系统环境变量里面查找指定的命令的。关于它的语法如下:

whereis [option] [filename]whereis [选项] [文件名]

同样的,我们先来看看它的常用参数:

-b:这个选项用来查找可执行文件使用的

-m:用来查找 man 手册,帮助文档的

-s:这个选项是用来查找源代码文件的

上面已经了解到了语法格式以及选项参数相关,那么接下来我们来实操一下:

$ whereis svn
svn: /usr/bin/svn /usr/share/man/man1/svn.1.gz

$ whereis -b svn
svn: /usr/bin/svn
#只查找可执行文件

$ whereis -m svn
svn: /usr/share/man/man1/svn.1.gz
#只查找 man 文件

$ whereis -s svn
svn:
#只查找源代码文件,但是可以看出并没有找到相应的文件

以上内容就是在 Linux 中的查找命令,这个命令也是挺常用的,比如在写一些 shell 脚本的时候,就会显得至关重要,shell 脚本里有时候如果要执行一个命令,那么最好是写上执行命令的全路径,这样会保证执行 100% 成功,关于 Linux 下查找命令就介绍到这里,感兴趣的朋友可以实操研究研究。

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部