在工作的计算机上,即使我刚打开一个新的终端,我的bash shell也会记住以前会话的历史记录。
在我家里的电脑上,这不会发生。
我的两台计算机上都具有相同的OS 10.6.8,并且在中没有任何与历史记录相关的设置.bash_profile
。
我该如何在家用计算机上进行设置,使其记住各个会话的历史记录?
在工作的计算机上,即使我刚打开一个新的终端,我的bash shell也会记住以前会话的历史记录。
在我家里的电脑上,这不会发生。
我的两台计算机上都具有相同的OS 10.6.8,并且在中没有任何与历史记录相关的设置.bash_profile
。
我该如何在家用计算机上进行设置,使其记住各个会话的历史记录?
Answers:
您需要告诉bash历史记录文件的存放位置以及保留的行数:
# Set the location of your HISTFILE
echo "export HISTFILE=/Users/<USERNAME>/.bash_history" >> ~/.bash_profile
# Number of lines to keep (1000 in this example)
echo "export HISTFILESIZE=1000" >> ~/.bash_profile
# Set how many commands to keep in the current session history list
echo "export HISTSIZE=80" >> ~/.bash_profile
# Ignore commands that start with a space
echo "export HISTIGNORE=\"&:[ ]*:exit\"" >> ~/.bash_profile
我只是发现我有一个类似的问题,尽管我的老板只有两台Mac,而且都没有坐在我的办公桌上。不能接受,但是又是一场战斗。
无论如何,在家里,Mac Mini(从MacBook Pro迁移而来)即使在设置.bashrc
和/或后也无法配合.profile
。然后我发现我的~/.bash_history
文件神秘地归根所有。必须这样做:
sudo -iu root
cd ~(myusername)
chown (myusername) .bash_history
(是的,我知道可以用更少的命令来完成。习惯。)
然后我退出了Terminal,然后开始了新的工作。!先前丢失的各种历史都扑向了过去。真好
任何人读这本书的可能性都无意间陷入了这种困境:0.2%。我敢肯定,当我过分热衷于“修复”其他东西时,我已经把它搞砸了。
我遇到了这个问题,对我有用的是.bash_sessions_disable
在用户文件夹(~/
)中创建一个名为的文件。
基本上,OS X在.bash_sessions
每个会话的文件夹中创建历史文件(在我的情况下,每个选项卡一个)。即使正确关闭这些会话,OS X也不会重播历史记录.bash_history
。
创建.bash_sessions_disable
您将禁用此行为。
touch ~/.bash_sessions_disable
.bash_history
而不是将历史记录保留在.bash_sessions/
文件夹下。这是正确的答案,恕我直言。
SHELL_SESSION_HISTORY
为0来关闭每个会话的命令历史记录行为,如中所述/etc/bashrc_Apple_Terminal
。
我也有类似的问题,没有历史记录。给定的解决方案不起作用,但最终我发现问题很简单,就像缺少的.bash_history
解决的办法是转到/home/[username]/
并添加文件.bash_history
,因此
nano .bash_history
然后在文件中键入任何内容(否则将不会创建),退出并保存。此后,历史记录开始正常运行。