
新Linux入門|シェルスクリプトを理解しよう!自動化の第一歩
Linuxを使っていると、同じコマンドを何度も入力する場面ってありますよね。
「バックアップを定期的に取りたい」「ログを整理したい」など、毎回手で入力するのは大変です。
そんなときに活躍するのが シェルスクリプト(Shell Script) です。
シェルスクリプトは、コマンドをまとめて自動で実行してくれる“作業の自動化ツール”です。
ここでは、シェルスクリプトの基本構造・仕組み・実行方法を丁寧に見ていきましょう。

💻 シェルとは?
まず「シェル」とは、ユーザーとOS(カーネル)の間で命令をやり取りする通訳 のような存在です。
ターミナルでコマンドを入力すると、その命令を受け取ってOSに伝えるのがシェルです。
📘 代表的なシェル
| シェル名 | 説明 |
|---|---|
| bash | Linuxで最も一般的に使われるシェル(Bourne Again Shell) |
| sh | 伝統的なシェル(Bourne Shell) |
| zsh | 高機能で補完が強力なシェル(Z Shell) |
💬 AlmaLinux 9.6 の標準シェルは bash です。
したがって、この記事ではbashを使ってシェルスクリプトを解説します。
📄 シェルスクリプトとは?
シェルスクリプト とは、複数のLinuxコマンドをテキストファイルにまとめたものです。
このファイルを実行することで、一連の処理を自動化 できます。
たとえば、次のようなスクリプトは「Hello, World!」を表示する最もシンプルな例です。
📘 hello.sh の内容
#!/bin/bash
# これはコメント行です(実行時には無視されます)
echo "Hello, World!"💬 #!/bin/bash は「このスクリプトはbashで実行する」という宣言(シバン shebang)です。
# から始まる行はコメントとして扱われます。
実際の処理部分は echo "Hello, World!" の1行です。
⚙️ スクリプトの実行手順
スクリプトを作成したら、実行権限を付与してから実行します。
📘 例:スクリプトの作成と実行
[suzuki@AlmaLinux ~]$ vi hello.sh # スクリプトを作成
[suzuki@AlmaLinux ~]$ chmod +x hello.sh # 実行権限を付与
[suzuki@AlmaLinux ~]$ ./hello.sh # 実行
Hello, World!💬 chmod +x はファイルに実行権限を与えるコマンドです。
その後、./hello.sh でスクリプトを直接実行できます。
🧩 シェルスクリプトの基本構造
シェルスクリプトの中身は、次のような要素で構成されています。
| 要素 | 説明 |
|---|---|
| シバン(shebang) | #!/bin/bash のように、使用するシェルを指定する行 |
| コメント | # で始まる行。メモや説明を書ける |
| コマンド | 実際に実行される処理(例:echo、cp、mvなど) |
| 変数 | 値を一時的に保存できる(例:name="suzuki") |
| 制御構文 | if文、for文などで条件分岐や繰り返し処理を行う |
💬 これらを組み合わせることで、ちょっとした自動処理から高度なシステム管理まで対応できます。
🔤 変数と環境変数
シェルスクリプトでは、値を変数に代入して利用できます。
また、システムやユーザー設定を保持する環境変数も扱えます。
📘 例:変数の設定と参照
name="suzuki"
echo "Hello, $name"📘 出力結果
Hello, suzuki💬 $ を付けることで変数の中身を参照できます。
また、export を使うと環境変数として子プロセスにも引き継がせることができます。
🔁 制御構文の基本
シェルスクリプトでは、条件分岐や繰り返し処理も簡単に書けます。
これにより、状況に応じた柔軟な動作を実現できます。
📘 例:if文
age=20
if [ $age -ge 18 ]; then
echo "You are an adult."
else
echo "You are a minor."
fi📘 出力結果
You are an adult.💬 [ 条件式 ] の部分で条件を判定します。
then と fi の間が「真(true)」のときに実行される処理です。
📦 ファイル操作を自動化しよう
シェルスクリプトでは、ファイルのコピーや削除なども自動化できます。
📘 例:ファイルを自動コピー
#!/bin/bash
cp /home/suzuki/source.txt /home/suzuki/backup/source.txt
echo "Backup completed!"📘 出力結果
Backup completed!💬 これをcronなどと組み合わせれば、定期的なバックアップ処理も自動で行えるようになります。
🧮 よく使うコマンド一覧
| コマンド | 説明 | 主なオプション |
|---|---|---|
| echo | 文字列を出力する | -n(改行しない) |
| cp | ファイルをコピーする | -r(ディレクトリごとコピー) |
| mv | ファイルを移動またはリネームする | -i(上書き前に確認) |
| rm | ファイルを削除する | -r(ディレクトリを再帰的に削除) |
| chmod | ファイルの権限を変更する | +x(実行権限を付与) |
💬 これらのコマンドをスクリプトに組み込むことで、さまざまな自動処理が実現できます。
🧠 シェルスクリプトの実行方法まとめ
| 方法 | 実行内容 |
|---|---|
| ./script.sh | カレントディレクトリ内のスクリプトを直接実行 |
| bash script.sh | bashシェルでスクリプトを実行 |
| sh script.sh | Bourne Shell 互換でスクリプトを実行 |
💬 スクリプトに実行権限を付与しておくと、より自然に ./script.sh で動かせます。
✅ まとめ
- シェルスクリプトは、コマンドをまとめて自動実行できる「Linuxの自動化ツール」
- 基本構造は「shebang → コメント → コマンド本体」
- 変数・条件分岐・ループを使えば、柔軟な処理が可能
- 実行前に chmod +x で実行権限を付ける
- 日常の手作業を自動化する第一歩として最適
💬 シェルスクリプトを覚えることで、Linuxの作業がぐっと効率化します。
次回は、実際に「条件分岐」「ループ」「引数」などを使った応用スクリプトにも挑戦していきましょう!
