はじめに
おめでとうございます。急成長中のテック系スタートアップ、LabEx Corporation の Junior System Administrator に採用されました。今日は初出勤日です。上司から、会社がこれまでで最も意欲的に進めているプロジェクト、「Project Phoenix」を担当するよう指示されました。これは、企業のデジタルワークフロー管理を変革する画期的なアプリケーションです。
最初の任務は、Project Phoenix をホストする開発サーバーの「全体像を把握する」ことです。システムの識別情報、現在の利用者、現在の稼働状態を理解するために、基本的な調査を行います。
このチャレンジでは、基本的な Linux コマンドを使って、新しい環境に関する重要な情報を収集します。ユーザーアカウントを特定し、システム情報を確認し、ほかにログインしているユーザーを確認し、ユーザーとグループの情報を調べ、リアルタイムのパフォーマンスを監視して、調査結果を包括的なレポートにまとめます。
この初期評価は、Project Phoenix で今後行うすべての作業の基盤になります。今日の丁寧な調査が、明日のプロジェクトの成功につながります。
このコースを始める前に、Linux の基本知識を身につけておくことをおすすめします。Linux が初めての場合は、LabEx の Linux 学習パスから始めてください。このコースでは、実践的な一連のチャレンジを通して、Linux の基礎を確認・定着させ、さらに深く学びます。学習中に、理解できない概念、忘れてしまった概念、知らない概念が出てきたら、AI アシスタントの Labby に気軽に相談してください。この対話形式の学習は、実際の作業環境で経験する問題解決のプロセスを再現します。
重要なお知らせ:チャレンジ中に難しい箇所がある場合は、次の方法を利用できます。
- Labby に相談するか、解答を確認します。
- そのチャレンジを一時的にスキップし、Linux 学習パスの後続の Guided Labs に進みます。
初回ログインと環境の確認
新しいシステムで最初に行うことは、自分のユーザー情報とオペレーティングシステムの基本的な特徴を確認することです。これにより、自分が想定したユーザーであり、正しいマシンに接続していることを確認できます。
タスク
- 現在のユーザーのユーザー名を確認します。
- オペレーティングシステムのカーネル名を表示します。
要件
- すべてのコマンドをターミナルで実行します。
whoamiコマンドを使って現在のユーザーを確認します。unameコマンドを使ってカーネル名を表示します。
例
このステップを完了すると、次のような出力が表示されます。
## Command output showing current user
labex
## Command output showing kernel name
Linux
この結果から、Linux システム上で labex ユーザーとして操作していることが確認できます。これは作業環境を確立するために重要です。
システム情報と稼働時間の確認
自分のユーザー情報を確認したら、システム環境全体と、システムが稼働している時間を把握することが重要です。この情報は、システムの監視やメンテナンス計画に役立ちます。
タスク
- オペレーティングシステムの詳細、カーネルバージョン、ハードウェアアーキテクチャなど、システムの包括的な情報を表示します。
- システムの稼働時間と現在のシステム負荷を確認します。
要件
uname -aコマンドを使って、すべてのシステム情報を表示します。uptimeコマンドを使って、システムの稼働時間とロードアベレージを表示します。
例
必要なコマンドを実行すると、次のような出力が表示されます。
## Comprehensive system information
Linux labex-virtual-machine 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
## System uptime and load information
14:51:52 up 183 days, 2:55, 0 users, load average: 6.02, 1.80, 0.94
1 つ目の出力には、カーネルバージョン、ホスト名、アーキテクチャなどの詳細なシステム情報が表示されます。2 つ目の出力からは、システムが 183 日間稼働しており、異なる時間帯の現在のロードアベレージからシステムのパフォーマンスを確認できます。
ヒント
uname -aコマンドは、利用可能なすべてのシステム情報を 1 行で表示します。uptimeコマンドは、システムの稼働時間、ユーザー数、システムのロードアベレージを表示します。- ロードアベレージは、1 分、5 分、15 分の各期間における平均的なシステム負荷を示します。
ユーザーとグループの詳細情報の収集
ユーザーの権限を理解することは基本的な作業です。ユーザー ID(UID)、プライマリグループ ID(GID)、所属するその他のグループを確認する必要があります。これらによって、システム上でアクセスできるリソースや操作できる内容が決まります。
タスク
- 現在のユーザーアカウントに関する詳細なユーザー情報とグループ情報を表示します。
要件
idコマンドを使って、ユーザー ID とグループ ID を取得します。
例
必要なコマンドを実行すると、次のような出力が表示されます。
uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)
この出力には次の情報が示されます。
- **uid=5000(labex)**:ユーザー ID は 5000、ユーザー名は「labex」です。
- **gid=5000(labex)**:プライマリグループ ID は 5000、グループ名は「labex」です。
- **groups=...**:複数のグループに所属しています。たとえば、「sudo」(管理者権限)、「ssl-cert」(SSL 証明書へのアクセス)、「public」(共有リソース)などです。
これらの権限を理解することは、アクセスや変更が可能なシステムリソースを把握するうえで重要です。
ヒント
- 引数なしで
idコマンドを実行すると、現在のユーザーの情報が表示されます。 - 出力には UID、GID、補助グループが明確に表示されます。
リアルタイムでのシステムパフォーマンスの監視
システム調査では、現在のパフォーマンスを確認することが重要です。CPU 使用率やメモリ使用量を確認し、実行中のプロセスを調べます。この作業には、標準的なツールである top コマンドを使用します。
タスク
- インタラクティブなシステム監視ツールを起動し、アクティブなプロセスとリソース使用量を確認します。
- 数秒間出力を確認した後、ツールを終了します。
要件
topコマンドを使って監視インターフェースを起動します。topの実行中にqキーを押して終了し、コマンドプロンプトに戻ります。
例
システム監視ツールを起動すると、次のように動的に変化する画面が表示されます。
top - 10:45:00 up 1:15, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.1 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1987.2 total, 890.5 free, 540.1 used, 556.6 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1234.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 169404 12920 8584 S 0.0 0.6 0:01.50 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
...
この画面には、次の情報が表示されます。
- システム概要:現在時刻、稼働時間、ユーザー数、ロードアベレージ
- タスク概要:プロセスの総数と状態(実行中、スリープ中など)
- CPU 使用率:カテゴリ別の CPU 使用率
- メモリ使用量:メモリの合計、空き、使用中、利用可能な容量
- プロセス一覧:CPU 使用率順に並んだ実行中のプロセス。PID、ユーザー、リソース使用量を含みます。
画面は数秒ごとに自動更新されるため、システムをリアルタイムで監視できます。
ヒント
topは、実行中のシステムを動的かつリアルタイムに表示します。画面は自動的に更新されます。topプログラムを終了するには、通常qキーを押します。
システムステータスレポートの作成
最後に、調査結果を簡単なテキストファイルにまとめます。これは、特定の時点におけるシステムの状態を記録する一般的な方法です。出力リダイレクトを使って、複数のコマンドの出力を 1 つのファイルに保存します。
タスク
- 現在のディレクトリ(
~/project)にsystem_report.txtという名前のファイルを作成します。 - ファイルには、
whoami、uname -a(すべてのシステム情報)、uptimeコマンドの出力を含めます。
要件
- 最終的なレポートファイルの名前は
system_report.txtにします。 - 出力リダイレクト演算子(
>と>>)を使って、各コマンドの出力をファイルに書き込みます。 - ファイルは
~/projectディレクトリに作成します。
例
このステップを完了すると、system_report.txt ファイルには次のような出力が含まれます。
labex
Linux labex-virtual-machine 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
10:50:01 up 1:20, 1 user, load average: 0.00, 0.01, 0.05
このレポートファイルには、次の情報が含まれます。
- 1 行目:現在のユーザー情報(
whoamiコマンドの出力) - 2 行目:カーネルバージョン、ホスト名、アーキテクチャなどの完全なシステム情報(
uname -aコマンドの出力) - 3 行目:システムの稼働時間と現在のロードアベレージ(
uptimeコマンドの出力)
このファイルは、現在のシステム状態のスナップショットとして、文書化やトラブルシューティングに役立ちます。作成後に cat コマンドを使うと、ファイルの内容を確認できます。
ヒント
- 最初のコマンドの出力は
>演算子でリダイレクトします。これによりファイルが作成されます(すでに存在する場合は上書きされます)。 - 後続のコマンドの出力には
>>演算子を使います。既存の内容を削除せずにファイルへ追加できます。 uptimeコマンドは、システムが稼働している時間を表示します。
まとめ
すばらしい成果です。LabEx Corporation での初日を無事に終え、Project Phoenix の基盤を整えました。
このチャレンジでは、すべてのシステム管理者が習得すべき、次の基本コマンドを練習しました。
whoami:Project Phoenix サーバー上での自分のユーザー情報を確認します。uname:オペレーティングシステムの情報を確認し、互換性を確かめます。who:開発サーバーでほかに作業しているユーザーを確認します。id:適切なアクセス制御のために、自分のユーザーとグループへの所属状況を調べます。top:システムのプロセスとリソース使用量を監視し、最適なパフォーマンスを維持します。- 出力リダイレクト(
>と>>):調査結果を業務用のレポートに記録します。
これらのコマンドは、システム管理者のツールキットの基礎となります。今日、システムを丁寧に調査したことで、Project Phoenix の環境はこれから始まる開発作業に向けて整いました。明日は Digital Architect として、プロジェクトのファイル構成の整理を始めます。



