Bash绕过Alias Linux/Unix命令

时间:2020-01-09 10:37:19  来源:igfitidea点击:

问题描述:
我在Linux系统上定义了mount bash shell别名,如下所示:alias mount ='mount | column -t'但是,我需要bash旁路别名来挂载文件系统和其他用法。如何在Linux,* BSD,macOS或类似Unix的系统上临时禁用或绕过bash shell别名?

解决方法:您可以使用alias命令定义或显示bash shell别名。创建bash shell别名后,它们将优先于外部或内部命令。在本教程中我们学习了如何临时绕过bash别名,以便您可以运行实际的内部或外部命令。

bash绕过别名的四种方法

尝试以下任何一种方式来运行由bash shell别名遮盖的命令。
让我们定义一个别名如下:

alias mount='mount | column -t'

如下运行:

mount

输出示例:

sysfs                        on  /sys                             type  sysfs            (rw,nosuid,nodev,noexec,relatime)
proc                         on  /proc                            type  proc             (rw,nosuid,nodev,noexec,relatime)
udev                         on  /dev                             type  devtmpfs         (rw,nosuid,relatime,size=8023572k,nr_inodes=2005893,mode=755)
devpts                       on  /dev/pts                         type  devpts           (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs                        on  /run                             type  tmpfs            (rw,nosuid,noexec,relatime,size=1610240k,mode=755)
/dev/mapper/ubuntu--vg-root  on  /                                type  ext4             (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda1                    on  /boot                            type  ext4             (rw,relatime,data=ordered)
binfmt_misc                  on  /proc/sys/fs/binfmt_misc         type  binfmt_misc      (rw,relatime)
lxcfs                        on  /var/lib/lxcfs                   type  fuse.lxcfs       (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

方法1:使用\ command

键入以下命令以临时绕过名为mount的bash别名:

\mount

方法2:使用命令或命令

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

"mount"

或者

'mount'

方法3:使用完整的命令路径

使用完整的二进制路径,例如/bin/mount:

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

方法4:使用内部命令

语法为:

command cmd
command cmd arg1 arg2

要覆盖.bash_aliases中设置的别名(例如mount),请执行以下操作:

command mount
command mount /dev/sdc /mnt/pendr我有/

该命令运行简单命令或显示有关命令的信息。
它运行带有ARGS的COMMAND,可抑制shell函数查找或别名,或显示有关给定COMMAND的信息。

关于unalias命令的说明

要从当前会话的已定义别名列表中删除每个别名,请使用unalias命令:

unalias mount

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

unalias -a

确保更新~/.bashrc或$HOME/.bash_aliases文件。
如果要永久删除定义的别名,则必须删除它们:

vi ~/.bashrc

或者

joe $HOME/.bash_aliases

有关更多信息,请参见此处的bash命令手册页,或通过键入以下命令来阅读它:

man bash
help command
help unalias
help alias