Bash hält nicht die Geschichte

19

Ich führe Ubuntu 12.04 aus und aus irgendeinem Grund speichert bash nicht meinen Befehlsverlauf. Die ~/.bash_historyDatei enthält nur 3 Befehle, die ich vor ein paar Monaten eingegeben habe.

Wie kann ich das beheben?

EDIT: hier ist der relevante Inhalt von meinem .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
quelle
Überprüfen Sie die Einstellungen Ihres Bash-Verlaufs in .bashrc.
jokerdino
@jokerdino thx, ich habe die Frage bearbeitet. Dies sind die Standardeinstellungen (ich habe sie nicht berührt).
Yohbs
Was ist die Ausgabe von "echo $ SHELL"?
Aaron
@ BryceAtNetwork23/bin/bash
yohbs
3
Eine andere Sache, die Sie versuchen sollten, ist die Überprüfung der Berechtigungen von~/.bash_history
reverendj1

Antworten:

24

Es könnte auch sein, dass root: root Ihre .bash_history besitzt ( ROOT SOLLTE NICHT DER BESITZER SEIN, IHR BENUTZER SOLLTE DER BESITZER SEIN! ), In diesem Fall müssen Sie:

$chown user:user .bash_history

Dies könnte anscheinend auf magische Weise passieren, wenn Sie viel sudo bash machen!

mahatmanich
quelle
Wow, ich habe das komplett aufgegeben und es vergessen ... +1 und akzeptiere.
Yohbs
Ja, das passiert anscheinend, wenn du viel sudo bashst! :-)
mahatmanich
2

Angenommen, Sie verwenden gnome-terminal ?, überprüfen Sie in diesem Fall möglicherweise die Berechtigungen für .bash_history. Es sollte sein-rw-r--r--

Um dies in einem Terminal zu tun ls -la |grep .bash, sollten alle 3 Dateien die oben genannten Berechtigungen haben. Versuchen Sie andernfalls, .bash_history zu löschen, starten Sie neu und prüfen Sie, ob dann ein Verlauf geschrieben wird

Beachten Sie, dass der Verlauf nur geschrieben wird, wenn das Terminal geschlossen oder beendet wird.

doug
quelle
1

Wie oben erwähnt, kann dies durch Änderungen der Root-> Benutzerrechte behoben werden. Die anfänglichen Berechtigungen können von -rw-r--r--oder von einer anderen Variation und Root-Eigentümerschaft stammen.

In meinem Fall hatte ich nur .bash_historyroot im Besitz, aber es ist alles von .bash_ *, was dem Benutzer gehören muss.

paramoreta
quelle
1
Ubuntu Willkommen zu fragen :) Dies ist eine 3 Jahre alt beantworteten Frage , und die Lösung bereits vorhanden in einer anderen Antwort erwähnt .. es einfach vote up :)
Sturm