Azure Cloud Shell 历史记录在会话间保留

Azure Cloud Shell 历史记录在会话间保留

我的 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 分钟),则不会写出历史记录。这是他们正在努力修复的一个错误。

相关内容