Dis*_*ame 4 osx bash command-history
即使我设置了,我的 .bash_history 也会不断截断:
export HISTSIZE=
export HISTFILESIZE=
Run Code Online (Sandbox Code Playgroud)
在我的.bash_profile
. 我不确定它何时发生,但当我注销或关闭计算机时可能会发生。由于这个问题已经有一段时间了,我尝试在我的计算机上设置相同的变量/etc/profile
,但这并不能解决问题。
它确实达到了 2000 行(这是我在它被截断之前看到的最大值),但有时它只是被截断,我稍后会注意到这一点。我能做些什么来解决这个问题?
.bash_profile
仅当 bash 作为登录 shell启动时才加载。在 OSX 上,默认情况下是在每个终端中启动一个登录 shell,所以这对您来说是常见的情况。但是,如果您曾经键入bash
运行嵌套 shell,或运行 screen 或 tmux,或启动交互式 shell 的任何其他内容,您最终将得到一个交互式的非登录 shell。这个 shell 只读取~/.bashrc
,它不读取~/.bash_profile
。自从你出口HISTFILESIZE
对于环境,从运行登录 shell 的终端启动的程序启动的 shell 将继承该设置。但是独立启动的 shell 不会(这是 OSX 在终端中启动登录 shell 的方法中的一个基本缺陷。)所以一个 shell 在不启动登录 shell 的终端模拟器中启动,或者在由 cron 启动的屏幕会话中启动job 或 Aquamacs 等将没有任何HISTSIZE
或HISTFILESIZE
设置,因此将使用默认值。
解决方法是设置HISTSIZE
并HISTFILESIZE
在适当的位置:在~/.bashrc
.
Bash 奇怪地.bashrc
只能从非登录交互式 shell读取数据。要在所有交互式 shell 中读取它,请将以下行放入您的.bash_profile
:
case $- in *i*) . ~/.bashrc;; esac
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1271 次 |
最近记录: |