当哪个可执行文件不可用时,是否有一种简单的方法来确定给定命令正在调用哪个可执行文件?

当哪个可执行文件不可用时,是否有一种简单的方法来确定给定命令正在调用哪个可执行文件?

我正在一个没有which命令的Linux系统中工作。是否有其他方法可以找出 bash 中给定命令正在运行哪个可执行文件?它是一个超级基本的系统(想想 LFS),所以它没有 strace、dtrace 或类似的东西,只有内核、开发工具、核心实用程序和一些额外的软件包。有些命令需要长时间运行,因此 ps 在这里很有用,但有些命令几乎是瞬时运行的。

答案1

bash有一个type可以提供帮助的命令,类似于which.

它可以报告命令、别名和函数

例如

bash-4.2$ type ls
ls is /usr/bin/ls


bash-4.2$ alias mycmd=foobar
bash-4.2$ type mycmd
mycmd is aliased to `foobar'

bash-4.2$ myfn()
> {
> echo foo
> }
bash-4.2$ type myfn
myfn is a function
myfn () 
{ 
    echo foo
}

相关内容