4 种绕过 Linux/Unix 命令别名的方法
创始人
2024-03-01 22:00:24
0

我在我的 Linux 系统上定义了如下 mount 别名:

alias mount='mount | column -t'

但是我需要在挂载文件系统和其他用途时绕过这个 bash 别名。我如何在 Linux、*BSD、macOS 或者类 Unix 系统上临时禁用或者绕过 bash shell 呢?

你可以使用 alias 命令定义或显示 bash shell 别名。一旦创建了 bash shell 别名,它们将优先于外部或内部命令。本文将展示如何暂时绕过 bash 别名,以便你可以运行实际的内部或外部命令。

4 种绕过 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 - 使用 "command"'command'

如下引用 mount 命令调用实际的 /bin/mount

"mount"

或者

'mount'

方法 3 - 使用命令的完全路径

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

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

方法 4 - 使用内部命令 command

语法是:

command cmd
command cmd arg1 arg2

要覆盖 .bash_aliases 中设置的别名,例如 mount

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

“command” 直接运行命令或显示关于命令的信息。它带参数运行命令会抑制 shell 函数查询或者别名,或者显示有关给定命令的信息。

关于 unalias 命令的说明

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

unalias mount

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

unalias -a

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

vi ~/.bashrc

或者

joe $HOME/.bash_aliases

想了解更多信息,参考这里的在线手册,或者输入下面的命令查看:

man bash
help command
help unalias
help alias

via: https://www.cyberciti.biz/faq/bash-bypass-alias-command-on-linux-macos-unix/

作者:Vivek Gite 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

不一致的严格类型别名规则
在 TypeScript 中,严格类型别名规则要求类型别名不能引用...
2025-01-11 09:00:09
不一致的NumPy数组别名...
在NumPy中,如果给一个数组创建一个别名,对别名进行的操作会影响...
2025-01-11 08:30:31
不同类型的浅拷贝【已解决:...
不同类型的浅拷贝可以通过别名和拷贝两种方式来实现。别名(Alias...
2025-01-09 08:01:34
不同ID但相同类别的Bea...
在Spring框架中,如果有多个相同类别的Bean但具有不同的ID...
2025-01-09 03:31:31
不同的别名模板可以解决跨库...
不同的别名模板可以解决跨库潜在的ODR(One Definitio...
2025-01-08 12:01:57
不同别名语法的含义是什么,...
要解决这个问题,我们可以使用以下两个示例别名来演示它们的含义和字符...
2025-01-08 08:30:55

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...