新しいシステムを設定するときに古いシステムのbash履歴ファイルを使用しますか?

新しいシステムを設定するときに古いシステムのbash履歴ファイルを使用しますか?

私は私のbashの記録が大好きです。時には非常に長いコマンドを発行することがあり、コマンドをすばやく再開するためにbashの履歴に依存します。次のように記録サイズを増やしました。

HISTSIZE=100000
HISTFILESIZE=200000

私の.bashrcに

私にも次のエイリアスがあります。

alias h='history | tail'
alias hg='history | grep'

これにより、次のことができますhhg some_text本物便利

私の質問は:この履歴ファイルを新しいコンピュータに移動できますか?たとえば、最近私のコンピュータがクラッシュして再構築する必要がありました。他の.historyファイルを入れるのに問題があります(既存のファイルを置き換えることもできます)。これを置き換える必要がありますか、実際には問題なく2つの履歴ファイルを一緒に追加できますか?

ベストアンサー1

はい。古い履歴ファイルを新しいインストールにコピーできます。古い/新しいアイテムとマージすることもできます。

  • 履歴ファイルが設定されていない場合は、HISTTIMEFORMATコマンドのみが保存されます。
  • 設定されている場合、各コマンドにはハッシュの前にタイムスタンプがあります。

    #1122334455
    command1
    #1122334459
    command2
    

ただし、たとえば発行する場合は、次の点に注意してください。

$ echo 'foo
> bar
> baz' >> some_file

次のように保存されます。

#1122334459
echo 'foo
bar
baz' >> some_file

ただし、history次のように表示されます。

4 CMD_TIME echo 'foo
5 CUR_TIME bar
6 CUR_TIME baz' >> some_file

コマンドは次のとおりです。

$ foo | \
bar | \
baz

設定すると1つのままになりますshopt -s cmdhist


私は次のようにさまざまですが、よく使用されるものを使用します。

HISTSIZE=500000
HISTFILESIZE=500000
# Ignore dupes and space commands
HISTCONTROL=ignoreboth
# Save and show timestamps
HISTTIMEFORMAT='%F %T '
# append to the history file, don't overwrite it
shopt -s histappend
# Save and reload the history after each command finishes
# This one I have a function to turn on/off. Effect is that commands are
# accessible in all terminals after execution.
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

また、定期的に履歴ファイルをバックアップし、いくつかのスクリプトとエイリアスを使用して履歴を取得します。数年前の記録も同様です。たまに1年半前に今やっていることと似たようなことをした記憶が出てすぐにその履歴を探すことができる。

タイムスタンプには2つのバリエーションを使用します。一時的に「」に設定してhistoryタイムスタンプのあるコンテンツを表示し、タイムスタンプのない他のディスプレイを表示します。HISTTIMEFORMAT


タイムスタンプがない場合は、現在の時間(およそ)が使用されます。タイムスタンプがあると、履歴は時間でソートされます。

したがって:

.bash_history(単純化されたタイムスタンプ)

#timestamp 000012
some command
#timestamp 000002
some other command

$ history
1 13 aug 2013 10:44 some other command
2 13 aug 2013 12:13 some command

しかし、ソートされた履歴ファイルがより効率的であると信じる理由があります(bashは混在する必要はありません)。


検索はCtrl-Rしばしば便利です。その他については、以下をご覧ください。記録を操作するコマンドイベントインジケータいくつかのその他のコマンドなど。

おすすめ記事