Linux/Unix中如何绕过命令的别名

时间:2019-11-20 08:52:57  来源:igfitidea点击:

问题

当系统中定义了别名后,如何不取消别名使用原命令?
在Linux系统中定义了mount的别名 alias mount ='mount | column -t'
现在想用mount命令怎么办?
在Linux,BSD,macOS或类似Unix的系统中,如何临时禁用命令别名或者绕过shell脚本别名?

解决方案

Linux中,可以使用alias命令定义或显示bash shell别名。
创建bash shell别名后,它们将优先于外部或内部命令。

在本教程中我们学习了如何临时绕过bash别名,以便可以运行实际的命令。

在bash shell中绕过别名

让我们定义一个别名如下:

alias mount='mount | column -t'

运行:

mount

使用\command绕过命令别名

临时绕过mount的别名:

\mount

使用引号绕过shell别名

引用mount命令,调用实际的命令/bin/mount,如下所示:

"mount"

或者

'mount'

使用完整的命令路径

例如/bin/mount:

/bin/mount
/bin/mount /dev/sda1 /mnt/sda

使用command命令

语法为:

command cmd
command cmd arg1 arg2

例如:

command mount
command mount /dev/sdc /mnt/pendrive/

unalias命令

unalias命令用于删除当前会话中已经定义的别名。
例如:

删除mount的别名

unalias mount

从当前bash会话中删除所有别名:

unalias -a

要永久删除定义的别名
需要在~/.bashrc或$HOME/.bash_aliases文件中删除它们:

vi ~/.bashrc

或者

vi $HOME/.bash_aliases

有关更多信息,请参见bash命令手册页:

man bash
help command
help unalias
help alias