カテゴリ: Linux 更新日: 2026/03/25

Linuxで()の意味とは?サブシェルの仕組みを初心者向けに徹底解説

Linuxの「()」とは?サブシェルの仕組み
Linuxの「()」とは?サブシェルの仕組み

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

生徒

「Linuxのシェルで、よく丸括弧 '()' を見かけます。これは何の意味ですか?」

先生

「丸括弧 '()' はサブシェルを作るために使います。サブシェルとは、親のシェルとは別に動作する小さなシェルのことです。」

生徒

「親のシェルと何が違うんですか?」

先生

「サブシェル内で設定した環境変数やカレントディレクトリの変更は、親のシェルに影響しません。つまり安全にコマンドを試せる独立した環境です。」

1. サブシェルとは?Linuxでの基本概念

1. サブシェルとは?Linuxでの基本概念
1. サブシェルとは?Linuxでの基本概念

Linux(リナックス)のサブシェルは、親シェルとは別に実行されるプロセスのことです。丸括弧 '()' を使うことで作成できます。サブシェルの中で実行したコマンドは、親シェルの環境に影響を与えないため、実験的にコマンドを試すときや、一時的にディレクトリを変更して処理を行う場合に便利です。

2. ()の基本的な使い方

2. ()の基本的な使い方
2. ()の基本的な使い方

丸括弧 '()' を使う基本的な書き方は次の通りです。複数のコマンドをまとめてサブシェルで実行できます。


(cd /tmp
ls -a)
.  ..  file1.txt  file2.log

この例では、サブシェル内で一時的に /tmp ディレクトリに移動し、ファイル一覧を表示していますが、親シェルのカレントディレクトリは変わりません。

3. サブシェルの利点と用途

3. サブシェルの利点と用途
3. サブシェルの利点と用途

サブシェルを使うメリットは、親シェルに影響を与えずにコマンドを実行できることです。例えば、環境変数を一時的に変更したい場合や、複数コマンドをまとめて実行して結果を保存したいときに役立ちます。


(VAR=123
echo $VAR)
123
echo $VAR

この例では、サブシェル内で VAR を設定して表示していますが、親シェルでは VAR は空のままです。

4. サブシェルとパイプの関係

4. サブシェルとパイプの関係
4. サブシェルとパイプの関係

Linuxのパイプ '|' も実はサブシェルを使います。パイプでつながれた各コマンドは独立したサブシェルで実行されるため、環境は共有されません。


echo "hello" | (read var
echo $var)

この例では、サブシェルで read しても親シェルの変数には影響しません。

5. サブシェルと変数の挙動

5. サブシェルと変数の挙動
5. サブシェルと変数の挙動

サブシェル内で設定した変数やディレクトリは、サブシェルが終了すると消えます。これを理解していないと、設定が反映されないと感じることがあります。


(cd /var/log
pwd)
/home/user
pwd
/home/user

サブシェル内で /var/log に移動しても、親シェルの pwd は変わらず、元のディレクトリに戻っています。

6. サブシェルを使った簡単なスクリプト例

6. サブシェルを使った簡単なスクリプト例
6. サブシェルを使った簡単なスクリプト例

複数のコマンドをサブシェルでまとめることで、スクリプトを安全に実行できます。


(
echo "開始処理"
cd /tmp
ls
echo "終了処理"
)

このように丸括弧を使うと、処理全体が独立したサブシェルで実行されるため、親シェルには影響しません。

7. サブシェルの注意点

7. サブシェルの注意点
7. サブシェルの注意点

サブシェルは便利ですが、親シェルの環境を変更したい場合には使えません。例えば、サブシェルで export した変数は親シェルに渡らないため、必要に応じて source. コマンドでスクリプトを読み込む必要があります。


(export VAR=100
echo $VAR)
echo $VAR

親シェルでは VAR は設定されていません。

8. サブシェルの歴史と背景

8. サブシェルの歴史と背景
8. サブシェルの歴史と背景

サブシェルの概念は、Unix(ユニックス)の歴史にさかのぼります。複数のコマンドを独立した環境で実行するために導入され、現在の Linux シェル(bashやzshなど)でも重要な機能として残っています。初心者がコマンドを安全に試せる環境として活用できます。

9. 実務でのサブシェルの活用例

9. 実務でのサブシェルの活用例
9. 実務でのサブシェルの活用例

Linuxでログ処理や一時ディレクトリの作業を行うときにサブシェルは非常に便利です。親シェルを汚さずに作業できるため、スクリプトの安全性が向上します。


(
mkdir /tmp/testdir
cd /tmp/testdir
touch file1 file2
ls
rm -r /tmp/testdir
)

この例では一時ディレクトリで作業しても、親シェルには影響を与えません。

関連記事:
カテゴリの一覧へ
新着記事
New1
基本情報技術者試験
ユニキャストとは?初心者でもわかる1対1の通信の仕組みをやさしく解説
更新記事
New2
基本情報技術者試験
ブロードキャストとは?初心者にもわかるネットワーク通信の基本用語を解説!
更新記事
New3
Linux
Linuxの/etc/profile.dとは?ログイン時に読み込まれるスクリプトの仕組みを初心者向けに徹底解説
新規投稿
New4
基本情報技術者試験
IPアドレスのクラスとは?初心者でもわかるネットワークアドレスの分類と仕組み
更新記事
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
NIC
234
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.3
Java&Spring記事人気No3
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.4
Java&Spring記事人気No4
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.5
Java&Spring記事人気No5
基本情報技術者試験
IMAP
115
IMAPとは?初心者でもわかるメール受信プロトコルの仕組みと使い方
No.6
Java&Spring記事人気No6
基本情報技術者試験
パケットとは?初心者にもわかりやすくネットワークの仕組みをやさしく解説!
No.7
Java&Spring記事人気No7
基本情報技術者試験
IPv4
102
IPv4とは?初心者でもわかるIPアドレスの基本と通信のルール
No.8
Java&Spring記事人気No8
基本情報技術者試験
CGIとは?初心者でもわかるWebとプログラムのつながりを解説!