web-dev-qa-db-fra.com

Historique Bash ne contenant pas tout l'historique et vide après le redémarrage, comment résoudre le problème?

J'ai récemment mis à niveau de 13.04 à 13.10 et réalisé que mon historique de bash terminal n'est pas survivre redémarrages.

cat ~/.bash_history m'a donné une erreur d'autorisations refusées.

J’ai, inutilement ou à tort, publié un chmod 777 ~/.bash_history pour voir si cela aiderait… et même si je pouvais alors cat et lire certains contenus, il ne contenait pas grand-chose de l’histoire.

J'ai aussi essayé Sudo rm ~/.bash_history après avoir lu l'historique de bash n'est pas préservé

Bizarrement, après avoir fait cela, j’ai tapé quelques commandes de test, ls, ls -lah ... et en appuyant sur la flèche vers le haut pour revenir en arrière dans l’historique, elle contenait ces deux commandes ainsi que l’historique impair de un peu de temps dans le passé mais très peu de résultats et pas les centaines de commandes que j'ai tapées plus tôt dans la journée.

Existe-t-il un nouveau lieu où l'historique de bash est enregistré? Comment peut-on supprimer ~/.bash_history pour ne pas se débarrasser des commandes qui restent? Je ne suis pas certain, mais je crois que mon histoire de bash racine est normale. Mon historique utilisateur bash est ce qui me cause des problèmes. Toute aide et conseils pour dépister et résoudre ce problème sont les bienvenus.

3
TryTryAgain

Aussi pathétique que cela puisse paraître, cela s'est résolu après un redémarrage. Je ne suis pas sûr de ce que cela signifie et je déteste proposer une solution avec une solution aussi générique. Peut-être un redémarrage est-il nécessaire après avoir supprimé et recréé le ~/.bash_history je ne sais pas pourquoi et nulle part j'ai lu que c'était une exigence. Si je découvre quelque chose de plus spécifique, je posterai mes résultats.

0
TryTryAgain

la solution correcte consiste à garantir les autorisations correctes sur votre fichier .bash_history

  • obtenez vos informations d'utilisateur et de groupe en utilisant l'outil 'id'. la sortie devrait ressembler à: uid=1000(myuser) gid=1000(mygroup)
  • changer la propriété du fichier: Sudo chown myuser:mygroup ~/.bash_history
  • changer les permissions du fichier: Sudo chmod 0644 ~/.bash_history

en dehors de /tmp il y a NO problème que chmod 777 résout. vous devez cesser complètement d'utiliser cet ensemble d'autorisations jusqu'à ce que vous soyez pleinement conscient des implications.

2
user1574773

Encore plus vite sans avoir à jouer avec chown et chmod:

Connecté en tant qu'utilisateur dont l'historique n'est pas sauvegardé:

Sudo rm ~/.bash_history
touch ~/.bash_history

Assurez-vous de ne taper aucune commande entre les 2 ci-dessus

1
Dave