history 概要
ユーザーがターミナルでコマンドを入力するたびに、そのコマンドはヒストリーファイル(通常は `~/.bash_history` または `~/.zsh_history`)に記録されます。`history` コマンドはこのファイルの内容を読み取って画面に表示し、シェルセッションが終了した後でも履歴が保持されます。
history の主な役割
`history` コマンドは主に次の目的で使用されます:
主な活用分野
- コマンド再実行: 以前使用した長いコマンドを再入力することなく、簡単に再実行できます。
- 作業追跡: 過去にどの作業を行ったのか確認し、作業フローを把握するのに役立ちます。
- 生産性向上: よく使用するコマンドを迅速に見つけ、入力時間を節約します。
- スクリプト作成の参考: 過去に成功裏に実行されたコマンドの組み合わせをスクリプト作成に活用します。
環境変数と history
履歴機能はいくつかの環境変数の影響を受けます:
主要関連環境変数
- `HISTSIZE`: メモリに保存するコマンド履歴の最大数です。現在のシェルセッション中に保持されます。
- `HISTFILESIZE`: ヒストリーファイル(`~/.bash_history` など)に保存するコマンド履歴の最大数です。シェルセッション間で保持されます。
- `HISTFILE`: コマンド履歴が保存されるファイルのパスを指定します。デフォルトは `~/.bash_history` です。
- `HISTCONTROL`: 履歴の記録方法を制御します。 (例: `ignoredups` - 重複コマンドを無視, `ignorespace` - 空白で始まるコマンドを無視)
主要 history コマンドオプション
`history` コマンドは、履歴リストを表示、修正、管理するために必要なさまざまなオプションを提供します。
1. 履歴の表示と出力
2. 履歴の修正と再実行
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`history` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`history` コマンドのさまざまな活用例を通じて、コマンド履歴を効果的に表示し再利用する方法を学びましょう。
最近のコマンド 20 件の表示
history 20
最も最近に実行した 20 件のコマンドリストを番号とともに表示します。
コマンド履歴から特定の文字列を検索
history | grep docker
`grep` コマンドを使用して `history` 履歴から 'docker' を含むコマンドを探します。
以前の `ls` コマンドを再実行
!ls
`ls` で始まる最も最近に実行したコマンドを見つけて再実行します。
最後のコマンドの最後の引数を再利用
cat /var/log/syslog
less !$
`cat /var/log/syslog` を実行した後、`/var/log/syslog` を `less` コマンドで再度開きたいときに便利です。
現在のシェル履歴を即座にファイルに保存
history -w
シェルを閉じる前に、現在のセッションで実行されたすべてのコマンドを `~/.bash_history` ファイルに即座に保存します。
特定の履歴番号を削除
history -d 125
`history` コマンドで確認したとき、125番のコマンドを履歴から削除します。 (注意: 一度削除すると復元できません)