【Shell Script】シェルスクリプトとは?コマンドをまとめて自動実行する仕組み

Shell Script

こんにちは、かつコーチです。

Linux基礎編では、ターミナルでコマンドを1つずつ打つ操作を解説してきました。

今回からは新シリーズとして、そのコマンドを「まとめて自動実行する」ためのシェルスクリプトを扱っていきます。

毎日同じコマンドを何行も打つのは、正直かなり面倒です。

この記事を読めば、シェルスクリプトが何のためにあるのか、どんな場面で役立つのかが分かります。

シェルスクリプトとは?

作業手順書のようにコマンドをまとめたファイル

シェルスクリプトとは、複数のコマンドを順番に書き並べたテキストファイルのことです。

料理のレシピを思い浮かべてください。

「野菜を切る→炒める→味付けする」という手順を紙に書いておけば、誰でも同じ手順で料理を再現できます。

シェルスクリプトも同じで、「ログを確認する→古いファイルを削除する→バックアップを取る」といった手順をファイルに書いておくことで、いつでも同じ手順を再現できます。

拡張子は.shが一般的ですが、実行権限さえあれば拡張子がなくても動作します。

なぜシェルスクリプトが必要なのか

手作業でコマンドを打つ方法にも良さはありますが、次のような場面で限界が見えてきます。

  • 同じ作業を毎日・毎週繰り返す
  • 手順が5つ・10個と多く、打ち間違えるリスクがある
  • 他の人にも同じ手順を実行してもらいたい

シェルスクリプトにしておけば、手順を丸ごとファイル化できるため、打ち間違いがなくなり、他の人への引き継ぎも一瞬で終わります。

現場のインフラエンジニアが「まずスクリプト化」を徹底するのは、この再現性の高さが理由です。

基本の書き方・実行手順

手順1:スクリプトファイルを作成する

まずはテキストエディタで、簡単なスクリプトを作ってみましょう。

nano hello.sh

中身は次のように書きます。

#!/bin/bash
echo "こんにちは、かつコーチです。"
echo "今日の日付は $(date +%Y-%m-%d) です。"

1行目の#!/bin/bashシェバンと呼ばれる特殊な記述で、次回のSH02で詳しく解説します。

手順2:実行権限を付けて実行する

保存したら、実行権限を付けてから実行します。

chmod +x hello.sh
./hello.sh

chmod +xはファイルに「実行してよい」という許可を与えるコマンドです。

実行すると、次のように表示されます。

こんにちは、かつコーチです。
今日の日付は 2026-09-08 です。

たった2行のコマンドですが、これを毎回手打ちする代わりに./hello.shの一発実行で済むようになります。

手順3:複数コマンドをまとめてみる

もう少し実用的な例として、ログの一部を確認するスクリプトを作ってみます。

#!/bin/bash
echo "=== ディスク使用量 ==="
df -h /

echo "=== 直近のログイン履歴 ==="
last -n 5

サーバーの状態確認を毎回2つのコマンドで行っていた作業が、これで1回の実行に集約されます。

よくあるつまずきポイント:「command not found」の正体

私が初めてシェルスクリプトを書いたとき、作成したファイルをそのまま実行しようとして、次のようなエラーに悩みました。

❌ Before:ファイル名だけで実行しようとする

hello.sh
bash: hello.sh: command not found

Linuxでは、セキュリティ上の理由から、カレントディレクトリのファイルを勝手にコマンドとして探しに行かない仕組みになっています。

lscdのようなコマンドは/usr/binのような決まった場所(パス)に登録されているため名前だけで実行できますが、自作のスクリプトはその場所にありません。

✅ After:カレントディレクトリを明示して実行する

./hello.sh

./は「今いるディレクトリ」を明示的に指定する記号で、これを付けることで「ここにあるファイルを実行してほしい」とシェルに正しく伝えられます。

最初は./を付け忘れて何度もエラーを出したので、同じところで詰まる方はぜひ覚えておいてください。

応用・一歩先の使い方

スクリプトに引数を渡す

シェルスクリプトは、実行時に外部から値を渡すことも可能です。

#!/bin/bash
echo "こんにちは、$1 さん"
./hello.sh かつコーチ
# → こんにちは、かつコーチ さん

引数の受け取り方はSH08で詳しく扱いますが、こういう応用ができることだけ、まずは頭の片隅に置いておいてください。

バッチ処理・自動化への入口

シェルスクリプトは、後述するcron(SH14で解説予定)と組み合わせることで、決まった時間に自動実行できるようになります。

「毎晩3時にバックアップを取る」「毎朝サーバーの状態をチェックする」といった運用は、こうした自動化の積み重ねで実現されています。

まとめ

この記事のポイント

  • シェルスクリプトは、複数のコマンドを手順書のようにまとめて再現できるファイル
  • chmod +xで実行権限を付け、./ファイル名で実行する
  • カレントディレクトリのファイルは名前だけでは実行できず、./を付ける必要がある

次に読むべき記事

次回は、スクリプト1行目に書く#!/bin/bash(シェバン)と実行権限について、もう一歩踏み込んで解説します。

→ 次の記事:シェバン(#!/bin/bash)と実行権限の付け方

タグ: Shell, 初心者向け, 入門

タイトルとURLをコピーしました