blog

テクノロジー|Linuxシェルスクリプトの始め方

読者の皆さん、この記事では Linux や UNIX システムでシェルスクリプトを始める方法を学びます。...

Nov 2, 2025 · 6 min. read
シェア

読者の皆さん、この記事ではLinuxやUNIXシステムでシェルスクリプトを始める方法を学びます。

シェルとは?

シェルは、UNIX/Linuxライクなオペレーティングシステムにおけるインタプリタです。ユーザーが入力したコマンドをオペレーティングシステムが実行するためのシステムコールに解釈します。簡単に言うと、シェルは正式にはオペレーティングシステムのラッパーです。例えば、 コマンドのようにディレクトリ内のファイルをリストアップしたり、cp コマンドのようにコピーコマンドを使用するためにシェルコマンドを使用することがあります。

  1. Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos

上の例では、ls と入力して Enter キーを押すと、次のように表示されます。記号はシェルのプロンプトで、シェルがコマンドの入力を待っていることを意味します。下の行はカレント・ディレクトリのファイル名です。

シェルプロンプトとは何ですか?

プロンプトはコマンドプロンプトと呼ばれ、シェルから発行されます。プロンプトが表示されたら、コマンドを入力する準備が整ったことになります。シェルは、Enterキーを押した後の入力を読み込みます。シェルは、あなたが入力した最初の単語を見て、実行したいコマンドを判断します。単語」は連続した文字の集まりです。単語を区切るにはスペースとタブが使われます。

シェルの種類

シェルを1つしか持たないという制限はないので、好きなだけシェルを走らせることができます。以下はUNIx/Linuxの一般的なシェルのリストです。

Sh

Csh

カリフォルニア大学バークレー校のビル・ジョイによって設計され、構文がC言語に似ていることからCシェルと名付けられました。このシェルはボーンシェルにいくつかの便利な機能を追加し、特に後で実行するコマンドを作成するのに役立つ再利用可能なコマンドを追加しています。Cシェルの機能は、特殊なタスクのために複数のコマンドを実行する必要がある場合に便利です。

Ksh

ベル研究所のDavid Korn氏によって作成されたKorn Shellは、Cシェルと同じ拡張機能を提供しますが、1つ重要な違いがあります。AIX や HP-UX などの Unix では、Korn Shell がデフォルトのシェルです。

Bash

Bashは、Korn Shellのようなコマンドライン編集、C Shellのようなファイル名補完、その他多くの高度な機能を提供します。多くのユーザーはBashをKorn ShellとC Shellの両方の長所だと考えています。BashはLinuxとMac OS Xシステムのデフォルトシェルです。

Tcsh

Linuxシステムでは、従来のcshをコマンドライン編集やファイル名補完などの機能で拡張したTcshを推進しています。例えば、Tcsh は Tab キーを押すとファイル名やディレクトリ名を補完します。この機能は古い C シェルではサポートされていません。

シェルスクリプトとは?

シェルスクリプトは、1つ以上のコマンドを含むテキストファイルです。シェルスクリプトでは、シェルプログラムはテキストファイルの各行が異なるコマンドであると仮定します。これらのコマンドのほとんどは、シェルウィンドウで手動で入力するものと同じです。

シェルスクリプトを使う理由

シェルスクリプトは、管理タスクを自動化し、複雑な設定の詳細を簡素化し、オペレーティングシステムの性能を最大限に活用するために使用されます。異なるコマンドを組み合わせる機能により、新しいコマンドを作成し、オペレーティング・システムに付加価値を与えることができます。さらに、グラフィカル・デスクトップ環境と組み合わせてシェルを使用することで、両方の長所を活かすことができます。

システム管理者の観点からは、シェルスクリプトを使用することで、繰り返しの多い日々の作業を自動化することができ、他の質の高い作業に時間を割くことができます。

最初のシェル・スクリプトの作成

現在の作業ディレクトリにmyscript.shという名前のテキストファイルを作成します。すべてのシェルスクリプトの拡張子は.shです。スクリプトの最初の行は #!/bin/sh または #!/bin/bashです。#シンボルは「ハッシュ」と呼ばれ、! はshebangと呼ばれ、#記号は「hash」、! 記号は「bang」と呼ばれるからです。 /bin/shと/bin/bashは、コマンドがNYシェルとBashシェルのどちらで実行されるかを示します。

これが myscript.sh すべてです:

  1. #!/bin/bash
  2. # Written by LinuxTechi
  3. echo "Current Working Directory: $(pwd)"
  4. echo "Today' Date & Time: $(date)"
  5. DISK=$(df -Th)
  6. echo "Disk Space on System:"
  7. echo "$DISK"

上記のスクリプトは、現在の作業ディレクトリ、今日の日付と時刻、ディスク容量を表示します。このスクリプトを実行するには、 ls その他の Linuxコマンドが 必要です。

ファイルに実行パーミッションを追加するには、以下の echo コマンド 使用します:

  1. $ chmod a+x myscript.sh

では、スクリプトを実行します:

  1. $ NY myscript.sh
  2. $ ./myscript.sh

注:カレント・ディレクトリでシェル・スクリプトを実行するには、以下のように ./< > メソッドを使用する必要があります:

シェルスクリプトでのユーザー入力の取得

readコマンドは、ユーザーのキーボード入力を受け取り、変数に代入するために使われます。

上のスクリプトを変更して、入力を受け付けるようにしてみましょう:

  1. #!/bin/bash
  2. # Written by LinuxTechi
  3. read -p "Your Name: " NAME
  4. echo "Today' Date & Time: $(date)"
  5. read -p "Enter the file system:" DISK
  6. echo "$(df -Th $DISK)""

もう一度スクリプトを実行すると、今度は入力メッセージが警告されるはずです:

  1. $ ./myscript.sh
  2. Your Name: Pradeep Kumar
  3. Today' Date & Time: Sat 15 Oct BST 2022
  4. Enter the file system:/mnt/data
  5. Filesystem Type Size Used Avail Use% Mounted on
  6. /dev/mapper/volgrp01-lv01 ext4 G 1% /mnt/data

上記の出力は、スクリプトがアラートを入力し、適切なデータを処理したことを示しています。

この記事はここまでです。お役に立てたなら幸いです。ご質問、ご意見、ご感想は大歓迎です。

経由:

Read next