“Git Bash here”并不保留会话之间的bash历史记录

时间:2013-01-07 15:59:08

标签: bash shell windows-7 git-bash msysgit

我在Windows 7上运行Git-1.8.0-preview20121022,安装时只使用“Git Bash”(对Windows cmd最少侵入)。

当我从开始菜单快捷方式打开Git Bash时,历史记录一切正常。

但是当Git Bash here上下文菜单(git-cheetah shell扩展名一个或更简单的注册表一个)启动会话时,该会话中的命令不会保存到{{1} }。

怎么能弄清楚为什么会这样?或者更好的是,有人知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:15)

您应该可以通过将此行添加到~/.bash_profile

来解决此问题
PROMPT_COMMAND='history -a'

答案 1 :(得分:6)

如此处所述 https://stackoverflow.com/a/60718848/6680510

创建以下文件

~/.bash_profile
~/.bashrc

然后将以下两行都放入

PROMPT_COMMAND='history -a'

要从控制台(git bash)本身执行此操作,请使用以下命令 命令

echo "PROMPT_COMMAND='history -a'" >> ~/.bash_profile
echo "PROMPT_COMMAND='history -a'" >> ~/.bashrc

history -a的含义

通过history --help命令

-a将此会话的历史行附加到历史文件中

什么是PROMPT_COMMAND

Bash提供了一个名为PROMPT_COMMAND的环境变量。该变量的内容仅作为常规Bash命令执行 在Bash显示提示之前。

.bash_profile.bashrc之间的差异

对登录Shell执行

.bash_profile,而对.bashrc执行 为交互式非登录外壳执行。

通过控制台登录(键入用户名和密码)时, 坐在机器上,还是通过ssh远程:执行.bash_profile 在初始命令提示符之前配置外壳程序。

但是,如果您已经登录到计算机并打开一个新的 终端窗口(xterm),然后在窗口之前执行.bashrc 命令提示符。启动新的bash实例时也会运行.bashrc 在终端中输入/ bin / bash。

在OS X上,默认情况下,终端每次都会运行一个登录shell,因此这是 与大多数其他系统稍有不同,但是您可以对其进行配置 在首选项中。

参考

https://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc

答案 2 :(得分:5)

PROMPT_COMMAND='history -a ~/.bash_history'

进入.bash_profile为我做了。