13

我在 Windows 7 上运行 Git-1.8.0-preview20121022 并且安装是使用“仅 Git Bash”(对 Windows cmd 的干扰最小)。

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

但是,当Git Bash here上下文菜单(git-cheetahshell 扩展之一或更简单的注册表)是启动会话的内容时,来自该会话的命令不会保存到.bash_history.

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

4

3 回答 3

20

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

PROMPT_COMMAND='history -a'
于 2013-01-07T16:02:14.733 回答
10

如此处所述: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

.bash_profile对登录 shell.bashrc执行,而对交互式非登录 shell 执行。

当您通过控制台登录(输入用户名和密码)时,无论是坐在机器上,还是通过 ssh 远程登录:在初始命令提示符之前执行 .bash_profile 以配置您的 shell。

但是,如果您已经登录到您的机器并打开了一个新的终端窗口 (xterm),那么 .bashrc 会在窗口命令提示符之前执行。当您通过在终端中键入 /bin/bash 来启动新的 bash 实例时,也会运行 .bashrc。

在 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

于 2020-03-17T12:50:51.107 回答
5

推杆

PROMPT_COMMAND='history -a ~/.bash_history'

进入 .bash_profile 为我做了。

于 2014-03-02T03:11:31.850 回答