当我从开始菜单的快捷方式打开 Git Bash 时,历史记录一切正常。
但是当 "Git Bash here" 上下文菜单(无论是 git-cheetah shell 扩展版还是更简单的注册表版)启动会话时,该会话中的命令不会保存到 .bash_history 中。
我应该如何找出原因?或者更好的是,有人知道如何修复这个问题吗?
通过在您的~/.bash_profile
中添加此行,您应该能够解决这个问题。
PROMPT_COMMAND='history -a'
如下所述:https://dev59.com/nWkv5IYBdhLWcg3wlR31#60718848
创建以下文件
~/.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时,也会运行.bashrc
以启动新的bash实例。在OS X上,Terminal默认每次运行登录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
PROMPT_COMMAND='history -a ~/.bash_history'
HISTCONTROL
和HISTIGNORE
。 - Hari Pachuveetil