我知道,当你在shell上时,唯一可以使用的命令是那些可以在路径上的某个目录集上找到的命令.

我来到shell写下:

$ lshw

我想知道shell上的一个命令,它可以告诉我这个命令的位置.换句话说,这个"可执行文件"位于哪里?

比如:

$ location lshw
/usr/bin

任何人

推荐答案

如果您使用的是Bash或zsh,请使用以下命令:

type -a lshw

这将显示目标是内置、函数、别名还是外部可执行文件.如果是后者,它将显示它出现在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

在Bash中,for functions type -a还将显示函数定义.你可以用declare -f functionname来做同样的事情(你必须用它来做zsh,因为type -a不能).

Linux相关问答推荐

在c++编译期间,什么是linux命令,它给出了链接库的路径?

记录终端输入和输出的 Bash 脚本

如何在 Linux 上打印带有屏蔽值的环境名称?

使用 sed 或 awk 格式化文本

从父目录中删除目录而不删除父目录 (Linux)

删除一行和它之前的一行

什么命令用于在linux中创建或修改具有指定文件大小的多个文件

$RANDOM 变量在输出通过管道后似乎没有改变

docker rm 命令在具有相同操作系统的不同机器上返回不同的状态码

使用带有 gnome-keyring 的 Git 凭证助手作为 Sudo 时出错

如何使用完整路径或文件名显示 grep 结果

如何增加 /proc/pid/cmdline 4096 字节限制?

如何仅使用 SED 获得第二行

何时判断 EINTR 并重复函数调用?

Pthread mutex互斥断言错误

从文本文件中删除奇数行或偶数行

错误:ld.so:无法预加载对象 LD_PRELOAD:忽略

如何让我的 Golang Web 服务器在后台运行?

linux perf:如何解释和查找热点

仅当文件存在于 shell 脚本中时才移动