カテゴリ: Linux基礎 更新日: 2026/08/01

!(エクスクラメーション)展開の使い方を完全ガイド!Linuxで履歴からコマンドを再実行する方法

!(エクスクラメーション)展開で履歴から再実行する方法
!(エクスクラメーション)展開で履歴から再実行する方法

先生と生徒の会話形式で理解しよう

生徒

「さっき入力したコマンドをもう一回実行したいんですが、また全部入力しないとダメですか?」

先生

「いいえ、Linuxでは!(エクスクラメーション)展開を使うと、過去のコマンドを簡単に再実行できますよ。」

生徒

「えっ、そんな便利な機能があるんですか?どうやって使うんですか?」

先生

「とても簡単です。履歴を呼び出して再実行できるので、タイピングの手間が大きく減ります。一緒に見ていきましょう。」

1. !展開とは?Linuxの履歴再実行機能の基本

1. !展開とは?Linuxの履歴再実行機能の基本
1. !展開とは?Linuxの履歴再実行機能の基本

!(エクスクラメーション)展開とは、Linuxのシェルで過去に入力したコマンドを呼び出して再実行する機能です。

Linuxでは、入力したコマンドは履歴として保存されます。その履歴を使えば、同じコマンドを何度も入力する必要がありません。

たとえば、長いコマンドを何度も入力するのは大変ですよね。そのときに「!」を使えば、一瞬で再実行できます。

これは、スマートフォンで「最近使った履歴から選ぶ」操作に似ています。過去の操作を呼び出して再利用するイメージです。

2. 直前のコマンドを再実行する「!!」

2. 直前のコマンドを再実行する「!!」
2. 直前のコマンドを再実行する「!!」

最も基本的な使い方は!!です。これは直前に実行したコマンドをそのまま再実行します。


ls
Documents  Downloads  file.txt

!!
Documents  Downloads  file.txt

このように、同じコマンドが繰り返し実行されます。

「もう一度同じことをしたい」というときに非常に便利です。

3. コマンド番号で指定して再実行する

3. コマンド番号で指定して再実行する
3. コマンド番号で指定して再実行する

historyコマンドを使うと、過去のコマンドに番号が付いて表示されます。


history
  1  ls
  2  pwd
  3  cat file.txt

この番号を使って、特定のコマンドを再実行できます。


!2
/home/user

この例では、番号2のpwdコマンドが再実行されています。

長い履歴の中から特定のコマンドを呼び出したいときに便利です。

4. コマンド名から検索して再実行する

4. コマンド名から検索して再実行する
4. コマンド名から検索して再実行する

!文字列と入力すると、その文字列で始まる過去のコマンドを探して実行します。


!ls
Documents  Downloads  file.txt

これは、過去に実行したlsコマンドを再実行しています。

コマンド名を覚えていれば、番号を確認しなくてもすぐに呼び出せるので便利です。

5. 直前のコマンドの一部だけを使う方法

5. 直前のコマンドの一部だけを使う方法
5. 直前のコマンドの一部だけを使う方法

!$を使うと、直前のコマンドの最後の引数だけを取り出すことができます。


cat sample.txt
Hello Linux

echo !$
sample.txt

このように、ファイル名だけを再利用できます。

同じファイルを別のコマンドで使いたいときにとても便利です。

6. 特定の文字列を含むコマンドを再実行する

6. 特定の文字列を含むコマンドを再実行する
6. 特定の文字列を含むコマンドを再実行する

!?文字列を使うと、履歴の中からその文字列を含むコマンドを検索して実行できます。


!?file
cat file.txt

これは「file」を含むコマンドを探して再実行しています。

コマンドの一部しか覚えていない場合でも使える便利な方法です。

7. !展開を使うときの注意点

7. !展開を使うときの注意点
7. !展開を使うときの注意点

!展開は非常に便利ですが、注意も必要です。

間違ったコマンドを再実行してしまうと、意図しない操作が行われる可能性があります。

特にファイル削除などのコマンドは注意が必要です。

実行前に内容を確認したい場合は、historyで内容をチェックしてから使うと安全です。

また、!はシェル特有の機能なので、環境によっては動作が異なる場合があります。

8. !展開とhistoryコマンドの違い

8. !展開とhistoryコマンドの違い
8. !展開とhistoryコマンドの違い

historyは履歴を確認するためのコマンドで、!は履歴を再実行するための機能です。

この2つを組み合わせることで、Linuxの操作効率が大きく向上します。

たとえば、まずhistoryで過去のコマンドを確認し、その番号を使って!で再実行するという流れです。

この操作に慣れると、コマンド入力のスピードが格段に上がります。

まとめ

まとめ
まとめ

本記事では、Linuxコマンドの操作効率を大きく向上させる「エクスクラメーション展開」の使い方について詳しく解説しました。Linux初心者にとって、同じコマンドを何度も入力するのは大きな負担ですが、履歴機能と組み合わせることで、作業スピードを飛躍的に高めることができます。 特に、直前のコマンドを再実行する方法、履歴番号を使った実行、コマンド名からの検索、引数の再利用などは、日常的なLinux操作で非常に役立つテクニックです。 Linuxのシェルには、過去の操作履歴を効率よく活用するための仕組みが備わっており、これを理解することで、コマンド入力の手間を削減し、作業ミスの軽減にもつながります。 また、historyコマンドと組み合わせることで、より安全に履歴を確認しながら再実行することができるため、初心者から上級者まで幅広く活用できる知識です。 Linuxコマンドの学習においては、単にコマンドを覚えるだけでなく、このような効率化のテクニックを身につけることが重要です。 エクスクラメーション展開は、Linuxの基本操作の中でも特に実用性が高く、サーバー管理や開発作業、システム運用など、さまざまな場面で活躍します。 さらに、コマンド履歴の再利用は、作業時間の短縮だけでなく、正確な操作の再現にも役立ちます。特に長いコマンドや複雑なオプションを含む場合、再入力の手間を省くことで効率が大幅に向上します。 今後Linuxを使い続ける上で、これらのテクニックは必ず役立つため、実際に手を動かしながら繰り返し練習して、自然に使えるようにしていきましょう。

よく使うエクスクラメーション展開の確認

実務でよく使われるエクスクラメーション展開を、もう一度確認しておきましょう。


!!
直前のコマンドを再実行

!5
履歴番号5のコマンドを実行

!ls
lsで始まるコマンドを再実行

!$
直前のコマンドの最後の引数を再利用

!?file
fileを含むコマンドを検索して実行

これらの基本を押さえておくだけでも、Linuxコマンド操作の効率は大きく改善されます。

実践的な活用例

実際の現場では、コマンドを組み合わせて使うことで、さらに効率的な操作が可能になります。


cat log.txt
エラーログの内容

grep error !$
エラー行の抽出結果

このように、直前の引数を再利用することで、同じファイルを別のコマンドで簡単に扱うことができます。 Linuxコマンドを効率よく使うためには、このような履歴の活用が非常に重要です。

先生と生徒の振り返り会話

生徒

「エクスクラメーション展開って、最初は難しそうでしたが、使ってみるとすごく便利ですね。特に同じコマンドを何度も入力しなくていいのが助かります。」

先生

「その通りです。Linuxコマンドは効率よく使うことが重要です。履歴機能を活用することで、作業時間を短縮できます。」

生徒

「historyコマンドと一緒に使うと、さらに便利になるんですね。番号で指定できるのも分かりやすいです。」

先生

「はい、historyで確認してから実行すれば、安全に操作できます。特に削除コマンドなどは注意が必要です。」

生徒

「引数だけ再利用できる機能も便利でした。同じファイルを何度も使うときに役立ちそうです。」

先生

「その通りです。Linuxでは小さな効率化の積み重ねが大きな差になります。エクスクラメーション展開はその代表的な機能です。」

生徒

「これからは意識して使っていきます。Linuxコマンドの理解が一歩深まりました。」

先生

「とても良いですね。実際に使いながら覚えることが、Linux上達の近道です。これからもコマンド履歴を活用して、効率的な操作を身につけていきましょう。」

カテゴリの一覧へ
新着記事
New1
Linuxコマンドの基本
Linuxのパイプ(|)とは?複数コマンドをつなげて効率化する方法を完全解説
New2
テキスト・データ処理
tailコマンドとは?Linuxでファイルの末尾を表示する基本をやさしく解説!
New3
ファイル・ディレクトリ操作
find -groupオプションの使い方を解説!初心者でもできる所有グループによるファイル検索
New4
圧縮・アーカイブ
rar xオプションの使い方を完全ガイド!Linuxでディレクトリ構造を保持して展開する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
圧縮・アーカイブ
gzipコマンドの使い方を完全ガイド!初心者でもわかるLinuxでファイル圧縮の基本