DAY 01: システムの現状把握

LinuxBeginner
オンラインで実践に進む

はじめに

おめでとうございます!あなたは急成長中のテックスタートアップ、LabEx 社のジュニアシステム管理者として採用されました。入社初日の今日、上司から会社で最も野心的なプロジェクトである「Project Phoenix」への配属を命じられました。これは、企業のデジタルワークフローを根底から変える革新的なアプリケーションです。

あなたの最初の任務は、Project Phoenix をホストする開発サーバーの「現状把握(The Lay of the Land)」を行うことです。これには、システムの素性、利用ユーザー、および現在の稼働状態を理解するための不可欠な調査が含まれます。

このチャレンジでは、基本的な Linux コマンドを使用して、新しい環境に関する重要な情報を収集します。自分のユーザーアカウントの特定、システム詳細の確認、他のログインユーザーの把握、ユーザーとグループ情報の検査、リアルタイムのパフォーマンス監視を行い、最終的にそれらの調査結果を包括的なレポートにまとめます。

この初期評価は、Project Phoenix における今後のすべての作業の土台となります。今日のあなたの徹底した仕事ぶりが、明日のプロジェクトの成功を確かなものにするでしょう。

このコースを始める前に、基本的な Linux の知識があることが推奨されます。Linux が初めての方は、まず LabEx の Linux 学習パス から始めることをお勧めします。このコースは、一連の実践的なチャレンジを通じて、Linux の基礎知識をテストし、定着させ、深めるように設計されています。学習の過程で、慣れない概念や忘れてしまったことがあれば、AI アシスタントの Labby に遠慮なく相談してください。この対話的なアプローチは、実際の現場で遭遇する問題解決プロセスをシミュレートしています。

重要な注意点: チャレンジ中に行き詰まった場合は、以下の方法を試してください:

  1. Labby と相談するか、ソリューション(解決策)を確認する。
  2. そのチャレンジを一時的にスキップし、Linux 学習パス の後続のガイド付き実験(Guided Labs)を進める。

初回ログインと環境確認

新しいシステムで最初に行うべきことは、自分自身のアイデンティティとオペレーティングシステムの基本特性を確認することです。これにより、自分が想定通りのユーザーであり、正しいマシンに接続していることを確信できます。

タスク

  • 現在のユーザーのユーザー名を確認する。
  • オペレーティングシステムのカーネル名を表示する。

要件

  • すべてのコマンドはターミナルで実行すること。
  • 現在のユーザーを特定するために whoami コマンドを使用すること。
  • カーネル名を表示するために uname コマンドを使用すること。

このステップを完了すると、以下のような出力が表示されるはずです。

## 現在のユーザーを表示するコマンド出力
labex

## カーネル名を表示するコマンド出力
Linux

これらの結果により、あなたが Linux システム上の labex ユーザーであることが確認され、作業環境を構築するための準備が整います。

✨ 解答を確認して練習

システム情報と稼働時間の確認

自分のアイデンティティを確認したら、次はシステム環境全体と、そのシステムがどのくらいの期間稼働しているかを把握することが重要です。この情報は、システムの監視やメンテナンス計画を立てる際に不可欠です。

タスク

  • オペレーティング心の詳細、カーネルバージョン、ハードウェアアーキテクチャを含む包括的なシステム情報を表示する。
  • システムの稼働時間(アップタイム)と現在のシステム負荷を確認する。

要件

  • すべてのシステム情報を表示するために uname -a コマンドを使用すること。
  • システムの稼働時間とロードアベレージを表示するために uptime コマンドを使用すること。

必要なコマンドを実行すると、以下のような出力が表示されるはずです。

## 包括的なシステム情報
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

## システムの稼働時間と負荷情報
14:51:52 up 183 days, 2:55, 0 users, load average: 6.02, 1.80, 0.94

最初の出力は、カーネルバージョン、ホスト名、アーキテクチャを含む詳細なシステム情報を示しています。2 番目の出力は、システムが 183 日間稼働しており、現在のロードアベレージ(負荷平均)によって異なる期間のシステムパフォーマンスが示されています。

ヒント

  • uname -a コマンドは、利用可能なすべてのシステム情報を 1 行で表示します。
  • uptime コマンドは、システムの稼働時間、ログインユーザー数、およびシステムのロードアベレージを表示します。
  • ロードアベレージは、過去 1 分、5 分、15 分間の平均システム負荷を表します。
✨ 解答を確認して練習

ユーザーとグループの詳細収集

ユーザーの権限を理解することは基本中の基本です。ユーザー ID (UID)、プライマリグループ ID (GID)、および所属しているその他のグループを知る必要があります。これらによって、システム上のアクセス権限が決定されるからです。

タスク

  • 現在のユーザーアカウントの詳細なユーザー情報およびグループ情報を表示する。

要件

  • ユーザーおよびグループの識別子を取得するために 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 は、稼働中のシステムの動的でリアルタイムなビューを提供します。自動的にリフレッシュされます。
  • q キーは、top プログラムを終了するための標準的な方法です。
✨ 解答を確認して練習

システムステータスレポートの作成

最後に、これまでの調査結果をシンプルなテキストファイルにまとめます。これは、特定の時点におけるシステムの状態を記録するための一般的な慣行です。出力リダイレクトを使用して、複数のコマンドの出力を 1 つのファイルに保存します。

タスク

  • 現在のディレクトリ(~/project)に system_report.txt という名前のファイルを作成する。
  • このファイルには、whoamiuname -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 社での初日を無事に終え、Project Phoenix のための基礎を築くことができました。

このチャレンジでは、すべてのシステム管理者が習得すべきいくつかの重要なコマンドを実践しました:

  • whoami: Project Phoenix サーバー上でのユーザーアイデンティティを確認する。
  • uname: オペレーティングシステム情報を確認し、互換性を確保する。
  • who: 開発サーバーで他に誰が作業しているかを確認する。
  • id: 適切なアクセス制御のために、ユーザーとグループの所属を検査する。
  • top: 最適なパフォーマンスを維持するために、システムプロセスとリソース使用状況を監視する。
  • 出力リダイレクト(> および >>): 調査結果をプロフェッショナルなレポートとして文書化する。

これらのコマンドは、あなたのシステム管理者としてのツールキットの基礎となります。今日の徹底した評価により、Project Phoenix の環境は、これから始まるエキサイティングな開発作業に向けた準備が整いました。明日は「デジタル・アーキテクト」として、プロジェクトのファイル構造の整理に取り掛かりましょう!