Bash - 别名 unalias

Bash - aliasing unalias

我知道在bash中使用alias命令可以在bash中定义自定义函数,甚至可以覆盖内置函数(例如alias sudo="help" 有效)。 Unalias -a 可以收拾 alias 命令造成的混乱,但是 unalias 也可以别名(我有 运行 alias unalias="unalias" 命令成功,所以我想它也适用于其他命令 - 我不想弄乱 os 因为它是 public计算机)。
我的问题是,如果我将 unalias 别名为其他东西,然后别名也是,如果它们本身不可用,我可以重置命令吗?如果我也使用别名 sudo 会怎样?
例如如果我想成为一个巨魔并且 运行 在我朋友的机器上执行此命令

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

所有这些命令都将无法使用,因此我相信恢复 sudo 的功能将是一段艰难的时期。 possible 是不是没有重新安装OS?
(我可以考虑使用 ctrl+alt+f1 切换到终端,但我不知道别名的东西是否也在那里别名。如果我在那里做同样的事情会怎样?)

如果要执行二进制文件而不是同名的别名,只需键入二进制文件的完整路径即可:

/usr/bin/sudo <cmd>

别名仅在交互式 shell 中可用,在 shell 脚本中不可用,也不会破坏其他任何东西。


对于 "remove" 别名只需将它们从您的 .bashrc 中删除并开始一个新的 shell。

一种在命令前加上反斜杠的常用技术,即 \ 以确保避免任何别名,运行 它来自系统默认路径:

示例:

$> 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

因为你可以使用 运行ning \ps 运行s 系统默认值 /bin/ps 而 运行ning ps 运行 s 别名命令 date.

扩展:也可以使用单引号或双引号:

$ 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 的表达式都不会被混淆。