Je travaille sur une cible x86 sous fedora 9.
Chaque fois que je le redémarre, mon historique revient à un état et je n'ai pas de commandes que j'ai exécutées dans les sessions avant le redémarrage.
Qu'est-ce que je dois changer pour avoir mis à jour l'historique que j'avais avant de redémarrer?
Réponses:
Quelle histoire? bash-histoire? Si vous perdez l'historique bash et que vous avez plusieurs sessions à la fois, c'est parce que chaque session écrase l'historique des autres sessions.
Vous voudrez probablement dire à bash de ne pas écraser l’historique à chaque fois, mais plutôt de l’ajouter. Vous pouvez le faire en modifiant votre .bashrc à exécuter
shopt -s histappend
.Vous pouvez également augmenter la taille de votre fichier d’historique en exportant HISTSIZE afin qu’il s’agisse d’un nombre important (c’est en octets, donc 100 000 devrait être suffisant).
la source
HISTSIZE
est le nombre de commandes à retenir, pas le nombre d'octets.Je souffrais du même problème - mais mon
.bashrc
dossier avait déjàshopt -s histappend
et correctHISTFILE
,HISTSIZE
,HISTFILESIZE
.Pour moi, le problème était que mon
.bash_history
fichier appartenait à root plutôt qu'à mon nom d'utilisateur. Mon utilisateur ne pouvait donc jamais enregistrer ce fichier à la sortie.la source
sudo chmod your_user_name .bash_history
l'a fait! Merci.sudo chown user_name:user_name ~.bash_history
résolu!Recherchez les variables d’environnement HISTFILE, HISTSIZE, HISTFILESIZE.
la source
J'ai écrit un script pour définir un fichier d'historique par session ou tâche, en fonction des éléments suivants.
Il n’est pas nécessaire de sauvegarder toutes les commandes de l’historique, mais il enregistre celles qui me tiennent à cœur et il est plus facile de les récupérer que de passer en revue chaque commande. Ma version répertorie également tous les fichiers d’historique et offre la possibilité de les parcourir tous.
Source complète: https://github.com/simotek/scripts-config/blob/master/hiset.sh
la source
J'ai écrit quelques lignes dans mon .bashrc qui accomplissent les tâches suivantes: Enregistrez chaque session après chaque commande dans un fichier. Il y aura autant de fichiers d'historique que vous avez déjà démarré de terminaux. Lors du démarrage d'un nouveau terminal à partir du fichier d'historique le plus récent, chargez tous les fichiers d'historique des sessions précédentes dans le tampon d'historique jusqu'à ce qu'un seuil de nombre de lignes soit atteint.
la source
Je m'assurerais que .bash_history existe. Si ce n'est pas le cas, bash n'aura nulle part où enregistrer l'historique des commandes.
si .bash_history n'existe pas, créez-le en exécutant touch:
cela crée simplement le fichier .bash_history vide dans votre répertoire personnel, qui se remplira de vos commandes et devrait persister entre les sessions.
la source
Mon instance Amazon EC2 Ubuntu ne sauvegardait pas l'historique.
.bashrc
avait toutes les commandes requises comme mentionné dans d'autres réponses, mais la seule chose qui manquait était le fichier. Je devais le toucher pour le faire fonctionner.la source
Bonne réponse à cette question est ici:
http://linuxcommando.blogspot.com/2007/11/keeping-command-history-across-multiple.html
la source