この中級コースでは、使い慣れたシェルコマンドを再利用可能な Bash プログラムへ組み立てます。6 つのガイド付きラボで、実行可能スクリプト、対話入力と引数、条件分岐、ループ、コマンド終了状態、タイムスタンプ付き履歴を実践します。
最後のチャレンジでは、1 つのユーザー名を検証し、重複を避け、Bash ユーザーと所有権を設定した作業ディレクトリを作成し、成功を監査ログに残す onboard.sh を構築します。
学習内容
- Shebang を持つ Bash スクリプトを書き、実行権限を付けて
./で起動する - 変数に値を保存し、
readまたは位置引数$1で入力を受け取る ifとelseでファイルの存在と数値ユーザー ID を検査するforループで数値範囲とファイル名ワイルドカードを反復する- 数値条件が真の間、
whileループで処理を繰り返す - コマンド直後の
$?を確認し、失敗時に分岐する - 絶対パスのログへメッセージと時刻を追記し、履歴を上書きしない
- 引数検証、所有権、監査ログを備えたアカウント作成スクリプトを構築する
このコースの対象者
このコースは、ターミナルコマンド、ファイル、権限、変数、リダイレクトを理解し、それらを小さな Bash 管理スクリプトへ組み合わせたい Linux ユーザーを対象としています。
前提知識: ターミナル操作、ファイル操作、Nano などのエディター、Shell 変数、ワイルドカード、コマンド置換、リダイレクト、権限、sudo に慣れていること。
学習環境: Ubuntu ベースの LabEx ターミナル。Bash、編集可能なプロジェクトスクリプト、準備済みテストファイル、チャレンジ用ローカルアカウントを作成する隔離管理権限を使用します。
よくある質問
コースはどのような構成ですか?
最初の 6 つはガイド付きラボです。7 つ目は、実行可能な onboard.sh を段階的に作成・テストする、ヒントの少ないチャレンジです。
Scheduling ラボでは Cron を設定しますか?
いいえ。絶対パスのログにメッセージと date を追記して無人実行に備え、手動で複数回実行します。Cron 設定は別コースです。
最後のスクリプトはシステムに何を変更しますか?
隔離ラボで sudo useradd -m -s /bin/bash により実際のローカルテストアカウントを作り、/home/<username>/work の所有権を設定し、~/project/onboard.log に追記します。
エラー処理はどこまで高度ですか?
$?、非ゼロの exit、引数数検証、コマンド失敗や既存ユーザーの条件処理を扱います。Trap、set -euo pipefail、後始末、トランザクション的ロールバックは扱いません。





