コマンド履歴を編集してコマンドをまとめて実行する

スポンサーリンク

コマンド履歴を確認するコマンドとしてhistoryコマンドがあります。

historyコマンドで確認をしたコマンド履歴はfcコマンドを用いて編集して、編集後のコマンドを実行することができます。

スポンサーリンク

historyコマンド

コマンド履歴はbash組み込みコマンドであるhistoryコマンドで確認することができます。組み込みコマンドについて、manコマンドではなく、同じく組み込みコマンドのhelpコマンドでその内容を確認することができます。

 

 

 

コマンド履歴を確認

historyコマンドでコマンド履歴を確認してみます。

 

ここでは、いくつかのファイルやディレクトリを作成して削除したようなコマンド履歴があることが確認できます。また、コマンド履歴のリストには番号がつけられていることも確認できます。この番号はコマンド履歴を編集してコマンドをまとめて実行するときに利用します。

 

 

 

コマンド履歴を編集して一括実行

コマンド履歴を編集してまとめて実行するにはfcコマンドを用います。fcコマンドの基本的なコマンドは以下のようになります。

firstとlastは、historyコマンドで確認したコマンド履歴の番号を用います。firstはコマンド履歴を編集するときの始まりの位置で、lastは終わりの位置になります。

ここでは、コマンド履歴からファイルとディレクトリの作成を行ってみます。
上のコマンド履歴から2012番目から2015番目を指定してみます。

fcコマンドを実行

bash-history-fc

 

fcコマンドを実行するとエディタが開きます。ここでは、nanoエディタが開いています(helpでfcコマンドについて確認するとviがデフォルトになる記述が、Ubuntuのデフォルトはnanoになります)。

fcコマンドでエディタが開く

bash-history-fc2

 

ここで特に編集を行わずにエディタを終了すると実行するコマンドが出力されて、実行されます。

エディタを閉じた後のコマンドの実行とファイル作成の確認

bash-history-fc3

 

fcコマンドで開くエディタは、-eオプションを用いて指定することができます。-eオプションが省略されている場合は、環境変数FCEDITまたは環境変数EDITORが利用されます。ここでは、viエディタを使ってみたいと思います。

前のfcコマンドで作成したファイルをすべて削除してからもう一度fcコマンドを実行します。

fcコマンドでviエディタを指定

bash-history-fc4

 

fcコマンドでviエディタが開いたら編集をします。今回は作成するファイルの名前と作成するディレクトリの名前を変更してみます。編集が終了したら、上書き保存してエディタを終了します。

コマンド履歴をviエディタで編集

bash-history-fc5

保存せずに終了する場合、編集前のコマンド履歴が実行されます。
何も実行させないためには、すべての内容を削除し、保存して終了します。

 

エディタを終了した後は、編集したコマンドが出力されて、実行されます。

編集後のコマンドの実行と作成したファイルとディレクトリの確認

bash-history-fc6

 

fcコマンドを用いれば、コマンド履歴からコマンドを編集してまとめて実行することができます。また、fcコマンドの詳しい使い方についてはhelpコマンドで確認することができます。

 

 

 

参考

Bash Reference Manual: Bash History Builtins