![如何从 Shell 中永久删除别名](https://linux22.com/image/83012/%E5%A6%82%E4%BD%95%E4%BB%8E%20Shell%20%E4%B8%AD%E6%B0%B8%E4%B9%85%E5%88%A0%E9%99%A4%E5%88%AB%E5%90%8D.png)
当我不在我的计算机附近时,有人得到了它并ls
在我的根文件夹中设置了一个别名。他将其设置为'yes NeverGonnaGiveYouUp'
.所以现在当我在我的根文件夹中输入时,ls
我会得到一个 NeverGonnaGiveYouUp 的无限循环。它让我发疯,我不知道如何摆脱它。
我已经尝试过了unalias
,unalias -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