bash ne garde pas l'histoire

19

J'exécute Ubuntu 12.04, et pour une raison quelconque, bash ne conserve pas l'historique de mes commandes. le ~/.bash_historyfichier ne contient que 3 commandes que j'ai tapées il y a quelques mois.

Comment puis-je réparer cela?

EDIT: voici le contenu pertinent de mon .bashrc:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
yohbs
la source
Vérifiez vos paramètres d'historique bash dans .bashrc.
jokerdino
@jokerdino thx, j'ai édité la question. Ce sont les paramètres standard (je ne les ai pas touchés).
yohbs
Quelle est la sortie de "echo $ SHELL"?
Aaron
@ BryceAtNetwork23/bin/bash
yohbs
3
Une autre chose à essayer est de vérifier les autorisations de~/.bash_history
reverendj1

Réponses:

24

Il peut également s'agir de root: root possède votre .bash_history ( ROOT NE DEVRAIT PAS ÊTRE LE PROPRIÉTAIRE, VOTRE UTILISATEUR DEVRAIT ÊTRE LE PROPRIÉTAIRE! ), Dans ce cas, vous devez:

$chown user:user .bash_history

Cela pourrait apparemment se produire comme par magie lorsque vous faites beaucoup de sudo bash!

mahatmanich
la source
Wow, j'ai complètement abandonné et j'ai oublié ... +1 et j'accepte.
yohbs
Oui, cela se produit apparemment lorsque vous faites beaucoup de sudo bash! :-)
mahatmanich
2

En supposant que vous utilisez gnome-terminal ??, si c'est le cas, vérifiez les autorisations sur .bash_history. Ça devrait être-rw-r--r--

Pour ce faire dans un terminal ls -la |grep .bash, les 3 fichiers doivent avoir les autorisations ci-dessus. Sinon, essayez de supprimer .bash_history, redémarrez et voyez si un historique est alors écrit

Notez que l'historique n'est écrit qu'une fois le terminal fermé ou fermé.

doug
la source
1

Comme indiqué ci-dessus, cela peut être résolu par des changements de propriété root-> utilisateur. Les autorisations initiales peuvent provenir de -rw-r--r--ou toute autre variante et propriété racine.

Dans mon cas, je n'avais .bash_historyappartenu qu'à root mais c'est tout .bash_ * qui doit appartenir à l'utilisateur.

paramoreta
la source
1
Bienvenue pour demander à ubuntu :) Ceci est une question à laquelle il a été répondu il y a 3 ans et la solution que vous avez mentionnée existe déjà dans une autre réponse .. votez simplement :)
tempête