微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash – 别名unalias

我知道在bash中使用alias命令可以在bash中定义自定义函数,甚至可以覆盖内置函数(例如, 别名sudo =“help”起作用)。 unalias -a可以清理使用别名命令所造成的混乱,但unalias也可以是别名(我已经成功运行别名unalias =“unalias”命令,所以我猜这也适用于其他命令 – 我不想搞乱因为它是一个公共计算机)。

我的问题是,如果我把unalias别名,别名也别名,我可以重置命令,如果他们本身不可用? 如果我给sudo别名,会发生什么?

例如,如果我想成为一个巨魔,并在我的一个朋友的机器上运行这个命令

alias sudo="clear" && alias unalias="clear" && alias alias="clear"

所有这些命令将无法使用,所以我相信这将是一个很难恢复sudo的function。 有没有可能重新安装操作系统?

(我可以考虑使用ctrl + alt + f1切换到terminal,但是我不知道别名是否也有别名,如果我在那里做同样的事情呢?)

将DirectoryIndex应用于Apache中的别名

将别名<cmd>透明地改为“do X then <cmd>”

如何用参数创buildgrep别名

为什么我的Nginx别名redirect不起作用(转到404)?

我向用户〜/ .bashrc添加了别名,但是“sudo -u user -i'alias_name'”仍然报告“找不到命令”?

一种常用的技术,在命令前添加一个反斜杠,即 ,以确保避免任何别名,并从系统认路径运行:

例:

$> alias ps=date $> ps Wed Feb 18 12:33:17 EST 2015 $> ps PID TTY TIME CMD 615 ttys000 0:00.66 -bash 621 ttys001 0:07.36 -bash 913 ttys002 0:01.19 -bash

正如您可以使用运行ps运行系统认/bin/ps而运行ps运行别名命令date 。

要扩大anubhava的答案 :你也可以使用单引号或双引号:

$ alias ps=date $ ps Wed Feb 18 12:33:17 EST 2015 $ "ps" PID TTY TIME CMD 615 ttys000 0:00.66 -bash 621 ttys001 0:07.36 -bash 913 ttys002 0:01.19 -bash

一般来说,任何评估为ps的表达式都不会被混淆。

如果你想执行一个二进制文件,而不是一个具有相同名称的别名,只需键入二进制文件的完整路径:

/usr/bin/sudo <cmd>

拥有这些别名只能在交互式shell中使用,而不能在shell脚本中使用,也不会破坏其他任何内容

要“删除”这个别名,只需将它们从.bashrc移除并启动一个新的shell。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐