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 HISTFILEvariable. Alors:
unset HISTFILE
Ceci s'applique également à zsh, mais pas à ksh, qui conserve l'enregistrement dans le fichier indiqué par le $HISTFILEdé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 HISTIGNOREvariable pour inclure des globes de commandes que vous ne souhaitez pas enregistrer. Par exemple, si vous ajoutez HISTIGNORE='ls*:cd*'à votre ~/.bashrcpuis n'importe quelle instance de lset cdne 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 ignorebothsera é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 trapindiquer au programme que le programme du terminal envoie au shell ( xtermpar exemple, SIGHUPil 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 -9de tout sauf des situations désastreuses où tout le reste a échoué.
Je suis surpris de voir que personne n'a suggéré history -cjuste avant exit. IINM (je ne suis pas un expert) qui fera très bien l'affaire.
history -rrelisez 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 15000pour réinitialiser la taille du tampon de défilement arrière.
screen(1)?
scrollback=0aussi.
Ctrl+a Hni Ctrl+a :clearva 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 Hou 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 :scrollbacksuivi 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 HISTFILEprochaine fois que je me connecte? (dites simplement si cela est correct ou incorrect)