Gab*_*ira 118 linux shell command-line
我知道当你在shell上时,唯一可以使用的命令是可以在PATH上设置的某些目录中找到的命令.即使我不知道如何查看我的PATH变量上的dirs(这是另一个可以回答的好问题),我想知道的是:
我来讨论并写道:
$ lshw
Run Code Online (Sandbox Code Playgroud)
我想知道shell上的命令可以告诉我这个命令的位置.换句话说,这个"可执行文件"位于何处?
就像是:
$ location lshw
/usr/bin
Run Code Online (Sandbox Code Playgroud)
任何人?
Pau*_*ce. 171
如果您使用的是Bash或zsh,请使用以下命令:
type -a lshw
Run Code Online (Sandbox Code Playgroud)
这将显示目标是内置函数,函数,别名还是外部可执行文件.如果是后者,它会显示它出现在你的每个地方PATH.
bash$ type -a lshw
lshw is /usr/bin/lshw
bash$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
bash$ zsh
zsh% type -a which
which is a shell builtin
which is /usr/bin/which
Run Code Online (Sandbox Code Playgroud)
在Bash中,for函数type -a也会显示函数定义.你可以declare -f functionname用来做同样的事情(你必须将它用于zsh,因为type -a没有).
has*_*sen 17
PATH 是一个环境变量,可以使用echo命令显示:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
它是由冒号字符' :' 分隔的路径列表
该which命令告诉您在运行命令时执行哪个文件:
which lshw
Run Code Online (Sandbox Code Playgroud)
有时你得到的是一个符号链接的路径; 如果要跟踪指向实际可执行文件所在位置的链接,可以使用readlink并输入以下输出which:
readlink -f $(which lshw)
Run Code Online (Sandbox Code Playgroud)
该-f参数指示readlink递归地遵循符号链接.
这是我机器的一个例子:
$ which firefox
/usr/bin/firefox
$ readlink -f $(which firefox)
/usr/lib/firefox-3.6.3/firefox.sh
Run Code Online (Sandbox Code Playgroud)
~$ echo $PATH
/home/jack/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
~$ whereis lshw
lshw: /usr/bin/lshw /usr/share/man/man1/lshw.1.gz
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90776 次 |
| 最近记录: |