新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 55番目の履歴を削除
全履歴の削除history -c履歴をすべて削除
履歴の保存history -w現在の履歴をファイルに書き込む。
履歴の追加保存history -a現在の履歴をファイルに追記する。

💬 ポイント

  • history は、作業ログとしても活用可能。
  • -c や -d で不要な履歴を整理。
  • -a や -w で履歴を明示的に保存しておくと安心。

これらを使いこなせば、あなたも履歴管理の達人です!