如何查看附加到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
。