Linux 如何查找在终端中执行的实际命令

Linux 如何查找在终端中执行的实际命令,linux,git,bash,command,alias,Linux,Git,Bash,Command,Alias,我有一个名为gb(Go alternative build command)的命令,它位于${HOME}/App/bin,位于“PATH”中 当我检查它时: which gb 它返回正确的位置${HOME}/App/bin/gb 我还查了别名 alias | grep gb 它什么也不返回 但是当我从终端运行gb命令时 $ gb 它总是返回git branch命令的结果 我只是想知道如何找出导致gb命令被劫持的原因?这取决于您的shell,但可能是键入gb(或键入-a gb).type-a

我有一个名为
gb
(Go alternative build command)的命令,它位于${HOME}/App/bin,位于“PATH”中

当我检查它时:

which gb
它返回正确的位置
${HOME}/App/bin/gb

我还查了别名

alias | grep gb
它什么也不返回

但是当我从终端运行
gb
命令时

$ gb
它总是返回git branch命令的结果


我只是想知道如何找出导致
gb
命令被劫持的原因?

这取决于您的shell,但可能是
键入gb
(或
键入-a gb
).

type-a gb
可能更有用,也可能更有用
command-v gb
和/或
command-v gb
。如果
gb
返回一个GIT子命令,那么您在某个地方设置了一个GIT别名,而不是bash别名。当这个问题发生时,您是否处于GIT回购中?如果是这样的话,如果运行:
#>git config-l grep alias
type
是正确的——但也值得考虑
(set-x;gb)
,它将显示实际函数运行的实际命令(而
type gb
将显示其定义)…一般来说,
它根本不适合使用——作为一个外部命令,它无法了解shell的内部状态。