OS Xですべての端末コマンド履歴を読み取る


10

OS Xのターミナルで実行するすべてのコマンドにアクセスして、実行中のリマインダーシートとして確認して使用できると便利です。

私は、Reverse-I-Searchプロンプトを使用しており、Mactoids:How to search Terminal command historyに記載されているように、すべての履歴を保存するように.bash_profileを更新しました。

  1. ターミナルを起動します。

  2. 次のように入力して、ホームフォルダーに移動します。

    cd ~/
    
  3. 次のように入力して、.bash_profileを作成します。

    touch .bash_profile
    
  4. 次に、お気に入りのテキストエディタで.bash_profileを編集するか、これをターミナルウィンドウに入力して、デフォルトのテキストエディットでファイルを自動的に開きます。

    open -e .bash_profile
    
  5. 最後に、これを.bash_profileファイルに追加します。

    HISTFILESIZE=1000000000 HISTSIZE=1000000
    
  6. 保存して終了。

OS Xで端末コマンドの履歴を出力するためにどのようにアクセスできるかについてのアイデアはありますか?


4
私はあなたが読んだと思いますman bashので、履歴がファイルに保存されていることを知っている必要があります~/.bash_history。他に何を知る必要がありますか、明確にできますか?

はい、私は「man」コマンドが存在することを新たにしたので、マニュアルを読んで答えを見つけ、ちょうどその面白さのために上記の質問をすることにしました。迅速で明確で気取らない回答をしてくれたfideliに感謝します。
Cameron McGrane

回答:


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つのタブでコマンドを入力し、新しいタブを開いて上に押すと、前のタブで入力したコマンドが表示されます)

次の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  

1
実行source ~/.bash_sessions/*.historyするとすべてのコマンドが実行されることに注意してください
panchicore
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.