bash履歴にコマンドを永久に保存する

bash履歴にコマンドを永久に保存する

bash履歴にコマンドを永久に保存する方法はありますか?実際のシナリオは次のとおりです。

私はCプロジェクトを持っていますが、プロジェクトを整理するには覚えにくい非常に長いコマンドを実行する必要があります。整理して構築してから一ヶ月くらいは命令が必要ないですね。前のコマンドは bash 履歴から自動的に削除されるため、次にそのコマンドが必要なときに履歴には表示されません。

注:スクリプトファイルにコマンドを保存し、必要に応じてスクリプトを実行するなどのソリューションを公開しないでください。

答え1

エイリアスを使用すると、これを簡単に実行できます。エイリアスを永久に作成するには、ファイルに追加するだけです~/.bashrc。たとえば、行を追加すると、シェルにその行を入力するたびにalias list='ls -la'コマンドが実際に実行されます。ファイルに入れずにコマンドラインからエイリアスを作成すると、シェルに戻るたびにエイリアスが失われます。listls -labashrc

答え2

主な問題については、スクラッチパッドなどのすべてのFurryコマンドを一覧表示するテキストファイルを持つことをお勧めします。必要に応じてコピーして貼り付けます(例:バロン推奨事項)。

これらのコマンドの履歴検索を絶対に実行するには、bashの終了時に重要なコマンドのリストを追加してみてください。以下はおおよその説明です。

履歴ファイルで忘れないようにするコマンドを別のファイル(たとえば~/fixed_hist)に入れます。に以下を追加します~/.bashrc

function prepend_fixed_history
{
        fixed_hist_c=$(wc -l ~/fixed_hist | awk '{print $1 }')
        head -${fixed_hist_c} ~/.bash_history | \
             diff - ~/fixed_hist >/dev/null 2>&1 
        if [ "$?" -ne "0" ]; then
           cat ~/fixed_hist ~/.bash_history > ~/.bash_history_new
           cp ~/.bash_history_new ~/.bash_history
        fi
}

trap prepend_fixed_history EXIT

関連情報