
新Linux入門|historyコマンドを使いこなそう!履歴の表示・削除・保存
Linuxの操作をしていると、「あのコマンド、もう一度実行したいな」「前に何を打ったっけ?」という場面がよくありますよね。
そんなときに役立つのが historyコマンド です。
historyコマンドを使えば、過去に入力したコマンドの履歴を一覧表示したり、特定の履歴を削除したり、保存したりできます。
日々の作業を効率化するために欠かせない便利なツールです。

⏳historyコマンドとは?
historyコマンド は、bashシェルが記録しているコマンド履歴を操作するためのコマンドです。
コマンドを一覧表示するだけでなく、不要な履歴を削除したり、手動でファイルに保存したりすることもできます。
| 項目 | 内容 |
|---|---|
| コマンド名 | history |
| 主な機能 | コマンド履歴の表示・削除・保存 |
| 保存ファイル | ~/.bash_history |
| 便利な用途 | コマンド再実行、履歴の管理、トラブルシューティング |
💬 ポイント
bashは、ユーザーが入力したコマンドを自動で記録しています。
この履歴は、ログアウト時に ~/.bash_history に保存され、次回のログイン時にも利用できます。
🧭 コマンド書式
history [オプション] [表示件数]- [オプション] … 履歴を削除したり保存したりする指定
- [表示件数] … 表示する履歴の数を指定(省略すると全履歴が表示される)
📘 基本例
[suzuki@AlmaLinux ~]$ history
1 ls
2 cd /etc
3 cat hosts
4 vi /etc/ssh/sshd_config
5 systemctl restart sshd💬 各コマンドには番号が付与されており、この番号を使って再実行することも可能です。
たとえば「!5」と入力すれば、5番目のコマンドを再実行できます。
⚙️ 主なオプション
| オプション | 説明 |
|---|---|
| -c | 現在のセッションの履歴をすべて削除する。 |
| -d 番号 | 指定した履歴番号のコマンドを削除する。 |
| -a | 現在のセッションでの履歴をファイル(~/.bash_history)に追加保存する。 |
| -w | 履歴をファイルに書き込む(上書き保存)。 |
| -n | 履歴ファイルの読み込みを抑制する(通常は自動で読み込まれる)。 |
💬 補足
通常、bashはログアウト時に自動で履歴をファイルに保存しますが、
必要に応じて -a や -w オプションを使うことで、手動で即時保存することができます。
🧾 使用例と実行結果
➀ 履歴の一覧表示
[suzuki@AlmaLinux ~]$ history
1 ls -l
2 cd /etc
3 cat hosts
4 grep sshd_config /etc/ssh/sshd_config💬 これまでに実行したコマンドの一覧が番号付きで表示されます。
② 特定の履歴を削除(-d オプション)
[suzuki@AlmaLinux ~]$ history -d 3
[suzuki@AlmaLinux ~]$ history | grep hosts💬 3番の「cat hosts」が削除されているのが確認できます。
③ 履歴をすべて削除(-c オプション)
[suzuki@AlmaLinux ~]$ history -c
[suzuki@AlmaLinux ~]$ history💬 履歴がすべて削除され、一覧には何も表示されなくなります。
➃ 履歴をファイルに保存(-w オプション)
[suzuki@AlmaLinux ~]$ history -w💬 現在のセッションでの履歴を、~/.bash_history に書き込みます。
ファイルが既に存在する場合は、内容が上書きされます。
➄ 履歴をファイルに追加保存(-a オプション)
[suzuki@AlmaLinux ~]$ history -a💬 現在のセッションでの履歴をファイルに追記します。
他のターミナルで開いているセッションの履歴と同期したいときに便利です。
🧩 履歴ファイルの仕組みを理解しよう
bashはコマンドを実行するたびに、メモリ上の履歴リストを更新します。
セッションを終了するときに、自動的にその内容を ~/.bash_history に書き込みます。
| フェーズ | 説明 |
|---|---|
| コマンド入力 | シェルが入力されたコマンドを一時的に記録 |
| セッション中 | history コマンドで確認・編集が可能 |
| セッション終了 | ~/.bash_history に保存される。 |
| 次回ログイン時 | 前回の履歴を読み込み再利用できる。 |
💬 もしセッションを複数開いている場合、history -a で即時反映できます。
🛡️ 注意点とセキュリティ
コマンド履歴には、機密情報(例:パスワードを含むコマンドなど)が残る可能性があります。
安全に運用するためには、以下のような対策を意識しましょう。
| リスク | 対策例 |
|---|---|
| パスワードを含む履歴の保存 | コマンドラインでパスワードを直接入力しない。 |
| 履歴ファイルの閲覧・流出 | chmod 600 ~/.bash_history で権限を制限 |
| 不要な履歴 | 定期的に history -c でクリア |
📘 例
[suzuki@AlmaLinux ~]$ chmod 600 ~/.bash_history💬 これにより、自分以外のユーザーが履歴ファイルを読み取れなくなります。
✅ まとめ
historyコマンドは、日々のLinux操作を効率化するための必須ツールです。
履歴をうまく活用することで、同じコマンドを再入力する手間を省き、ミスを減らすことができます。
| 操作 | コマンド例 | 説明 |
|---|---|---|
| 履歴の表示 | history | コマンド履歴を一覧表示する。 |
| 特定の履歴削除 | history -d 5 | 5番目の履歴を削除 |
| 全履歴の削除 | history -c | 履歴をすべて削除 |
| 履歴の保存 | history -w | 現在の履歴をファイルに書き込む。 |
| 履歴の追加保存 | history -a | 現在の履歴をファイルに追記する。 |
💬 ポイント
- history は、作業ログとしても活用可能。
- -c や -d で不要な履歴を整理。
- -a や -w で履歴を明示的に保存しておくと安心。
これらを使いこなせば、あなたも履歴管理の達人です!
