[Linux] historyコマンドの使い方 – コマンド使用履歴の確認
history
コマンドは、Linuxシェルで実行したコマンドの履歴を表示するために使用されます。
デフォルトでは、過去に実行したコマンドが番号付きで一覧表示されます。
history
コマンドにオプションを付けることで、特定の範囲の履歴を表示したり、履歴をクリアしたりすることが可能です。
例えば、history 10
は直近10件の履歴を表示し、!番号
で特定の履歴を再実行できます。
history -c
で履歴をクリアできます。
- historyコマンドの基本的な使い方
- 履歴の管理と設定方法
- 履歴コマンドの便利なオプション
- コマンド履歴の再利用テクニック
historyコマンドとは
history
コマンドは、Bashシェルで実行したコマンドの履歴を表示するための非常に便利なツールです。
このコマンドを使用することで、過去に入力したコマンドを簡単に確認したり、再実行したりすることができます。
デフォルトでは、history
コマンドは、シェルセッション中に実行されたコマンドのリストを表示し、各コマンドには一意の番号が付与されます。
この番号を利用することで、特定のコマンドを簡単に再実行することが可能です。
また、history
コマンドは、コマンドの履歴を管理するためのさまざまなオプションを提供しており、履歴のクリアや特定のコマンドの削除なども行えます。
これにより、効率的な作業が実現できるため、LinuxやUnix系のシステムを使用する際には欠かせない機能となっています。
historyコマンドの基本的な使い方
コマンド履歴の表示
history
コマンドを単独で実行すると、現在のシェルセッションで実行したコマンドの履歴が表示されます。
デフォルトでは、最新のコマンドから順にリストされ、各コマンドには番号が付与されます。
これにより、過去に実行したコマンドを簡単に確認できます。
$ history
1 ls
2 cd Documents
3 mkdir test
4 history
特定の範囲の履歴を表示する
特定の範囲の履歴を表示するには、history
コマンドに表示したい行数を指定します。
例えば、最新の5つのコマンドを表示するには、次のようにします。
$ history 5
履歴番号を指定してコマンドを再実行する
表示された履歴の番号を使って、特定のコマンドを再実行することができます。
!
の後に履歴番号を指定することで、そのコマンドを実行できます。
$ !3 # 履歴番号3のコマンドを再実行
履歴を検索する方法
履歴の中から特定のコマンドを検索するには、grep
コマンドと組み合わせて使用します。
例えば、git
に関連するコマンドを検索する場合は次のようにします。
$ history | grep git
このようにして、過去に実行したコマンドを効率的に確認し、再利用することができます。
historyコマンドのオプション
-cオプション:履歴のクリア
-c
オプションを使用すると、現在のシェルセッションのコマンド履歴をすべてクリアすることができます。
このオプションを実行すると、履歴が完全に消去されるため、注意が必要です。
履歴をクリアしたい場合は、次のようにコマンドを入力します。
$ history -c
-dオプション:特定の履歴を削除
-d
オプションを使うと、指定した履歴番号のコマンドを削除することができます。
特定のコマンドだけを消したい場合に便利です。
以下のように使用します。
$ history -d 3 # 履歴番号3のコマンドを削除
-aオプション:履歴をファイルに即時保存
-a
オプションを使用すると、現在のシェルセッションで実行したコマンド履歴を即座に履歴ファイルに保存できます。
これにより、セッションが終了しても履歴が失われることがありません。
次のように実行します。
$ history -a
-rオプション:ファイルから履歴を読み込む
-r
オプションを使うと、指定した履歴ファイルからコマンド履歴を読み込むことができます。
これにより、以前のセッションの履歴を復元することが可能です。
以下のように使用します。
$ history -r
-wオプション:履歴をファイルに書き込む
-w
オプションを使用すると、現在のコマンド履歴を履歴ファイルに書き込むことができます。
このオプションを使うことで、履歴を手動で保存することができます。
次のように実行します。
$ history -w
これらのオプションを活用することで、コマンド履歴の管理がより柔軟に行えるようになります。
履歴の管理と設定
履歴の保存件数を変更する
Bashでは、保存するコマンド履歴の件数を変更することができます。
これには、HISTSIZE
とHISTFILESIZE
という環境変数を設定します。
HISTSIZE
はメモリ内に保持する履歴の件数、HISTFILESIZE
は履歴ファイルに保存する最大件数を指定します。
これらの設定は、~/.bashrc
ファイルに追加することで永続化できます。
export HISTSIZE=1000 # メモリ内の履歴件数を1000に設定
export HISTFILESIZE=2000 # 履歴ファイルの最大件数を2000に設定
履歴ファイルの場所と設定
デフォルトでは、Bashの履歴は~/.bash_history
というファイルに保存されます。
このファイルの場所を変更したい場合は、HISTFILE
環境変数を設定します。
~/.bashrc
ファイルに以下のように追加することで、履歴ファイルの場所を変更できます。
export HISTFILE=~/my_custom_history # 履歴ファイルの場所を変更
履歴に保存しないコマンドを設定する
特定のコマンドを履歴に保存しないようにするには、HISTIGNORE
環境変数を使用します。
この変数に、履歴に保存したくないコマンドを指定することで、特定のコマンドを除外できます。
複数のコマンドを指定する場合は、コロンで区切ります。
export HISTIGNORE="ls:cd:exit" # ls, cd, exitコマンドを履歴に保存しない
履歴の重複を防ぐ方法
履歴に同じコマンドが重複して保存されるのを防ぐには、HISTCONTROL
環境変数を設定します。
ignoredups
を指定することで、直前のコマンドと同じコマンドは履歴に保存されなくなります。
また、ignorespace
を指定すると、スペースで始まるコマンドも履歴に保存されません。
export HISTCONTROL=ignoredups:ignorespace # 重複とスペースで始まるコマンドを除外
これらの設定を行うことで、Bashの履歴管理をより効率的に行うことができます。
応用例:historyコマンドの活用
!を使った履歴の再利用
!
を使うことで、特定の履歴番号のコマンドを再実行できます。
例えば、履歴番号が5のコマンドを再実行したい場合は、次のように入力します。
これにより、過去に実行したコマンドを簡単に再利用できます。
$ !5 # 履歴番号5のコマンドを再実行
!!で直前のコマンドを再実行
!!
を使用すると、直前に実行したコマンドを再実行できます。
これにより、誤ってコマンドを実行した場合や、再度同じコマンドを実行したい場合に便利です。
$ !! # 直前のコマンドを再実行
!$で直前のコマンドの引数を再利用
!$
を使うと、直前のコマンドの最後の引数を再利用できます。
これにより、同じ引数を使った別のコマンドを簡単に実行できます。
例えば、直前のコマンドがcp file.txt /backup/
だった場合、次のように入力します。
$ mv !$ # cpコマンドの最後の引数を再利用してmvコマンドを実行
fcコマンドで履歴を編集して再実行
fc
コマンドを使用すると、履歴のコマンドを編集して再実行できます。
fc
を実行すると、デフォルトのエディタが開き、履歴のコマンドを編集できます。
編集後、保存して終了すると、そのコマンドが実行されます。
$ fc # 履歴のコマンドを編集
grepと組み合わせて履歴を検索
history
コマンドとgrep
を組み合わせることで、特定のコマンドを履歴から検索できます。
これにより、過去に実行したコマンドを迅速に見つけることができます。
例えば、git
に関連するコマンドを検索する場合は次のようにします。
$ history | grep git # gitに関連するコマンドを検索
これらの応用例を活用することで、Bashの履歴機能をより効果的に利用し、作業効率を向上させることができます。
よくある質問
まとめ
この記事では、Bashのhistory
コマンドの基本的な使い方やオプション、履歴の管理方法、さらには応用例について詳しく解説しました。
これにより、コマンド履歴を効果的に活用し、作業効率を向上させるための手段が明らかになりました。
ぜひ、これらの知識を活かして、日々のシェル操作をよりスムーズに行ってみてください。