当前位置: 首页>>技术问答>>正文


如何查看附加到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。它应该输出所有currently-active别名的列表。

或者,您可以键入alias [command]以查看特定别名的别名,作为示例,如果您想了解ls别名的别名,可以执行alias ls

第三种解决方案

我真的很喜欢Ctrl + Alt + E,正如我从this answer获悉的。它是”expands”当前键入的命令行,这意味着它执行别名扩展(等等)。

那是什么意思?它可以将目前写在命令行上的任何别名变成别名的代名词。

例如,如果我输入:

$ ls

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

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

第四种方案

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/144.html,未经允许,请勿转载。