Plus d'une fois, j'ai accidentellement exécuté plusieurs commandes et pollué mon historique bash. Comment fermer mon terminal sans sauvegarder mon historique bash? J'utilise Fedora.
Plus d'une fois, j'ai accidentellement exécuté plusieurs commandes et pollué mon historique bash. Comment fermer mon terminal sans sauvegarder mon historique bash? J'utilise Fedora.
Réponses:
L'historique de votre shell est enregistré dans le fichier indiqué par la HISTFILE
variable. Alors:
unset HISTFILE
Ceci s'applique également à zsh, mais pas à ksh, qui conserve l'enregistrement dans le fichier indiqué par le $HISTFILE
démarrage du shell (et inversement, vous décidez de sauvegarder votre historique dans ksh une fois que vous avez démarré le shell).
Réponse courte:
Tapez ceci à l'invite:
$ kill -9 $$
Cela va tuer immédiatement votre shell sans que celui-ci puisse faire quoi que ce soit , comme intercepter le signal, sauvegarder l'historique, exécuter ~/.bash_logout
, avertir des tâches arrêtées ou de ces bonnes choses.
Longue réponse:
Remarque: ces options ne s'excluent pas mutuellement. ils peuvent tous être utilisés à la fois.
Option 1:
Si vous êtes un perfectionniste lorsqu'il s'agit d'encombrer votre fichier d'historique, vous pouvez modifier la HISTIGNORE
variable pour inclure des globes de commandes que vous ne souhaitez pas enregistrer. Par exemple, si vous ajoutez HISTIGNORE='ls*:cd*'
à votre ~/.bashrc
puis n'importe quelle instance de ls
et cd
ne sont pas insérés dans votre fichier d'historique.
Option 2:
Si vous souhaitez contrôler commande par commande les commandes qui restent en dehors de votre historique, vous pouvez définir HISTCONTROL='ignorespace'
quelle ligne de commande doit commencer par un espace. Utiliser ignoreboth
sera également omettre les lignes répétées. Ensuite, si vous appuyez sur la barre d'espace avant d'entrer une commande, celle-ci ne sera pas affichée dans votre fichier historique.
Option 3:
Si vous voulez simplement faire en sorte que lorsque vous fermez le terminal, le shell quitte immédiatement, vous pouvez trap
indiquer au programme que le programme du terminal envoie au shell ( xterm
par exemple, SIGHUP
il attend ensuite que le shell se ferme) et permet de quitter sans sauvegarder l'historique reçoit ce signal. Ajoutez ceci à votre ~/.bashrc
:
# don't record history when the window is closed
trap 'unset HISTFILE; exit' SIGHUP
kill -9
de tout sauf des situations désastreuses où tout le reste a échoué.
Je suis surpris de voir que personne n'a suggéré history -c
juste avant exit
. IINM (je ne suis pas un expert) qui fera très bien l'affaire.
history -r
relisez le fichier d'historique, l'enregistrement devient donc une opération nuls.
Bash utilise deux variables d’environnement pour déterminer le fichier d’historique et le nombre de lignes à écrire à la sortie du shell.
Vous pouvez jeter l'historique de votre session avec l'un de ces éléments (défini pendant la session que vous souhaitez omettre de votre fichier d'historique):
HISTFILE=/dev/null
ou
HISTSIZE=0
L’une ou l’autre de ces méthodes fonctionne bien dans Bash sur Fedora
Vous ne savez pas trop pourquoi vous vous souciez de votre historique de commandes. Si vous avez souvent besoin de certaines commandes, vous aurez peut-être plus de plaisir si vous définissez des alias pour pouvoir les récupérer avec deux séquences de touches au lieu de devoir les rechercher dans l'historique.
Eli vous a déjà donné la bonne réponse pour Bash qui doit être définie HISTSIZE=0
.
Je voudrais juste ajouter la méthode pour le faire pour l' écran GNU . Appuyez sur Ctrl+A
(séquence d'échappement d'écran) suivi de :scrollback 0
. Cela supprimera l’historique de défilement. Vous pouvez maintenant faire immédiatement :scrollback 15000
pour réinitialiser la taille du tampon de défilement arrière.
screen(1)
?
scrollback=0
aussi.
Ctrl+a H
ni Ctrl+a :clear
va supprimer l'histoire. Vous avez besoin Ctrl+a :scrollback 0
. Vous pouvez le tester vous-même. Démarrer une nouvelle session d'écran. Maintenant, fais un cat /etc/passwd
. Maintenant, faites l’un des choix ci-dessus - Ctrl+a H
ou Ctrl+a :clear
. Maintenant, essayez de copier depuis le tampon d’écran en faisant un don Ctrl+a [
suivi d’une flèche vers le haut pour aller jusqu’à voir jusqu’à quelle distance vous pouvez aller pour copier. Si vous avez fait un Ctrl+a :scrollback
suivi d'un clear
, vous n'iriez que dans la mesure où vous pouvez voir dans la fenêtre en cours car il n'y aura pas de tampon de défilement.
set HISTFILE
prochaine fois que je me connecte? (dites simplement si cela est correct ou incorrect)