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