コース一覧
シェル実践
開発環境での Linux 活用例

シェル実践

シェルスクリプト、条件分岐、ループ、関数、ログ解析、システム管理を学び、定型作業を安全に自動化できるようにします。

1
シェルスクリプト入門
0. シェルスクリプトとは5分
1. 変数と引数5分
2. 条件分岐 if5分
3. ループ処理 for, while5分
4. 関数を定義する5分
5. 実践スクリプト作成5分
6. シェルスクリプトチェック5分
2
実践:ログ解析とシステム管理
0. ログファイルの解析5分
1. システム情報の取得5分
2. パッケージ管理5分
3. cron で定期実行5分
4. 開発環境での Linux 活用例5分
5. 総合チェック5分

シェル実践

01シェルスクリプトとは
02変数と引数
03条件分岐 if
04ループ処理 for, while
05関数を定義する
06実践スクリプト作成
07シェルスクリプトチェック
08ログファイルの解析
09システム情報の取得
10パッケージ管理
11cron で定期実行
12開発環境での Linux 活用例
13総合チェック

シェル実践

開発環境での Linux 活用例

手元では通るのに、CI だけが落ちる

自動テストが赤くなったとき、手元にあるのは数行のログだけです。画面もエディタもありません。ところがこのログは、Linux のシェルが吐いた出力そのものです。読み方を知っていれば、そこに原因が書かれています。

プレーンテキスト

Run ./scripts/build.sh
/bin/bash: line 1: ./scripts/build.sh: Permission denied
Error: Process completed with exit code 126

実行の許可が付いていないという知らせです。手元では以前に実行ビットを立てたので動き、その状態を記録せずにコミットしたため、取り直した側では立っていません。原因が読めれば、直し方は 1 つに定まります。

No such file or directory なら、動き出した場所が思っていたディレクトリと違います。CI のワーカーはたいてい Ubuntu なので、このコースで打ってきたコマンドがそのまま通用します。

コンテナの中は、別世界ではない

コンテナが立ち上がらないとき、外から眺めていても分かりません。中に入れば、これまでと同じ道具が使えます。

ターミナル

docker exec -it web sh

入ってしまえば、ls -la で置かれたファイルと権限を見て、ps で何が動いているかを見て、cat で設定を読む。手順は普通の Linux と変わりません。仮想マシンではなく、ホストのカーネルの上でプロセスを隔離しているだけだからです。

そもそも起動に失敗して入れないときは、外から出力だけを取り出します。

ターミナル

docker logs --tail 50 web

ここに出るのも、アプリが標準出力へ書いた文字列です。読む対象はログファイルのときと同じです。

同じスクリプトが、Mac では違う結果になる

本番は Linux、開発機は Mac という組み合わせが最も多い一方で、両者のコマンドは細部が違います。同じ名前でも中身が別の実装で、オプションの解釈が食い違います。

  • sed -i は、Mac では書き換え後の拡張子を必ず要求します
  • date の日付計算のオプションが、Linux と Mac で別の書き方です
  • readlink -f は、Mac の既定では使えません

手元だけで確かめたスクリプトを本番に置くと、この差でこけます。避けたいなら、開発側を Linux に寄せるのが早道です。Windows なら WSL2、Mac ならコンテナの中で動かせば、本番との差が縮みます。

ここまでで、ファイル、権限、プロセス、ネットワーク、シェルスクリプトを一通り触りました。どれも、画面が無い場所で何が起きているかを自分の目で確かめるための道具です。次に進むなら、サービスの常駐を管理する systemd と、構成そのものをコードで残す仕組みが、そのまま地続きになります。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 自動テスト関数やコンポーネントが正しく動くか自動で検証する仕組み。
  • テストバグを見つける工程
  • シェルコマンドを解釈して実行するプログラム
  • ビット2進数の1桁。0 か 1 のどちらか
  • コミット変更内容を記録するスナップショット
  • ディレクトリファイルを整理するフォルダのこと。
  • コンテナデータ取得や状態を担う上位コンポーネント
  • カーネルOS の中核。資源管理を担う
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2025/12/19·更新 2026/08/26

関連レッスン

  • 総合チェック

    Linuxコマンドに関する理解度を測る総合チェックです。ここまでの学習内容を復習しましょう。

  • cron で定期実行

    `cron`を設定し、コマンドを定期的に実行する方法をターミナルで体験します。

  • パッケージ管理

    Linuxでソフトウェアをインストール・アップデート・削除するためのパッケージ管理を学びます。

  • システム情報の取得

    Linuxのシステム名やカーネルバージョンなど、基本的なシステム情報を取得する方法を学びます。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。