
新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作業がぐっとスムーズになります!
