如何从 Shell 中永久删除别名

如何从 Shell 中永久删除别名

当我不在我的计算机附近时,有人得到了它并ls在我的根文件夹中设置了一个别名。他将其设置为'yes NeverGonnaGiveYouUp'.所以现在当我在我的根文件夹中输入时,ls我会得到一个 NeverGonnaGiveYouUp 的无限循环。它让我发疯,我不知道如何摆脱它。

我已经尝试过了unaliasunalias -a但那些只是暂时删除它。一旦我关闭外壳并重新打开它,它就会回来。我该如何摆脱这个垃圾?

答案1

如果 unalias 解决了问题(即使是暂时的),我们就可以确认它是一个别名。通过在 ~/.bashrc 中添加 unalias ls 可以“暴力破解”它。

echo "unalias ls" >> ~/.bashrc

每次读取 bashrc 时都会执行该命令并删除别名。
这会给你带来一些平静,但不会解决某些文件仍然包含重新启动别名的代码的实际问题。您需要找到哪个文件包含问题。

如果使用 bash:

grep "NeverGonnaGiveYouUp" /etc/profile /etc/bash.bashrc \
      ~/.bashrc ~/.bash_profile ~/.profile \
      /root/.bashrc /root/.bash_profile /root/.profile

这是获得定义的可能文件的一个很好的列表。如果该搜索中没有显示任何内容,或者您​​使用其他 shell,请告诉我们以获取进一步的帮助。

答案2

unalias 命令在当前登录会话期间关闭别名。 unalias 命令不会从 .bashrc 文件中删除别名,当用户再次登录时,该别名将再次生效。

.bashrc 是一个隐藏文件,您可以通过键入以下内容来检查别名列表:

$ alias

检查 shell 配置文件 ~/.bashrc ,您可以永久删除所需的别名:

 vi ~/.bashrc

查找别名:

  $ type --all ls

删除别名:

unalias gs

更多内容请参见手动的

笔记:unalias-a将从当前 shell 执行环境中删除所有别名定义。

答案3

对于 Ubuntu 16.04 LTS,您可以使用以下命令

cat /dev/null > ~/.bash_aliases

相关内容