Wie entferne ich einen Alias ​​dauerhaft aus meiner Shell

28

Als ich nicht in der Nähe meines Computers war, bekam es ein Typ und legte einen Alias ​​für lsin meinem Stammordner fest. Er stellte es auf 'yes NeverGonnaGiveYouUp'. Wenn ich jetzt in meinem Stammordner lsbin und tippe, erhalte ich eine Endlosschleife von NeverGonnaGiveYouUp. Es macht mich verrückt und ich weiß nicht, wie ich es loswerden soll.

Ich habe es schon versucht unaliasund unalias -aaber diese entfernen es nur vorübergehend. Sobald ich die Shell schließe und wieder öffne, kommt sie zurück. Wie werde ich diesen Mist los?

user155462
quelle
2
Was ist die Ausgabe von grep -n 'NeverGonnaGiveYouUp' ~/.profile ~/.bashrc /etc/bash.bashrc /etc/profile? Es gibt einige andere Dateien zu sehen, abhängig von Ihrer Shell und Distribution .. aber dies sollte uns einen Anfang geben ..
Heemayl
5
Das klingt wie das Rick-Roll-Kernel-Modul LOL
moonbutt74

Antworten:

24

Wenn Unalias das Problem (auch nur vorübergehend) behebt, haben wir die Bestätigung, dass es sich um einen Alias ​​handelt. Es könnte durch Hinzufügen eines Unalias ls in ~ / .bashrc "brutal herausgezwungen" werden.

echo "unalias ls" >> ~/.bashrc

Das wird jedes Mal korrigiert, wenn bashrc gelesen und der Alias ​​entfernt wird.
Das verschafft Ihnen ein wenig Ruhe, behebt jedoch nicht das eigentliche Problem, dass einige Dateien noch Code enthalten, um den Alias ​​neu zu starten. Sie müssen herausfinden, welche Datei das Problem enthält.

Wenn Sie bash verwenden:

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

Das ist eine gute Liste möglicher Dateien, die die Definition erhalten haben. Wenn bei dieser Suche nichts angezeigt wird oder Sie eine andere Shell verwenden, teilen Sie uns dies mit, um weitere Hilfe zu erhalten.


quelle
16

Der Befehl unalias hat den Alias ​​für die Dauer der aktuellen Anmeldesitzung deaktiviert. Der Alias ​​wird nicht durch den Befehl unalias aus der Datei .bashrc entfernt. Wenn sich der Benutzer erneut anmeldet, ist dieser Alias ​​erneut wirksam.

.bashrc ist eine versteckte Datei. Sie können die Liste der Aliasnamen überprüfen, indem Sie Folgendes eingeben:

$ alias

Überprüfen Sie die Shell-Konfigurationsdatei ~ / .bashrc und Sie können den erforderlichen Alias ​​dauerhaft entfernen:

 vi ~/.bashrc

So finden Sie Alias:

  $ type --all ls

Einen Alias ​​entfernen:

unalias gs

Mehr im Handbuch

Hinweis : Unalias -a entfernt alle Aliasdefinitionen aus der aktuellen Shell-Ausführungsumgebung.

Ramesh Chand
quelle
-1

Für Ubuntu 16.04 LTS können Sie den folgenden Befehl verwenden

cat /dev/null > ~/.bash_aliases
Ashok
quelle
Das entfernt alles, was in definiert ist ~/.bash_aliases, nicht nur den lsAlias ​​(der dort möglicherweise sowieso nicht definiert ist).
Stephen Kitt