读取 OS X 中的所有终端命令历史记录

读取 OS X 中的所有终端命令历史记录

如果能够访问我在 OS X 终端中运行的所有命令就太好了,这样我就可以查看并用作运行提醒表。

我正在使用 Reverse-I-Search 提示,并更新了我的 .bash_profile 来存储我的所有历史记录,如此处所述Mactoids:如何搜索终端命令历史记录

  1. 启动终端。

  2. 输入以下命令导航到主文件夹:

    cd ~/
    
  3. 通过输入以下命令创建 .bash_profile:

    touch .bash_profile
    
  4. 现在,在您最喜欢的文本编辑器中编辑 .bash_profile,或者在终端窗口中键入此内容以在默认的 TextEdit 中自动打开该文件:

    open -e .bash_profile
    
  5. 最后,将其添加到.bash_profile 文件中:

    HISTFILESIZE=1000000000 HISTSIZE=1000000
    
  6. 保存并退出。

您是否知道如何访问以便在 OS X 中输出终端命令历史记录?

答案1

您的所有历史记录都存储在 中~/.bash_history,其中reverse-i-search和 上/下 键均使用。该文件会定期被修剪,但如果您按照链接中的指南操作,则该.bash_history文件实际上永远不会被修剪。

答案2

~/.zsh_history在现代版本的 MacOS(Catalina 及更高版本)中,你会默认在以下位置找到你的 bash 历史记录:

cat ~/.zsh_history

答案3

答案4

如果您仍需要修复此问题,以下是我修复的方法。这样,我可以保存并访问所有选项卡的历史记录(即,如果您在一个选项卡上输入命令,然后打开一个新选项卡并按向上键,它将建议你刚刚在上一个选项卡中输入的命令)

您需要 2 样东西:1. 在终端中输入此命令以确保 histappend 已打开:

shopt -s histappend && shopt histappend

2. 您还需要知道历史命令存储在哪里。

我的历史文件存储在 ~/.bash_sessions 中,所以我的代码将反映这一点。如果您的存储在 ~/.bash_history 或其他目录中,则在将其导入 bash_profile 时将其替换为 ~/.bash_sessions。

一旦您弄清楚了这一点,打开您的 bash_profile 并添加以下代码:

source ~/.bash_sessions/*.history        #<--sources prev sessions through your bash_profile. If you don't use ~/.bash_sessions to store your history, replace it with whatever you use (i.e. source ~/.bash_history/*.history

export HISTCONTROL=ignoredups:erasedups #<-- auto-erases duplicates in your history
export HISTSIZE=1000                    #<-- assigns # of results to return
export HISTFILESIZE=100000              #<-- assigns # of results to store in your .bash_history
shopt -s histappend                     #<-- appends & saves history throughout all tabs

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"  <--appends history from all tabs, clears & uses appended history file as current  

相关内容