Cas*_*ash 446 command-line bash alias
假设我在 bash shell 中有一个别名。是否有一个简单的命令来打印别名将运行的命令?
gei*_*rha 589
该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;
printf '%s\n' "$REPLY";
grep --color=auto "$@"
}
}
Run Code Online (Sandbox Code Playgroud)
type -a cmd将按优先顺序显示该名称的所有命令,这对于ls上面的别名很有用,别名本身调用ls.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Run Code Online (Sandbox Code Playgroud)
这告诉您,除了您自己添加的任何其他参数之外,当您运行时ls, ,/bin/ls将被使用,并将--color=auto包含在其参数列表中。
Tho*_*ard 207
只需alias在 Shell 提示符下键入while。它应该输出所有当前活动别名的列表。
或者,您可以键入alias [command]以查看特定别名的别名,例如,如果您想找出ls别名的别名,您可以执行alias ls.
Der*_*ler 65
我真的很喜欢Ctrl+ Alt+ E,因为我从中学到这个答案。它“扩展”当前键入的命令行,这意味着它执行别名扩展(除其他外)。
这意味着什么?它将当前可能写在命令行上的任何别名转换为别名所代表的含义。
例如,如果我输入:
$ ls
Run Code Online (Sandbox Code Playgroud)
然后按Ctrl+ Alt+ E,它变成
$ ls --time-style=locale --color=auto
Run Code Online (Sandbox Code Playgroud)
noo*_*nex 14
严格来说,正确答案是使用 BASH_ALIASES 数组,例如:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
Run Code Online (Sandbox Code Playgroud)
小智 6
你可以使用which命令。
ls如果您为as设置别名ls -al然后输入which ls,您将看到:
ls: aliased to ls -al.