bash不保留历史


19

我运行Ubuntu 12.04,由于某种原因,bash无法保留我的命令历史记录。该~/.bash_history文件仅包含我几个月前键入的3条命令。

我怎样才能解决这个问题?

编辑: 这是我的相关内容.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

在中检查您的bash历史记录设置.bashrc
jokerdino

@jokerdino thx,我编辑了问题。这是标准设置(我没有触摸它们)。
yohbs 2012年

“ echo $ SHELL”的输出是什么?
亚伦

@ BryceAtNetwork23/bin/bash
yohbs 2012年

3
另一尝试是检查~/.bash_history
reverendj1 2012年

Answers:


24

也可能是root:root拥有您的.bash_history(ROOT不应该是所有者,您的用户应该是所有者!),在这种情况下,您需要:

$chown user:user .bash_history

当您经常执行sudo bash时,这显然可能会神奇地发生!


哇,我完全放弃了,忘了它... +1并接受。
yohbs

是的,当您经常执行sudo bash时,这显然会发生!:-)
mahatmanich

2

假设您使用的是gnome-terminal ??,如果可以,请检查.bash_history的权限。它应该是-rw-r--r--

为此,在终端中ls -la |grep .bash,所有3个文件都应具有上述权限。否则,请尝试删除.bash_history,重新启动并查看是否写入了历史记录

请注意,仅在终端关闭或退出后才写入历史记录。


1

如上所述,可以通过root-> user所有权更改来解决此问题。初始权限可以来自-rw-r--r--或具有任何其他变体和根所有权。

在我的情况下,我只有.bash_historyroot拥有,但.bash_ *必须全部由用户拥有。


1
欢迎索取Ubuntu的:)这是一个3岁回答的问题,你已经提到存在于另一个答案的解决方案..只是投上一票:)
风暴
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.