如何查看附加到bash别名的命令?

假设我在bash shell中有别名。 是否有一个简单的命令来打印别名将运行的命令?

内置type对此很有用。 它不仅会告诉您别名,还会告诉您函数,内置函数,关键字和外部命令。

 $ type ls ls is aliased to `ls --color=auto' $ type rm rm is /bin/rm $ type cd cd is a shell builtin $ type psgrep psgrep is a function psgrep () { ps -ef | { read -r; echo "$REPLY"; grep --color=auto "$@" } } 

只需在Shell提示符下键入alias 。 它应该输出所有当前活动别名的列表。

或者,您可以键入alias [command]以查看特定别名的别名,例如,如果您想要找出别名为别名的内容,您可以使用alias ls

我从这个答案中学到了,我非常喜欢Ctrl + Alt + E. 它“扩展”当前键入的命令行,这意味着它执行别名扩展(除其他外)。

那是什么意思? 它将任何可能当前写在命令行上的别名转换为别名所代表的含义。

例如,如果我输入:

 $ ls 

然后按Ctrl + Alt + E ,它将变为

 $ ls --time-style=locale --color=auto 

严格来说,正确答案是使用BASH_ALIASES数组,例如:

 $ echo ${BASH_ALIASES[ls]} ls -F --color=auto --show-control-chars 

您可以使用which命令。

如果将ls的别名设置为ls -al然后键入which ls ,您将看到:

ls: aliased to ls -al