如何从外壳中永久删除别名


28

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

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


2
什么输出grep -n 'NeverGonnaGiveYouUp' ~/.profile ~/.bashrc /etc/bash.bashrc /etc/profile?还有一些其他文件也要看,具体取决于您的shell和发行版。但这应该给我们一个开始
。– heemayl

5
这听起来像是rick roll内核模块LOL
moonbutt74,2016年

Answers:


24

如果unalias消除了该问题(即使是暂时的),我们已经确认它是一个别名。通过在〜/ .bashrc中添加一个非别名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

这是获得定义的可能文件的一个很好的列表。如果该搜索没有任何结果,或者您使用了其他外壳程序,请告诉我们进一步的帮助。


16

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

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

$ alias

检查外壳程序配置文件〜/ .bashrc,可以永久删除所需的别名:

 vi ~/.bashrc

查找别名:

  $ type --all ls

删除别名:

unalias gs

更多手册

注意unalias -a将从当前的shell执行环境中删除所有别名定义。


-1

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

cat /dev/null > ~/.bash_aliases

这将删除在中定义的所有内容~/.bash_aliases,而不仅仅是ls别名(无论如何也不能在别名中定义)。
史蒂芬·基特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.