新Linux入門|historyコマンドで過去の操作を呼び出そう

Linuxで作業をしていると、「あのコマンドもう一度実行したいな」と思うことがよくありますよね。
そんなときに便利なのが historyコマンド です。

historyコマンドを使うと、過去に実行したコマンドを一覧表示・再実行することができます。
これにより、わざわざ同じコマンドを打ち直す必要がなくなり、作業の効率が大幅にアップします。

⏳ コマンド履歴とは?

Linuxのシェル(bashなど)には、コマンド履歴機能が備わっています。
この機能によって、シェルは過去に実行したコマンドを自動で記録しています。
記録されたコマンドは、矢印キーhistoryコマンド で簡単に呼び出すことができます。

操作方法内容
↑キー1つ前に実行したコマンドを表示
↓キー次のコマンドに進む(戻したいときに使う)
Ctrl + R履歴からキーワードで逆検索
history履歴一覧を番号付きで表示

💬 ポイント
Bashはデフォルトで直近500件ほどのコマンドを記録します。
この履歴はログアウト後も、~/.bash_history に保存されます。

🧭 historyコマンドの基本

historyコマンドを入力すると、シェルに記録されている履歴を一覧で確認できます。

項目内容
コマンド名history
目的過去に実行したコマンド履歴を表示
保存先~/.bash_history
表示形式番号付きのコマンド一覧

📘 コマンド書式

history [オプション] [行数]

📘 使用例

[suzuki@AlmaLinux ~]$ history
  1  ls
  2  cd /etc
  3  cat hosts
  4  vi /etc/ssh/sshd_config
  5  systemctl restart sshd

💬 番号付きで過去のコマンドが一覧表示されます。
特定の番号のコマンドを再実行することも可能です。

⚙️ 主なオプション一覧

オプション説明
-c履歴をすべて削除する
-d 番号指定した番号の履歴を削除
-a現在のセッションの履歴をファイルに追加保存
-r履歴ファイルを読み込む
-w履歴をファイルに書き込む
-n履歴ファイルから新しい履歴だけ読み込む

📘 例

[suzuki@AlmaLinux ~]$ history -c

💬 この例では履歴をすべてクリアします。

🕹️ よく使う履歴呼び出し方法

操作コマンド例説明
直前のコマンドを再実行!!直前に実行したコマンドをもう一度実行
番号で再実行!5履歴番号5番のコマンドを実行
特定の文字列で検索して実行!ls「ls」で始まる最新のコマンドを実行
履歴検索Ctrl + Rコマンド履歴をキーワードで検索(リアルタイム)

📘 使用例

[suzuki@AlmaLinux ~]$ !!
cat hosts
# → 直前に実行した「cat hosts」を再実行

💬 !! は「前回のコマンドをもう一度実行する」という便利なショートカットです。
例えば、sudoをつけ忘れたときにも再利用できます。

[suzuki@AlmaLinux ~]$ dnf install vim
権限がありません
[suzuki@AlmaLinux ~]$ sudo !!
sudo dnf install vim

🧩 Ctrl+Rで履歴を検索しよう!

Ctrl + Rを押すと、過去のコマンド履歴をキーワードで検索できます。

📘 例

(reverse-i-search)`ssh': ssh user@192.168.1.10

💬 これは「ssh」を含む履歴を検索している例です。
該当コマンドが見つかったら Enter を押してすぐに再実行できます。
多くのLinuxユーザーが日常的に使っている便利な機能です。

⚙️ 履歴の保存設定(環境変数)

bashでは履歴の保存数や保存先を環境変数で設定できます。

変数名説明設定例
HISTSIZEメモリ上に保存される履歴の最大数export HISTSIZE=1000
HISTFILE履歴を保存するファイルのパスexport HISTFILE=~/.bash_history
HISTCONTROL履歴の重複や空行の扱いを制御export HISTCONTROL=ignoredups

📘 使用例

[suzuki@AlmaLinux ~]$ export HISTSIZE=1000
[suzuki@AlmaLinux ~]$ export HISTCONTROL=ignoredups

💬 この設定により、同じコマンドの重複記録を防ぎつつ、1000件まで履歴を保存できます。

🛡️ 注意点(セキュリティ)

コマンド履歴には、時としてパスワードや機密情報が記録されてしまうことがあります。
そのため、以下の点に注意しましょう。

注意項目対策
パスワードを含むコマンドを入力しないパスワード入力が必要な場合は対話モードを使用する。
履歴ファイルのアクセス権chmod 600 ~/.bash_history で保護する。
不要な履歴の削除history -c または history -d 番号 を活用

📘 例

[suzuki@AlmaLinux ~]$ chmod 600 ~/.bash_history

💬 これで履歴ファイルへの不正アクセスを防止できます。

✅ まとめ

historyコマンドを使いこなせると、作業効率が劇的にアップします。
過去のコマンドを再利用することで、ミスの防止にもつながります。

操作コマンド例説明
履歴の表示history過去のコマンドを一覧表示
直前のコマンドを再実行!!前回のコマンドをそのまま再実行
特定の番号を再実行!番号指定した履歴番号のコマンドを実行
検索して再実行Ctrl+Rキーワードで履歴検索
履歴を消去history -cコマンド履歴をすべて削除

💬 ポイント

  • Bashは過去の操作を自動的に記録してくれる。
  • !! や Ctrl+R などを使えば再入力の手間が省ける。
  • セキュリティ対策も忘れずに行おう。

このhistoryコマンドを活用すれば、毎日のLinux作業がぐっとスムーズになります!