システムの全体像を把握する

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

はじめに

おめでとうございます。急成長中のテック系スタートアップ、LabEx Corporation の Junior System Administrator に採用されました。今日は初出勤日です。上司から、会社がこれまでで最も意欲的に進めているプロジェクト、「Project Phoenix」を担当するよう指示されました。これは、企業のデジタルワークフロー管理を変革する画期的なアプリケーションです。

最初の任務は、Project Phoenix をホストする開発サーバーの「全体像を把握する」ことです。システムの識別情報、現在の利用者、現在の稼働状態を理解するために、基本的な調査を行います。

このチャレンジでは、基本的な Linux コマンドを使って、新しい環境に関する重要な情報を収集します。ユーザーアカウントを特定し、システム情報を確認し、ほかにログインしているユーザーを確認し、ユーザーとグループの情報を調べ、リアルタイムのパフォーマンスを監視して、調査結果を包括的なレポートにまとめます。

この初期評価は、Project Phoenix で今後行うすべての作業の基盤になります。今日の丁寧な調査が、明日のプロジェクトの成功につながります。

このコースを始める前に、Linux の基本知識を身につけておくことをおすすめします。Linux が初めての場合は、LabEx の Linux 学習パスから始めてください。このコースでは、実践的な一連のチャレンジを通して、Linux の基礎を確認・定着させ、さらに深く学びます。学習中に、理解できない概念、忘れてしまった概念、知らない概念が出てきたら、AI アシスタントの Labby に気軽に相談してください。この対話形式の学習は、実際の作業環境で経験する問題解決のプロセスを再現します。

重要なお知らせ:チャレンジ中に難しい箇所がある場合は、次の方法を利用できます。

  1. Labby に相談するか、解答を確認します。
  2. そのチャレンジを一時的にスキップし、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 という名前のファイルを作成します。
  • ファイルには、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 Corporation での初日を無事に終え、Project Phoenix の基盤を整えました。

このチャレンジでは、すべてのシステム管理者が習得すべき、次の基本コマンドを練習しました。

  • whoami:Project Phoenix サーバー上での自分のユーザー情報を確認します。
  • uname:オペレーティングシステムの情報を確認し、互換性を確かめます。
  • who:開発サーバーでほかに作業しているユーザーを確認します。
  • id:適切なアクセス制御のために、自分のユーザーとグループへの所属状況を調べます。
  • top:システムのプロセスとリソース使用量を監視し、最適なパフォーマンスを維持します。
  • 出力リダイレクト(>>>):調査結果を業務用のレポートに記録します。

これらのコマンドは、システム管理者のツールキットの基礎となります。今日、システムを丁寧に調査したことで、Project Phoenix の環境はこれから始まる開発作業に向けて整いました。明日は Digital Architect として、プロジェクトのファイル構成の整理を始めます。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習