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的内部状态。