“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'
【讨论】:
谢谢!我最终也使用了HISTCONTROL
和HISTIGNORE
。
对我不起作用。我需要设置一个 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 历史记录 [重复]的主要内容,如果未能解决你的问题,请参考以下文章