このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:シェルスクリプトの基本

シェルスクリプトの基本

 Linux で毎回同じコマンドを繰り返し実行するのは非効率であり、ミスの原因にもなります。そこで登場するのが シェルスクリプト です。シェルスクリプトは、複数のコマンドを一つのファイルにまとめ、連続的かつ自動的に実行できる仕組みを提供します。

 シェルスクリプトを使うことで、ログ取得や定期的なバックアップ、システムの状態チェックといった作業を自動化できます。また、1行目に「#!/bin/bash」のように記述することで、どのシェルで実行するかを明示できる点も重要です。

 ここでは、シェルスクリプトの基本的な仕組み、作成方法、記述上のルールについて具体的な例を交えて解説します。

1.シェルスクリプトとは

1.1. 定義と役割

 シェルスクリプトは、シェルに入力する一連のコマンドをまとめたテキストファイルです。シェルはそのファイルを「台本(スクリプト)」として順番に実行します。

項目説明
自動化繰り返し行う作業を効率化できる。
再現性同じ結果を何度でも再現可能
可読性コメントを入れることで処理内容をわかりやすくできる。

1.2. 実行例

 例えば、システム情報をファイルに記録する場合、毎回次のようなコマンドを手作業で実行するのは面倒です。

[user@rocky9 ~]$ date >> sysinfo.log
[user@rocky9 ~]$ uptime >> sysinfo.log
[user@rocky9 ~]$ free -h >> sysinfo.log

このような処理をシェルスクリプトにまとめれば、ワンコマンドで実行できます。

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

2.1. シバン(#!)の指定

シェルスクリプトの1行目は「シバン」と呼ばれ、どのシェルを使うかを指定します。

#!/bin/bash

これにより、/bin/bash を利用してスクリプトが実行されることが保証されます。

2.2. コメント

 「#」から始まる部分はコメントとして扱われ、実行されません。処理内容の説明や注意点を記載することで、スクリプトの理解や保守が容易になります。

2.3. 実行例(syscheck.sh)

#!/bin/bash
# システム情報をログに保存するスクリプト
date >> sysinfo.log
echo "----------------------------" >> sysinfo.log
uptime >> sysinfo.log
echo "----------------------------" >> sysinfo.log
free -h >> sysinfo.log
echo "============================" >> sysinfo.log

3.シェルスクリプトの実行方法

3.1. bash コマンドを利用する場合

[user@rocky9 ~]$ bash syscheck.sh

3.2. source コマンドを利用する場合

[user@rocky9 ~]$ source syscheck.sh

この方法では、現在のシェル環境に影響を与えます。

3.3. 実行権限を付与して実行する場合

[user@rocky9 ~]$ chmod +x syscheck.sh
[user@rocky9 ~]$ ./syscheck.sh

4.使用コマンドの解説

4.1. date コマンド

書式

date [オプション]

日時を表示します。

オプション説明
+%F日付を YYYY-MM-DD 形式で表示
+%T時刻を HH:MM:SS 形式で表示

4.2. uptime コマンド

書式

uptime

システムの稼働時間やロードアベレージを表示します。

4.3. free コマンド

書式

free [オプション]

システム内のメモリの状況を確認することができます。

オプション説明
-mMB 単位で表示
-h読みやすい形式(KB/MB/GB 自動換算)

5.実行結果の例

[user@rocky9 ~]$ cat sysinfo.log 
2025年  9月  5日 金曜日 22:47:50 JST
----------------------------
 22:47:50 up  7:07,  2 users,  load average: 0.18, 0.08, 0.01
----------------------------
               total        used        free      shared  buff/cache   available
Mem:           1.7Gi       1.3Gi       214Mi        19Mi       425Mi       471Mi
Swap:          2.0Gi       4.0Mi       2.0Gi
============================

まとめ

  • シェルスクリプトは一連のコマンドを自動化する仕組みであり、効率的で再現性の高い作業を可能にする。
  • 1行目のシバン(#!)で実行シェルを指定するのが基本。
  • コメントを活用することでスクリプトの可読性を高められる。
  • 実行方法には bash コマンドsource コマンド実行権限を付与して直接実行 の3種類がある。
  • ログ取得やシステム管理タスクなど、実務において活用の幅が広い。