文章目录
1.which命令
查找命令文件存放目录
搜索范围由环境变量PATH决定(echo $PATH)
which命令格式:which 命令|程序名 //默认当找到第一个目标后不再继续查找
或者:
which -a 命令|程序名 //在所有搜索路径中查找
注意:
使用which查找内部命令时,将找不到对应的程序;
which搜索命令查不到路径的两种情况:
1.该命令是内部命令;
2.该命令是外部命令,但该外部命令没有放置到PATH环境变量所指定的路径中;
which查询外部命令没有放置到PATH环境变量路径中的解决方法:
1.用绝对路径或相对路径将外部命令手动添加到系统中默认的路径中(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:)
2.先进入系统目录,将外部命令复制到指定目录中
[root@clr ~]# which ls #查看ls命令在系统中的位置
alias ls='ls --color=auto'
/usr/bin/ls
[root@clr ~]# alias
alias cp='cp -i'
alias ls='ls --color=auto'
[root@clr ~]# which history #查看内部命令history在系统中的位置
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@clr ~]# which java #查看外部命令java在系统中的位置
/usr/bin/java
[root@clr ~]# which vlan # #查看内部命令vlan在系统中的位置(内部命令在系统中无法查询所在位置)
/usr/bin/which: no vlan in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
which -a命令
1.1 whereis命令
whereis:查看文件的位置;
whereis用于显示命令及相关文件的路径位置信息.
能够找到命令(二进制程序)、命令源代码、man帮助手册等相关的文件路径位置信息.
补充:
whereis命令有别于find命令进行的全盘搜索,whereis命令查找速度非常快,因为它不是在磁盘中乱找,而是在指定数据库中查询,该数据库是Linux系统自动创建的,包含有本地所有文件的信息,每天自动更新一次。但正因为这样,whereis命令的搜索结果会不即时,比如刚添加的文件可能搜不到,原因就是该数据库文件没有被更新,管理人员手动执行updatedb命令进行更新即可。
whereis命令格式:whereis [参数] 命令名
常用参数:
whereis -b命令
[root@clr ~]# whereis -b svn #查找svn的相关信息
svn: /usr/bin/svn #返回svn在系统中的位置
[root@clr ~]# whereis -b tcp #查找tcp的相关信息
tcp:[root@clr ~]# whereis -b tomcat #查找tomcat的相关信息
tomcat:[root@clr ~]# whereis -b poweroff #系统中并未查询到tcp和tomcat的相关信息
poweroff: /usr/sbin/poweroff #返回poweroff在系统中的位置
1.2 locate命令
locate:配合数据库查看文件位置;
locate 通过搜寻系统内建文档数据库快速找到档案,默认情况下 locate 命令在搜寻数据库时,比从整个硬盘搜寻资料快得多,但较差劲的是 locate 所找到的档案若是最近才建立或刚更名的,可能会找不到。
locate 与 find 命令相似,可以使用如 、? 等进行正则匹配查找
[root@clr ~]# locate pwd