5

supprimer ou bloquer l’historique des commandes éxécutées dans un terminal

Dans certain cas, il est intéressant de supprimer voire même de bloquer l’historique des commandes éxécutées dans un terminal.

Exemple d’un cas concret, si à partir d’un serveur samba on veut se connecter à un autre serveur samba, lors de la connection il est obliger de renseigner un compte valide avec son mot de passe en clair:

smbclient //serveur_samba/ MDP_en_CLAIR -U Login -L serveur_samba

La première méthode très simple serait de supprimer l’historique via la commande:

history -c

Cependant cette commande, peut avoir un petit défaut: c’est qu’elle supprime TOUT l’historique!

Il existe une autre méthode, qui va permettre de ne pas enregistrer l’historique des commandes éxécutées dans le shell courant, mais toujours présent en RAM.
Pour se faire, il faut utiliser la commande shell: unset suivit de la variable d’environnement HISTFILE.
En reprennant notre exemple, il suffit d’éxécuter cette commande avant:

unset HISTFILE

Lorsque que le session sera fermée et de nouveau ouverte, la commande smbclient //serveur_samba/ MDP_en_CLAIR -U Login -L serveur_samba ne sera pas enregistrée dans l’historique.

Encore une fois, ça peut être assez lourd car si l’on souhaite enregistrer les autres commandes il faut se reconnecter. Il existe une autre solution, qui pour moi est la plus simple, est d’ajouter un espace avant la commande à exécuter.

Pour que cette astuce fonctionne, il faut vérifier dans le fichier de configuration ~/.bashrc la présence de cette ligne:

export HISTCONTROL=ignorespace

Si cette ligne n’est pas présente, il faut l’ajouter.

Chaque commande précédée d’un espace ne sera plus enregistrée dans l’historique.

Merci à Frédéric Touin pour l’astuce.

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

5 commentaires

  1. Hello,

    C’est difficile de te lire cette fois-ci, tu ne t’es pas relu ! lol
    intéressent de supprimer voir –> intéressant de supprimer voire
    connection –> connexion
    il est obliger –> il est obligé
    il exite une autre –> il existe
    Pour ce faire –> Pour se faire
    On reprennant –> En reprenant
    cette comamnde avant –> cette commande avant
    Lorsque que le session –> lol
    qui moi est la plus –> qui pour moi

    Si ça peut servir à quelqu’un, j’ai dans mon .bashrc :
    # Activation date et heure dans la commande history
    HISTTIMEFORMAT= »[%d/%m/%Y %T]  »

    # Ne pas laisser de trace dans .bash_history pour certaines commandes. [ t]* consiste à mettre un espace puis taper la commande, cette commande ne figurera pas dans .bash_history
    export HISTIGNORE= »[ t]*:history:exit:firefox »

  2. Pour rappel, on n’est pas obligé de se déconnecter pour recharger la configuration de .bashrc, il suffit de faire : source ~/.bashrc

  3. Salut Cascador!

    Merci pour les corrections et pour le complément d’information :-)
    Effectivement sur ce coup, je fus très mauvais…

  4. Bonjour,

    Je ne suis pas d’accord avec la correction donnée de ‘pour se faire’.

    Dans la tournure utilisée, il s’agit bien de ‘pour ce faire’ (si dans la phrase on peut changer ‘pour ce faire’ par ‘pour faire ceci/cela c’est bien ‘ce’ et non ‘se’).

    Petite règle expliquée ici : https://www.projet-voltaire.fr/regles-orthographe/ce-faisant-ou-se-faisant-pour-ce-faire-ou-pour-se-faire/

    Pour le contenu, aucun soucis, si ce n’est que ça n’est applicable qu’à Bash et Bash n’est pas plus le seul (SH, RBASH, FISH, ZSH et j’en passe), une exposition de ces derniers pour arriver aux mêmes résultats aurait été pas mal, mais je chipote ^^

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.