J'ai émis de nombreuses commandes hier dans mon CentOS 7. Mais quand j'ai voulu récupérer ces commandes aujourd'hui, j'ai trouvé qu'il n'y avait aucun enregistrement. Lorsque j'ai ouvert le fichier .bash_history
, je n'ai toujours pas pu trouver les commandes que j'ai émises hier, mais j'ai trouvé de nombreuses anciennes commandes il y a quelques jours. Pourquoi les commandes récentes n'ont-elles pas été stockées? Comment puis-je augmenter la capacité d'historique?
bash
command-history
Jack
la source
la source
Réponses:
La cause la plus probable pour les éléments d'historique de ne pas apparaître n'est pas en définissant
HISTFILE
à rien ouHISTSIZE
à zéro, c'est en se connectant deux fois à la même machine et en quittant avec la deuxième instance bash (dans laquelle vous avez fait peu ou rien) après celle où vous en avez fait beaucoup. Par défaut, Bash ne fusionne pas les historiques et la deuxième sortie Bash écrase celle.bash_history
qui a été si bien mise à jour par la première sortie Bash.Pour éviter que cela ne se produise, vous pouvez ajouter au fichier historique au lieu de l'écraser, vous pouvez utiliser l'
histappend
option shell:Plus de détails dans cette réponse , y compris comment utiliser
HISTSIZE
,HISTFILESIZE
etHISTCONTROL
pour contrôler la taille, les doublons , etc.la source
Pour modifier l' utilisation de la taille de l' histoire deux variables BASH
HISTSIZE
,HISTFILESIZE
(généralement gréée.bashrc
).Description de la page de manuel BASH:
Par exemple, j'ai la configuration suivante dans mon
.bashrc
fichier:la source
J'ai eu cela, mais la solution n'était pas répertoriée ici. La cause était juste un simple problème de copier-coller. Je copiais une commande d'un autre document et j'avais un espace blanc supplémentaire dans le presse-papiers. Pour une raison quelconque, cela a empêché Ubuntu de sauvegarder la commande dans le fichier historique.
L'image ci-dessus était la commande que j'avais dans mon presse-papiers sous forme de documents Google. Cette commande a fonctionné mais a été omise de mon historique. Je viens de revenir en arrière et j'ai sélectionné la commande sans espace, puis elle est apparue dans l'historique de bash.
la source
Vérifiez que votre
HISTCONTROL
variable d'environnement n'est pas définie surignorespace
ouignoreboth
.Vous pouvez le modifier en définissant la valeur dans votre
~/.bash_profile
ou votre~/.profile
fichier:Depuis la
bash
page de manuel:la source