Existe-t-il un moyen de suspendre temporairement le suivi de l’historique dans bash, de manière à entrer dans une sorte de mode "incognito"? J'entre des informations dans mon terminal que je ne veux pas, des informations financières sensibles.
bash
command-history
Naftuli Kay
la source
la source
HISTFILE
n'est vérifiée que lorsque bash se ferme, de sorte que la première méthode ne fonctionne pas telle quelle (si vous restaurez la valeur, la commande sera enregistrée).set +o history
ne fonctionne comme dirigé.set +o history
etset -o history
basculer quand je fais des trucs secrets;)unset HISTFILE
ne marche pas.set -/+o history
fonctionne comme un charme! merciÀ l'aide de bash, définissez
HISTCONTROL="ignorespace"
et faites précéder d'un espace toute commande que vous ne souhaitez pas enregistrer dans l'historique. Si vous avez oublié de prendre des mesures, vous pouvez égalementhistory -d <number>
supprimer une entrée spécifique ouhistory -c
effacer l’historique complet des commandes.la source
Assurez-vous que
HISTCONTROL
contientignorespace
. Vous voudrez probablement ajouterHISTCONTROL=ignorespace
(HISTCONTROL=ignoredups:ignorespace
ou quelque chose) à votre~/.bashrc
. Ensuite, toute ligne de commande commençant par un espace est omise de l'historique.Une autre possibilité consiste à démarrer une nouvelle session bash qui n'enregistre pas l'historique.
la source
Si vous devez éviter de stocker plusieurs commandes et que vous souhaitez toujours utiliser la flèche vers le haut pour accéder aux commandes précédentes, utilisez:
Il existe quatre manières (niveaux) de contrôler la manière dont les commandes sont stockées.
La première et la plus simple consiste à utiliser
ignorespace
(ou à ignorer):Cela permettra d'utiliser un espace avant les commandes que vous souhaitez éviter d'être enregistrées dans la liste de mémoire
history
. En conséquence, aucune commande enregistrée en mémoire pouvant être envoyée au fichier évitera également l’ envoi d’ une commande au fichier répertorié dans$HISFILE
.Évitez d’enregistrer des commandes dans le fichier dans
$HISTFILE
:Null
HISTFILE=''
et / ou paramétré pourHISTFILE=/dev/null
fonctionner dans le même sens. Comprenez que les commandes sont toujours enregistrées dans la liste de mémoire, essayez lahistory
commande ou la flèche vers le haut.Attention: si HISTFILE est réinitialisé avant que le shell existe, tout ce qui a été enregistré en mémoire pourrait quand même être écrit dans le fichier.
Évitez d’enregistrer de nouvelles commandes dans l’historique. Et, comme ne pas être en mémoire, ne peut pas être enregistré dans un fichier.
Réactiver avec
shopt -os history
(ouset -o history
)Supprime toutes les commandes de la liste d'historique en mémoire:
Toutes les commandes sont effacées (de la mémoire) et par conséquent, rien ne peut être stocké dans un fichier, bien sûr, jusqu'à ce que la variable soit redéfinie sur une valeur numérique valide.
la source
man history
ne va pas le couper pour la plupart d'entre nous.HISTIGNORE
, quesubsumes
la fonction deHISTCONTROL
.LESS=+'/^ *HISTI' man bash
(n'est-ce pas les "pages de manuel"?). @NathanBasaneseIl existe un moyen simple de désactiver l'historique pour que les commandes ne soient pas stockées dans le
.bash_history
fichier.Vous devez mettre les espaces ou les espaces de tabulation devant toute commande afin que cette commande ne soit pas stockée dans l'historique. Par exemple:
La
pwd
commande ne sera pas enregistrée dans l'historique, car elle comporte des espaces à l'avant.la source
C'est ma façon de faire. HISTORY / HISTFILE / HISTCONTROL, etc ... ne fonctionne pas, l'exporter vers / dev / null a toujours fonctionné pour moi.
la source
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)