カテゴリ: Linux基礎 更新日: 2026/05/06

&の使い方を完全解説!Linuxでバックグラウンド実行する基本と注意点

&を使ったバックグラウンド実行の基本と注意点
&を使ったバックグラウンド実行の基本と注意点

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

生徒

「Linuxで長い処理をしているときに、他の作業も同時にしたい場合はどうすればいいですか?」

先生

「その場合は、コマンドの最後に&をつけるとバックグラウンドで処理を実行できますよ。」

生徒

「バックグラウンドって何ですか?普通にコマンドを実行するのとどう違うんですか?」

先生

「バックグラウンド実行とは、Linuxがそのコマンドを裏で動かしている状態です。ターミナルを占有せずに別の作業ができるんです。」

生徒

「なるほど!でも注意することはありますか?」

先生

「はい。処理が終わったか確認したり、出力先に注意したりする必要があります。一緒に詳しく見ていきましょう。」

1. &を使ったバックグラウンド実行とは?

1. &を使ったバックグラウンド実行とは?
1. &を使ったバックグラウンド実行とは?

Linuxでは、通常コマンドを実行すると、その処理が終わるまでターミナルは他の操作ができません。しかし、&をコマンドの末尾につけることでバックグラウンド実行が可能になります。これは、処理を「裏で動かす」イメージです。

例えば大きなファイルをコピーしている間に、別のディレクトリを確認したい場合に便利です。ターミナルを占有せずに複数作業を並行して行えます。

2. &を使った簡単な例

2. &を使った簡単な例
2. &を使った簡単な例

では、実際に簡単な例を見てみましょう。長時間かかる処理として、sleepコマンド(指定秒数待機するコマンド)を使います。


sleep 10 &

上記のように&を付けると、ターミナルはすぐに次の操作が可能になります。10秒間待つ処理は裏で進行しています。

3. バックグラウンド実行の確認方法

3. バックグラウンド実行の確認方法
3. バックグラウンド実行の確認方法

バックグラウンドで動いているジョブはjobsコマンドで確認できます。


jobs
[1]+  Running                 sleep 10 &

表示される番号(ここでは[1])を使って、ジョブを制御することも可能です。

4. バックグラウンドジョブの操作

4. バックグラウンドジョブの操作
4. バックグラウンドジョブの操作

バックグラウンドで動くジョブは、fgでフォアグラウンドに戻すことができます。また、killで停止することも可能です。


fg %1

これにより、先ほどのsleep 10ジョブを前面で操作できるようになります。


kill %1

ジョブ番号を指定することで、バックグラウンドで動く処理を強制終了できます。

5. バックグラウンド実行の注意点

5. バックグラウンド実行の注意点
5. バックグラウンド実行の注意点

バックグラウンド実行では、標準出力や標準エラーがターミナルに出力される場合があります。大量の出力があるコマンドをそのまま&で実行すると、ターミナルが見づらくなることがあります。

その場合は、出力をファイルにリダイレクトすることをおすすめします。


sleep 10 > output.log 2>&1 &

この例では、標準出力(>)と標準エラー(2>)をoutput.logにまとめ、ターミナルをスッキリ保っています。

6. 複数コマンドのバックグラウンド実行

6. 複数コマンドのバックグラウンド実行
6. 複数コマンドのバックグラウンド実行

複数のコマンドを同時にバックグラウンドで実行することも可能です。


sleep 5 &
sleep 8 &
sleep 12 &

このように書くと、3つのジョブが同時に裏で進行します。Linuxのリソース(CPUやメモリ)に応じて効率よく処理されます。

7. バックグラウンド実行とシェル終了の関係

7. バックグラウンド実行とシェル終了の関係
7. バックグラウンド実行とシェル終了の関係

注意点として、通常のバックグラウンドジョブはターミナルを閉じると終了します。ターミナルを閉じても処理を続けたい場合は、nohupコマンドを使います。


nohup sleep 60 &

これで、ターミナルを閉じても処理は裏で続きます。出力は自動的にnohup.outに保存されます。

8. &を使うメリットと活用シーン

8. &を使うメリットと活用シーン
8. &を使うメリットと活用シーン

&を使うことで、Linuxでは作業効率を大幅に向上させることができます。例えば、大きなファイルのコピー、ログ解析、バックアップ処理など、長時間かかる処理を裏で進めながら別作業が可能です。

さらに、複数のジョブを並行処理することで、サーバー管理や日常のLinux操作をスムーズに行えます。

まとめ

まとめ
まとめ

今回の記事では、Linuxでのバックグラウンド実行における&の基本的な使い方から応用までを詳しく解説しました。バックグラウンド実行とは、コマンドをターミナルの裏で動かすことで、他の作業を並行して行える便利な機能です。例えば、大きなファイルのコピーや長時間かかるスクリプトの実行中でも、別のディレクトリの操作やシステムの確認が同時に行えます。
まず、&を付けることで、コマンドは即座にバックグラウンドで開始され、ターミナルは次の操作を受け付けます。これにより作業効率が格段に向上します。また、jobsコマンドで現在動作しているバックグラウンドジョブを確認でき、必要に応じてfgでフォアグラウンドに戻したり、killで停止したりすることも可能です。
バックグラウンド実行を行う際には、標準出力や標準エラーの出力先に注意が必要です。大量の出力がターミナルに表示されると作業が見づらくなるため、> output.log 2>&1のようにリダイレクトしてファイルにまとめる方法が有効です。さらに、複数のコマンドを同時に実行することで、LinuxのCPUやメモリリソースを効率的に活用し、複数の作業を並行して進められます。
重要な点として、通常のバックグラウンドジョブはターミナルを閉じると終了します。ターミナルを閉じても処理を継続させたい場合は、nohupコマンドを使用することで、処理を中断させずに裏で実行可能です。これにより、サーバー管理や定期的なバックアップ、ログ解析など、長時間かかる作業を安心して進められます。
最終的に、&を活用することで、Linuxでの作業効率が大幅に向上し、時間の有効活用や複数作業の並行処理が実現できます。初心者でも基本的なコマンドを理解すれば、安全かつ効率的にバックグラウンド処理を扱えるようになります。

サンプルコマンドまとめ

以下に、今回の記事で解説したコマンドのまとめ例を示します。


# バックグラウンドで10秒待つ
sleep 10 &

# バックグラウンドジョブの確認
jobs
[1]+  Running                 sleep 10 &

# ジョブをフォアグラウンドに戻す
fg %1

# ジョブを終了する
kill %1

# 標準出力と標準エラーをファイルにリダイレクトしてバックグラウンド実行
sleep 10 > output.log 2>&1 &

# 複数コマンドを同時にバックグラウンド実行
sleep 5 &
sleep 8 &
sleep 12 &

# ターミナルを閉じても処理を続ける
nohup sleep 60 &
先生と生徒の振り返り会話

生徒

「バックグラウンド実行って、Linuxで作業を効率化するための機能なんですね。複数の作業を同時に進められるのが便利です。」

先生

「その通りです。特にサーバー管理や長時間処理のスクリプトでは、バックグラウンド実行が大活躍します。出力先やジョブ管理に注意すれば安全に使えます。」

生徒

「なるほど。ターミナルを閉じても処理を続けたい場合は、nohupを使うんですね。」

先生

「はい。nohupは重要な処理や長時間ジョブに最適です。さらに、出力をファイルにまとめることでターミナルもスッキリ保てます。」

生徒

「複数コマンドを同時にバックグラウンドで実行する場合はどうしたらいいですか?」

先生

「単純にそれぞれのコマンドの末尾に&を付けるだけです。これでLinuxのリソースを効率的に使って、並行処理が可能になります。」

生徒

「なるほど、ジョブの確認や制御方法も理解できました。これで安心してバックグラウンド処理を使えます。」

カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New2
テキスト処理とフィルタ
tacコマンドの基本!ファイル内容を逆順に表示する方法
New3
テキスト・データ処理
awk -fオプションの使い方を完全ガイド!初心者でもわかるLinuxテキスト処理の基本
New4
ファイル・ディレクトリ操作
find -userオプションの使い方を完全ガイド!初心者でもわかる所有者ユーザーでファイルを検索する方法
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門