bash non mantiene la storia


19

Eseguo Ubuntu 12.04 e per qualche ragione bash non mantiene la cronologia dei miei comandi. il ~/.bash_historyfile contiene solo 3 comandi che ho digitato qualche mese fa.

Come posso risolvere questo problema?

EDIT: ecco il contenuto pertinente del mio .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

Controlla le impostazioni della cronologia di bash in .bashrc.
jokerdino

@jokerdino thx, ho modificato la domanda. Sono le impostazioni standard (non le ho toccate).
giovedì

Qual è l'output di "echo $ SHELL"?
Aaron,

@ BryceAtNetwork23/bin/bash
yohbs

3
Un'altra cosa da provare è controllare le autorizzazioni di~/.bash_history
reverendj1

Risposte:


24

Potrebbe anche essere quel root: root possiede il tuo .bash_history ( ROOT DOVREBBE ESSERE IL PROPRIETARIO, IL TUO UTENTE DOVREBBE ESSERE IL PROPRIETARIO! ), In tal caso devi:

$chown user:user .bash_history

Questo a quanto pare potrebbe accadere magicamente quando fai molto sudo bash!


Wow, ho completamente rinunciato a questo e me ne sono dimenticato ... +1 e accetto.
yohbs,

Sì, questo a quanto pare succede quando fai molto sudo bash! :-)
mahatmanich,

2

Supponendo che tu stia utilizzando gnome-terminal ??, in tal caso forse controlla le autorizzazioni su .bash_history. Dovrebbe essere-rw-r--r--

Per fare ciò in un terminale ls -la |grep .bash, tutti e 3 i file dovrebbero avere le autorizzazioni di cui sopra. Altrimenti prova a eliminare .bash_history, riavvia e verifica se viene scritta una cronologia

Si noti che la cronologia viene scritta solo una volta chiuso o chiuso il terminale.


1

Come commentato sopra, questo può essere risolto con le modifiche alla proprietà dell'utente root->. Autorizzazioni iniziali possono essere da -rw-r--r--o qualsiasi altra variazione e la radice di proprietà.

Nel mio caso avevo solo la .bash_historyproprietà di root ma è tutto di .bash_ * che deve essere di proprietà dell'utente.


1
Benvenuti a porre Ubuntu :) Questa è una domanda con risposta di 3 anni e la soluzione che hai menzionato esiste già in un'altra risposta .. votala su :)
tempesta
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.