コマンド履歴を確認するコマンドとしてhistoryコマンドがあります。
historyコマンドで確認をしたコマンド履歴はfcコマンドを用いて編集して、編集後のコマンドを実行することができます。
historyコマンド
コマンド履歴はbash組み込みコマンドであるhistoryコマンドで確認することができます。組み込みコマンドについて、manコマンドではなく、同じく組み込みコマンドのhelpコマンドでその内容を確認することができます。
1 |
$help history |
コマンド履歴を確認
historyコマンドでコマンド履歴を確認してみます。
1 2 3 4 5 6 7 8 9 10 |
$history 2012 touch file1 2013 touch file2 2014 touch file3 2015 mkdir dir 2016 rm -r * 2017 ls -l 2018 history 2019 clear 2020 history |
ここでは、いくつかのファイルやディレクトリを作成して削除したようなコマンド履歴があることが確認できます。また、コマンド履歴のリストには番号がつけられていることも確認できます。この番号はコマンド履歴を編集してコマンドをまとめて実行するときに利用します。
コマンド履歴を編集して一括実行
コマンド履歴を編集してまとめて実行するにはfcコマンドを用います。fcコマンドの基本的なコマンドは以下のようになります。
1 |
fc [first] [last] |
firstとlastは、historyコマンドで確認したコマンド履歴の番号を用います。firstはコマンド履歴を編集するときの始まりの位置で、lastは終わりの位置になります。
ここでは、コマンド履歴からファイルとディレクトリの作成を行ってみます。
上のコマンド履歴から2012番目から2015番目を指定してみます。
fcコマンドを実行
fcコマンドを実行するとエディタが開きます。ここでは、nanoエディタが開いています(helpでfcコマンドについて確認するとviがデフォルトになる記述が、Ubuntuのデフォルトはnanoになります)。
fcコマンドでエディタが開く
ここで特に編集を行わずにエディタを終了すると実行するコマンドが出力されて、実行されます。
エディタを閉じた後のコマンドの実行とファイル作成の確認
fcコマンドで開くエディタは、-eオプションを用いて指定することができます。-eオプションが省略されている場合は、環境変数FCEDITまたは環境変数EDITORが利用されます。ここでは、viエディタを使ってみたいと思います。
前のfcコマンドで作成したファイルをすべて削除してからもう一度fcコマンドを実行します。
fcコマンドでviエディタを指定
fcコマンドでviエディタが開いたら編集をします。今回は作成するファイルの名前と作成するディレクトリの名前を変更してみます。編集が終了したら、上書き保存してエディタを終了します。
コマンド履歴をviエディタで編集
何も実行させないためには、すべての内容を削除し、保存して終了します。
エディタを終了した後は、編集したコマンドが出力されて、実行されます。
編集後のコマンドの実行と作成したファイルとディレクトリの確認
fcコマンドを用いれば、コマンド履歴からコマンドを編集してまとめて実行することができます。また、fcコマンドの詳しい使い方についてはhelpコマンドで確認することができます。
1 |
$help fc |