bash 不保留历史记录

bash 不保留历史记录

我运行的是 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

答案1

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

$ chown user:user .bash_history

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

答案2

假设您正在使用 gnome-terminal??,如果是的话,也许可以检查 .bash_history 的权限。应该是-rw-r--r--

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

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

答案3

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

就我而言,只有.bash_historyroot 拥有它,但整个 .bash_* 必须由用户拥有。

相关内容