bash nie przechowuje historii

19

Używam Ubuntu 12.04 iz jakiegoś powodu bash nie przechowuje mojej historii poleceń. ~/.bash_historyplik zawiera tylko 3 komend że Wpisałem kilka miesięcy temu.

Jak mogę to naprawić?

EDYCJA: oto odpowiednia treść mojego .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
źródło
Sprawdź ustawienia historii bash w .bashrc.
jokerdino
@ jokerdino thx, zredagowałem pytanie. To standardowe ustawienia (ich nie dotknąłem).
yohbs
Jaka jest wydajność „echo $ SHELL”?
Aaron
@ BryceAtNetwork23/bin/bash
yohbs
3
Inną rzeczą do wypróbowania jest sprawdzenie uprawnień~/.bash_history
reverendj1

Odpowiedzi:

24

Może to być także ten root: root jest właścicielem twojej .bash_history ( ROOT NIE POWINIEN BYĆ WŁAŚCICIELEM, TWÓJ UŻYTKOWNIK POWINIEN BYĆ WŁAŚCICIELEM! ), W takim przypadku musisz:

$chown user:user .bash_history

To najwyraźniej może się zdarzyć magicznie, kiedy często grasz w sudo!

mahatmanich
źródło
Wow, całkowicie się poddałem i zapomniałem o tym ... +1 i akceptuję.
yohbs
Tak, to najwyraźniej dzieje się, kiedy dużo ćwiczysz sudo! :-)
mahatmanich
2

Zakładając, że używasz gnome-terminal ??, jeśli tak, sprawdź uprawnienia w .bash_history. Powinno być-rw-r--r--

Aby to zrobić w terminalu ls -la |grep .bash, wszystkie 3 pliki powinny mieć powyższe uprawnienia. W przeciwnym razie spróbuj usunąć .bash_history, uruchom ponownie i sprawdź, czy następnie zostanie zapisana historia

Pamiętaj, że historia jest zapisywana dopiero po zamknięciu lub zamknięciu terminala.

doug
źródło
1

Jak wspomniano powyżej, można to naprawić za pomocą zmian własności użytkownika root->. Początkowe uprawnienia mogą pochodzić z -rw-r--r--dowolnej innej odmiany i własności root.

W moim przypadku miałem tylko .bash_historyroota, ale to wszystko .bash_ * musi być własnością użytkownika.

paramoreta
źródło
1
Witaj, zadaj pytanie ubuntu :) To jest 3-letnie pytanie, na które odpowiedziałeś, a rozwiązanie, o którym wspomniałeś, istnieje już w innej odpowiedzi .. po prostu zagłosuj :)
burza