2
3.5Linux下搜寻可执行文件的位置——which命令
Posted by 撒得一地 on 2016年1月22日 in Linux教程
我们知道,linux有许多命令,当我们执行命令时,其实是运行相对应的二进制文件。每个命令,其本质就是一个可运行的二进制文件。那么,如何快速的找到一个常用命令的位置,比如,ls这个命令放在哪里呢?
这时就可以使用which或type命令来查找。
which参数及使用方法
[root@lmode ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称
which命令是是根据PATH这个环境变量所规范的路径,去搜寻可运行命令的具体存放位置。要注意的是,which后面接的是完整的命令名,如果加上-a选项,则可以找到该二进制文件所有的存放路径,否则,which默认是显示一个(最先找到的路径)。下面列举几个例子。
例子1:找到ls命令位置
[root@lmode /]# which ls alias ls='ls --color=auto' /bin/ls
从上面的运行结果可以看到,ls命令的二进制文件的完整路径在:/bin/ls下。alias的意思是重命名,也就是说你运行ls时,其实完整的运行命令是:ls –color=auto,就是说自动显示终端的字体颜色。
例子2:
[root@lmode /]# which which alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' /usr/bin/which
例子3:
root@lmode /]# which cd /usr/bin/which: no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/usr/local/apache/bin:/root/bin)
上面的例子竟然没找到cd这个命令,这是因为cd是bash内建的命令。而which 默认是找 PATH 内所规范的目录,这个目录下的命令相当于额外安装的命令,也可以说是一些拓展命令。我们可以用type命令来查看下cd命令:
[root@lmode /]# type cd cd is a shell builtin
2 Comments
只了解一个 is 的命令。
thanks!明白了。。