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


10

访问在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中输出终端命令历史记录吗?


4
我想您已经阅读了man bash,因此您应该知道历史存储在文件中~/.bash_history。您还需要知道什么,您可以澄清吗?

是的,因为存在新的“ man”命令,然后阅读手册找到了答案,并决定只是出于乐趣而问上述问题。感谢fideli的快速,明确和朴实的回答。
卡梅隆·麦克莱恩

Answers:


6

您的所有历史记录都存储在中~/.bash_history,同时使用reverse-i-search和上/下键。该文件会被定期删除,但是如果您按照链接中的指南进行操作,.bash_history则几乎不会删除该文件。


FIFO或LIFO修剪?
Pacerier

@Pacerier,我不能完全确定,因为我不再使用macOS,但是如果我不得不猜测的话,可以使用FIFO修剪。
菲德利

2

就个人而言,我宁愿以一种更简单的方式进行操作并打印所有内容,而不是检查无法覆盖所有终端窗口和所有命令的最新会话。

获取完整的历史记录

cd ~/.bash_sessions
cat *.historynew *.history

如果要按会话日期排序

cd ~/.bash_sessions
cat `ls -tr *.historynew *.history`

1

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

您需要做两件事: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  

1
请注意,运行会source ~/.bash_sessions/*.history执行所有命令
panchicore
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.