如何删除别名?

jea*_*000 281 command-line alias

我想gs从我的 PC 中删除别名。当我输入时,gs它会打开 GhostScript。但我检查了主目录中的所有地方.alias .bash_aliases .bashrc

我还gs用我的自定义别名覆盖了。

我无法删除它。而且我还输入alias了终端,在列表中我找不到它。

请问我要删...

Rin*_*ind 364

删除别名的命令是unalias如此......

 unalias gs
Run Code Online (Sandbox Code Playgroud)

手册:

姓名

unalias - 删除别名定义

概要

unalias alias-name...

unalias -a
Run Code Online (Sandbox Code Playgroud)

描述

unalias 实用程序应删除指定的每个别名的定义。请参阅别名替换。别名应从当前的 shell 执行环境中删除;请参阅外壳执行环境。

-a 删除所有别名

  • 那么你就没有别名了。 (13认同)
  • 注意:`unalias -a` 会`从当前的 shell 执行环境中删除所有别名定义。`,可能包括其他无辜的。 (10认同)
  • `unalias` 从当前 shell 中删除一个或多个别名,但如果它们被“存储”在例如 `~/.bashrc` 中,当你创建一个新的 shell(或终端窗口)时它们会回来。因此,除非它们是临时别名,否则您应该从存储别名的位置删除别名的定义以摆脱它们。 (4认同)

Rbj*_*bjz 9

TL;DR:删除 shell 别名的命令是unalias。请参阅unalias 手册。跑步:

unalias gs
Run Code Online (Sandbox Code Playgroud)

但如果您的gs命令不是别名(很可能),则不会有帮助。响应将类似于:

bash: unalias: gs: 未找到

要查找您遇到的命令问题的类型type,请使用内置 shell 命令:

type gs
Run Code Online (Sandbox Code Playgroud)

在我的系统上它说它是一个可执行文件:

gs 是 /usr/bin/gs

将其与常见别名进行比较ll

alias ll='ls -l'
type ll
Run Code Online (Sandbox Code Playgroud)

ll 是 `ls -l' 的别名

shell内置命令help type的详细说明参见type

您还可以检查它是否是符号链接:

ls -la /usr/bin/gs
Run Code Online (Sandbox Code Playgroud)

在我的系统上它不是:

-rwxr-xr-x 1 root root 14520 八月 24 17:03 /usr/bin/gs

否则就会出现这样的箭头:

-rwxr-xr-x 1 root root 14520 八月 24 17:03 /usr/bin/gs -> /some/other/file

正如其他人所指出的,从当前 shell 会话中删除别名是暂时的。对于永久删除,您需要找到它的定义位置,例如alias gs=xyz,然后将其删除,或者添加unalias gs到您的~/.profile~/.bashrc文件中。

如果不是别名,您可以找到安装该命令的包并将其卸载。以 Debian/Ubuntu 为例:

dpkg -S /usr/bin/gs
Run Code Online (Sandbox Code Playgroud)

Ghost脚本:/usr/bin/gs

sudo apt-get remove ghostscript
Run Code Online (Sandbox Code Playgroud)