我删除了.bash_history,现在历史不再保存(虽然我重新创建了它)


5

我刚刚安装了El Capitan的新副本。我意外地删除了.bash_history,所以我只是做了一个 touch .bash_history 再次,希望这将解决我关闭和重新打开终端时不记得我的bash历史的问题。

但事实并非如此。我不明白为什么。

Macbuech:~ josh$ ~/.bash_history
-bash: /Users/josh/.bash_history: Permission denied
Macbuech:~ josh$ ls ~/.bash_history
/Users/josh/.bash_history
Macbuech:~ josh$ echo $HISTSIZE
500
Macbuech:~ josh$ echo $HISTFILESIZE
500
Macbuech:~ josh$ echo $HISTFILE
/Users/josh/.bash_sessions/9817540A-F021-4E1A-93A1-B322BC4738AB.historynew
Macbuech:~ josh$ echo $HISTTIMEFORMAT

我摆弄了一下 .bash_profile 据说,让一些颜色有效 本文

export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GFh'

我再次删除所有的东西,以确保问题不在那里。所以这是我的 .bash_profile

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

这个网站 说RVM可能有问题,我尝试添加一个 .bash_logoutshell_session_update 在其中,但没有成功。

任何帮助都非常感谢。

这是我完整的环境:

Macbuech:~ josh$ env
rvm_bin_path=/Users/josh/.rvm/bin
TERM_PROGRAM=Apple_Terminal
GEM_HOME=/Users/josh/.rvm/gems/ruby-2.2.4
SHELL=/bin/bash
TERM=xterm-256color
IRBRC=/Users/josh/.rvm/rubies/ruby-2.2.4/.irbrc
TMPDIR=/var/folders/sq/92dr708946s01kttg916m6xm0000gn/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.9AJd6SsR1y/Render
TERM_PROGRAM_VERSION=361.1
MY_RUBY_HOME=/Users/josh/.rvm/rubies/ruby-2.2.4
TERM_SESSION_ID=9817540A-F021-4E1A-93A1-B322BC4738AB
rvm_stored_umask=0022
USER=josh
_system_type=Darwin
rvm_path=/Users/josh/.rvm
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.gZZeyimp2O/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
rvm_prefix=/Users/josh
PATH=/Users/josh/.rvm/gems/ruby-2.2.4/bin:/Users/josh/.rvm/gems/ruby-2.2.4@global/bin:/Users/josh/.rvm/rubies/ruby-2.2.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/josh/.rvm/bin
rvm_loaded_flag=1
PWD=/Users/josh
_system_arch=x86_64
XPC_FLAGS=0x0
_system_version=10.11
XPC_SERVICE_NAME=0
rvm_version=1.26.11 (master)
SHLVL=1
HOME=/Users/josh
LOGNAME=josh
GEM_PATH=/Users/josh/.rvm/gems/ruby-2.2.4:/Users/josh/.rvm/gems/ruby-2.2.4@global
LC_CTYPE=UTF-8
RUBY_VERSION=ruby-2.2.4
rvm_user_install_flag=1
_system_name=OSX
_=/usr/bin/env

什么是输出 ls -la ~/.bash_history ?也许这是权限问题?这是我的: -rw------- 1 myusername staff 10852 18 gru 20:41 /Users/myusername/.bash_history
Mateusz Szlosek

$ ls -la ~/.bash_history -rw-r--r-- 1 josh staff 3B Dec 31 08:38 /Users/josh/.bash_history
Joshua Muheim

在触摸.bash_history后你重启了shell(或终端本身)吗?
nohillside

我确实做到了。
Joshua Muheim

你可以暂时删除你的 ~/.bash_profile,启动一个新的登录shell,检查是否有同样的问题,在你的OQ中报告。
daniel Azuelos

Answers:


7

我愿意删除.bash_history文件后遇到了同样的问题。

简单的解决方案是不仅触摸文件,还添加一些文本 - 一个或多个换行符 足够:

echo "exit" >> ~/.bash_history

然后完全退出终端并重新打开它。如果您已在所有终端会话中保存所有工作,您也可以

killall Terminal

更新:

我尝试在10.11 VM中复制您的环境,这确实是RVM的一个问题:在.profile和.bash_profile中注释掉所有与rvm相关的行重新启用.bash_history文件的更新。

.bash_logout文件方法(带内容 shell_session_update )虽然似乎在这里可靠地工作。请记住 总是 输入 exit 在关闭终端窗口或退出终端之前。没有进入 exit 历史记录不会更新。


1
而现在显而易见的问题是:为什么?该文件是否需要换行符或任何字符?
CousinCocaine

似乎对我不起作用。我的历史记录中有几行,但没有添加任何新条目。
Joshua Muheim

ls并退出,最后没有新行: ls\nexit
Joshua Muheim

仍然无法正常工作。
Joshua Muheim

如何做到这一点,禁用 .bash_profile
Joshua Muheim

0

您需要使用“nano”重新创建文件,不要使用“touch”重新创建文件。在终端上,在您的主文件夹(/ Users / Your-Username)中运行此命令:

nano .bash_history

在文件中键入任何内容(否则将不会创建),退出并保存。

希望这有帮助。


这与已经给出的答案有何不同?
nohillside

以更简化的形式获得预期结果,这是唯一的区别@patrix。问候。
Joseph Collins

也不会改变一件事。是不是因为我打开了不同的终端窗口,每个窗口都有几个标签?
Joshua Muheim

@JoshuaMuheim这可能导致它,但不能确定,我没有详细研究osx“El Captain”中“.bash_history”行为的操作。如果我可以肯定地说,osx中的每个终端会话保存对“.bash_history”文件的更改,直到您关闭窗口或运行输出命令“exit”,该文件在会话处于活动状态时不会被锁定。
Joseph Collins
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.