“Git Bash here”没有保留会话之间的 bash 历史记录 [重复]

Posted

技术标签:

【中文标题】“Git Bash here”没有保留会话之间的 bash 历史记录 [重复]【英文标题】:"Git Bash here" is not preserving bash history between sessions [duplicate] 【发布时间】:2012-12-21 09:21:04 【问题描述】:

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

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

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

如何弄清楚为什么会发生这种情况?或者更好的是,有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

您应该可以通过将此行添加到您的 ~/.bash_profile 来解决此问题

PROMPT_COMMAND='history -a'

【讨论】:

谢谢!我最终也使用了HISTCONTROLHISTIGNORE 对我不起作用。我需要设置一个 HISTFILE。 这在 Win 7 64 位上对我有用。由于无法正常工作而将头发扯掉了一段时间-然后意识到我是使用 Windows 行尾创建的,这会中断。如果遇到问题,请使用支持此功能的编辑器仔细检查您保存的 Unix 行尾 - 而不是例如记事本!【参考方案2】:

投入

PROMPT_COMMAND='history -a ~/.bash_history'

进入 .bash_profile 为我做了。

【讨论】:

【参考方案3】:

这里提到:https://***.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 在窗口之前执行 命令提示符。 .bashrc 也会在您启动新的 bash 实例时运行 在终端中输入 /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

【讨论】:

以上是关于“Git Bash here”没有保留会话之间的 bash 历史记录 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用git bash here拉取项目

错误 - 在Windows 7中使用“Git Bash Here”时,“文件扩展名.vbs没有脚本引擎”

右键单击时“Git Bash here”不起作用

GIT 右键Git Bash Here菜单消失的问题

使用git bash here上传代码到GitHub

我是不是正确使用 PHP 会话在表单之间保留数据? [复制]