シェルスクリプト入門

毎日同じコマンドを5つ順番に打つのは面倒です。シェルスクリプトは、複数のコマンドをファイルにまとめて、ファイル名を打つだけで一括実行できる仕組み。Linuxエンジニアの「自動化」の中核技術で、書き方は驚くほどシンプルです。

そもそもシェルスクリプトとは?

シェルスクリプトは、「シェル(Bash等)が解釈できる命令を並べたテキストファイル」です。拡張子は.shを付けるのが慣習で、中身はターミナルで打つコマンドをそのまま書くだけ。実行権限を付ければ、ファイル名で起動できる小さなプログラムになります。

例えば「Pythonの仮想環境を作って、ライブラリを入れて、実行する」を毎回手で打つ代わりに、setup.shというファイルを1つ作って実行すれば終わります。Linuxエンジニアは、繰り返し作業や確認作業をシェルスクリプトで効率化する場面が多くあります。

シェルスクリプトの基本構造

実用例:宿題フォルダを毎日バックアップするスクリプト 10行で完成。変数・条件分岐・ファイル操作を実例で学べる #!/bin/bash # Bashで実行する宣言 # 宿題フォルダを日付付きでバックアップ SRC= "$HOME/Documents/homework" # コピー元(自分のホーム) DST= "/mnt/usb/backup/$(date +%Y%m%d)" # 日付フォルダにコピー先 if [ ! -d "$DST" ]; then # フォルダがなければ mkdir -p "$DST" # 作成する fi cp -r "$SRC"/* "$DST/" # 中身をすべてコピー echo "バックアップ完了:$DST" $ ./backup.sh → 「バックアップ完了:/mnt/usb/backup/20260504」
図1:10行で実用バックアップツールの完成。ファイル名で起動でき、cronで毎日自動実行も可能

1行目の#!/bin/bashは「shebang(シバン)」と呼ばれ、「このファイルはBashで実行してください」という宣言です。これだけ書いておけば、あとは普通のコマンドを上から順に書くだけ。chmod +x hello.shで実行権限を付けて、./hello.shで起動します。

変数と条件分岐の例

シェルスクリプトには変数やif文もあります。name="太郎"と書けば変数nameに「太郎」が入り、echo "$name"で表示できます。条件分岐はif [ "$1" = "hello" ]; then echo "hi"; fiのような書き方で、ファイル数が10個以上なら警告を出すなどの処理が組めます。本格的なプログラミング言語ほど複雑ではないので、半日で基礎が掴めます。

シェルスクリプトでできること

毎日の作業をスクリプト化したときの時間節約 手作業×日数で年間どれだけ時間が浮くか。回数が多いほど効果絶大 A. 100ファイルのリネーム(月1回) 手作業 15分×12ヶ月=年3時間 スクリプト 3秒×12回=年36秒 B. ログ集計とレポート作成(毎日) 手作業 10分×365日=年60時間 スクリプト cron自動実行=0秒(無人) C. プロジェクト環境構築(新規プロジェクトごと) 手作業 30分×手順を覚えていない スクリプト ./setup.sh=1分で完了
図2:自動化で毎日10分→ゼロが累積すれば年60時間節約。中高生のうちに身につける価値は大きい

中高生におすすめの使い方

「毎日宿題フォルダの中身を別のドライブにコピーする」「PCを起動したらVS Codeとブラウザを自動で開く」「写真フォルダから2026年のものだけを別フォルダに移動」など、毎日の繰り返し作業を1つスクリプト化するだけで便利さを実感できます。学校の課題で「100枚の画像をリネーム」のような処理があるとき、5行のスクリプトで終わります。

最初に作るなら、壊れても困らない練習用フォルダを用意し、echo で処理内容を表示するだけのスクリプトから始めましょう。いきなり削除や移動を実行せず、「どのファイルを対象にするか」を画面に出して確認してから本番処理に変えると安全です。

慣れてきたら、エラーが起きたときに止める set -e、変数が空のまま使われたときに気づける set -u、ログを残す tee なども学ぶと実用度が上がります。シェルスクリプトは短く書ける分、対象フォルダを間違えると影響も大きいので、確認しながら育てるのがコツです。

気をつけたい落とし穴

シェルスクリプトの注意点
  • rmを含むスクリプトは特に慎重に。変数の値が空のまま実行されるとrm -rf /*のような事故になります
  • スペースの扱いが厳密。name = "太郎"はエラー、name="太郎"が正解です
  • ネットからコピペした実行権限つきスクリプト(curl | bash)は危険。中身を必ず確認してから実行

将来どう役立つ?

シェルスクリプトはインフラエンジニア・SRE・DevOpsの基礎技術です。サーバー設定の自動化、デプロイパイプライン、ログ監視などは、シェルスクリプトやPython、Ansibleのような自動化ツールで支えられています。中高生のうちに「毎日使う小さなスクリプトを自分で書いた」経験があると、コマンドを道具として扱う感覚が身につきます。

今日からできること

3ステップで始めよう
  1. nano hello.shでファイルを作り、#!/bin/bashecho "Hello!"を書く
  2. chmod +x hello.shで実行権限を付け、./hello.shで起動する
  3. 「自分が毎日打つコマンド3つ」をまとめたスクリプトを作って実行してみる

まとめ

シェルスクリプトは「複数のコマンドを1つのファイルにまとめた小さなプログラム」で、Linuxの自動化の中核です。1行目に#!/bin/bashを書き、あとは普通のコマンドを並べるだけ。変数やif文も使えるので、短い練習でも基礎をつかめます。毎日の繰り返し作業を1つでもスクリプト化すると、効率と正確さが上がります。