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.
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 »
Pour rappel, on n’est pas obligé de se déconnecter pour recharger la configuration de .bashrc, il suffit de faire : source ~/.bashrc
Salut Cascador!
Merci pour les corrections et pour le complément d’information :-)
Effectivement sur ce coup, je fus très mauvais…
Exemples complémentaires :
https://wiki.visionduweb.fr/index.php?title=Utiliser_des_commandes_shell_avec_le_terminal#Vider_l.27historique_du_terminal
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 ^^