Comment supprimer définitivement un alias de mon shell

28

Quand je n'étais pas près de mon ordinateur, un gars l'a compris et a défini un alias lsdans mon dossier racine. Il l'a réglé 'yes NeverGonnaGiveYouUp'. Alors maintenant, quand je suis dans mon dossier racine et que lsje tape, j'obtiens une boucle infinie de NeverGonnaGiveYouUp. Cela me rend fou et je ne sais pas comment m'en débarrasser.

J'ai déjà essayé unaliaset unalias -amais ceux-ci le retirent temporairement. Une fois que je ferme la coque et la rouvre, elle revient. Comment puis-je me débarrasser de cette merde?

user155462
la source
2
Quelle est la sortie de grep -n 'NeverGonnaGiveYouUp' ~/.profile ~/.bashrc /etc/bash.bashrc /etc/profile? Il y a d'autres fichiers à regarder aussi en fonction de votre shell et de votre distribution ... mais cela devrait nous donner un début ..
heemayl
5
Cela ressemble à ce module de noyau rick roll LOL
moonbutt74

Réponses:

24

Si unalias supprime le problème (même temporairement), nous avons la confirmation qu'il s'agit d'un alias. Il pourrait être «brutalement forcé» en ajoutant un lias unalias dans ~ / .bashrc.

echo "unalias ls" >> ~/.bashrc

Cela sera excusé à chaque lecture de bashrc et supprimera l'alias.
Cela vous procurera une certaine tranquillité mais ne résoudra pas le problème réel selon lequel certains fichiers contiennent toujours du code pour redémarrer l'alias. Vous devez trouver quel fichier contient le problème.

Si vous utilisez bash:

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

C'est une bonne liste de fichiers possibles qui ont obtenu la définition. Si rien n'apparaît dans cette recherche, ou si vous utilisez un autre shell, faites-le nous savoir pour vous aider davantage.


la source
16

La commande unalias a désactivé l'alias pendant la durée de la session de connexion en cours. l'alias n'est pas supprimé par la commande unalias du fichier .bashrc, lorsque l'utilisateur se reconnecte, cet alias est à nouveau en vigueur.

.bashrc est un fichier caché, vous pouvez vérifier la liste des alias en tapant:

$ alias

Vérifiez le fichier de configuration du shell ~ / .bashrc et vous pouvez supprimer définitivement l'alias requis:

 vi ~/.bashrc

Pour trouver un alias:

  $ type --all ls

Supprimer un alias:

unalias gs

Plus au manuel

Remarque : unalias -a supprimera toutes les définitions d'alias de l'environnement d'exécution du shell actuel.

Ramesh Chand
la source
-1

Pour Ubuntu 16.04 LTS, vous pouvez utiliser la commande suivante

cat /dev/null > ~/.bash_aliases
Ashok
la source
Cela supprimera tout ce qui est défini dans ~/.bash_aliases, pas seulement l' lsalias (qui pourrait même ne pas y être défini de toute façon).
Stephen Kitt