我的 Azure Cloud Shell 历史记录无法跨会话保留(10 分钟后超时,因此这很烦人).bashrc
。
# 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_history
写入。
答案1
根据您的描述,您的 shell 环境变量似乎设置不正确。我在我的 Azure VM 上测试过,它对我来说是有效的。我建议您按照以下方法进行检查。
1.检查您当前的shell。
您可以使用它echo $SHELL
来获取当前 shell。profile.bashrc
用于 bash shell。如果您使用其他 shell,例如 csh,则它不起作用。
2.检查.profile
文件。请确保以下命令存在。
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
3.检查.profile
用户.bashrc
和组权限。
-rw-r--r-- 1 shui shui 3771 Aug 31 2015 .bashrc
更新:
Cloud Shell 不会将历史命令保存到.bash_history
。如果你想这样做。你可以添加export PROMPT_COMMAND='history -a'
到.bashrc
。例如 belwo:
# append to the history file, don't overwrite it
shopt -s histappend
export PROMPT_COMMAND='history -a'
然后你就可以了source .profile
。现在,你可以找到.bash_histroy
并存储你最新的历史命令。
注意:不建议这样做,因为其他人可以看到你的命令,这是不安全的行为。
答案2
到目前为止,bash 历史记录会在 bash 进程成功退出时写出。如果发生过早超时(现在增加到 20 分钟),则不会写出历史记录。这是他们正在努力修复的一个错误。