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 的表达式都不会被混淆。
我知道在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 的表达式都不会被混淆。