デフォルトでは、bashは~/.bash_history
履歴から行をロードします。ロードするカスタムファイルを追加できますか?よく使うコマンドを含むファイルを挿入し、組み込み検索でアクセスしたいと思います。
答え1
私はalias h='history|grep'
それを私のBashプロファイルにロードするだけです。
私のワークフローは、h command
例えば次のようになります。h hpssa
# h hpssa
202 05-28-2015 11:54:33 hpssacli
217 05-28-2015 11:54:33 hpssa -start
225 05-28-2015 11:54:33 hpssacli -stop
226 05-28-2015 11:54:33 hpssa -stop
228 05-28-2015 11:54:33 hpssa -start
" "を実行するには、hpssa -stop
ただ入力してください。!226
これは私のアプローチにすぎませんが、歴史的な項目を覚えている方法を変更することもできます。実際、履歴ファイルにデータを注入することは意味がないと思います。
答え2
私は以前に入力した長いコマンドを検索するために履歴を逆に検索するCtrl-R
(Readlineコマンド)に大きく依存していましたが、今はエイリアスとシェルスクリプト/関数を使用することを好みます。reverse-search-history
とにかくBashのhistory
組み込み機能を使用して、カスタムコマンドのリストを現在の履歴にロードできます。
history -r [filename]
Bashのマニュアルページから:
履歴ファイルの内容を読み、それを現在の履歴リストに追加します。
自動化の開始
今私に追加してみました.bashrc
。ただし、新しいシェルを起動すると、カスタム履歴ファイルのコマンドは使用できません。シェル履歴は.bash_history
基本ファイルからのみロードされるようです。後ろに起動ファイルが処理されました。今後プロンプトがインタラクティブシェルに表示されます。残念ながら、これを自動的に実行する簡単な方法はないようです。
答え3
@AnthonyGeogheganが観察したように、スタートアップファイルが処理された後に履歴がロードされます。これは、スタートアップファイルに必要な履歴を事前にロードする別の方法を提供します。
mv .bash_history .bash_history.tmp
cat .extra_hist .bash_history.tmp > .bash_history
# or swap them, to put the extra stuff at the end of the history, for
# quicker ^R access.
このアプローチを使用すると、時間の経過とともに特殊コマンドの複数のコピーを.bash_historyに追加できます。 .bash_historyファイルを埋めるとき(sedなど)、簡単に見つけて削除できるように、特別なコマンドをコメント行で囲むことができます。それは次のとおりです。
cp .extra_hist .bash_history
sed '/: remove from here/,/:remove to here/d' .bash_history >> .bash_history