Supprimer une ligne précise dans l’historique sous Linux

L’histoire commence ainsi, je me connecte avec un utilisateur applicatif sous Linux et ensuite je tape la commande :

[user@monserveur] su –

Et sans regarder mon écran, machinalement je tape le mot de passe root. Le problème c’est que j’ai oublié que cet utilisateur applicatif n’a pas le droit d’utiliser la commande su. Du coup je me retrouve avec l’écran suivant :

[user@monserveur] su –
su: incorrect password

[user@monserveur] PASSWD_ROOT

Oui vous avez bien vu, j’ai tapé mon mot de passe en clair ! Je souhaite à présent effacer l’historique mais pas tout l’historique, uniquement la ligne où le mot de passe apparaît en clair.

Mon premier réflexe :

[user@monserveur]  man history

Ce qu’il me reste à faire c’est de taper la commande :

[user@monserveur]  history

et de repérer le numéro de la ligne incriminée puis de faire :

[user@monserveur]  history -d num_ligne

Voilà, me voilà sauvée.

Bonus : mise à jour du 26/07/2017 – comment supprimer une série de lignes ?

Repérez toutes les lignes à supprimer, dans mon cas, je veux supprimer les lignes 511 à 544, je lance une boucle bash sous Linux. Voilà ce que ça donne :

for (( i=511; i <= 544; i++ ))
do
history -d $i
done




feodor

L’astuce est sympa, après éventuellement plus rapide il suffit de supprimer les lignes en invoquant ex et la commande à exécuter sur le fichier, en mode non interactif. En 3 arguments c’est plié

feodor

Bien sur, pour supprimer les deux dernières lignes d’un fichier :
ex -sc ‘-1,d|x’ file.ext
A noter que cette commande compte à partir de 0, donc pour supprimer la dernière ligne uniquement :
ex -sc ‘-0,d|x file.ext

Fatiha

Ok merci, je pensais que c’était une commande spécifique à l’historique. Je ne connaissais pas cet éditeur « ex », merci pour l’astuce. N’empêche les options me font penser un peu aux options du sed, n’est-ce pas ?

feodor

Tout à fait, en fait ex est un ancêtre de VIM. Et si on se penche sur la commande donné à l’éditeur ‘-0,d|x’ on remarque que c’est très similaire à ce que l’on peut taper dans vim en mode commande. Le pipe en plus suivi du x pour sauver le fichier

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *