私は私のbashの記録が大好きです。時には非常に長いコマンドを発行することがあり、コマンドをすばやく再開するためにbashの履歴に依存します。次のように記録サイズを増やしました。
HISTSIZE=100000
HISTFILESIZE=200000
私の.bashrcに
私にも次のエイリアスがあります。
alias h='history | tail'
alias hg='history | grep'
これにより、次のことができますh
。hg 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"
- もっと存在する
shopt
。 ($ shopt
現在の設定を表示するために使用されます。) - もっと存在する
history
。
また、定期的に履歴ファイルをバックアップし、いくつかのスクリプトとエイリアスを使用して履歴を取得します。数年前の記録も同様です。たまに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しばしば便利です。その他については、以下をご覧ください。記録を操作するコマンド、イベントインジケータ、いくつかのその他のコマンドなど。