了解系统环境

LinuxBeginner
立即练习

简介

恭喜你!你刚刚加入 LabEx Corporation,成为一名初级系统管理员。这是一家发展迅速的科技初创公司。今天是你的第一天,主管安排你参与公司迄今最雄心勃勃的项目:「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

这些结果确认你以 labex 用户身份运行在 Linux 系统上,这是建立工作环境的重要信息。

检查系统信息和运行时间

确认自己的身份后,还需要了解完整的系统环境以及系统已经运行了多长时间。这些信息对于系统监控和维护计划非常重要。

任务

  • 显示包括操作系统详细信息、内核版本和硬件架构在内的完整系统信息。
  • 检查系统的运行时间以及当前系统负载。

要求

  • 使用 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

第一段输出显示详细的系统信息,包括内核版本、主机名和架构。第二段输出表示系统已经运行了 183 天,当前平均负载反映了系统在不同时间段内的性能情况。

提示

  • uname -a 命令会在一行中显示所有可用的系统信息。
  • 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 程序的标准方式。

生成系统状态报告

最后,你将把收集到的信息整理到一个简单的文本文件中。记录系统在特定时间点的状态,是系统管理中的常见做法。你将使用输出重定向,把多个命令的输出保存到同一个文件中。

任务

  • 在当前目录(~/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 接下来的开发工作做好了准备。明天,你将以「数字架构师」的身份开始组织项目的文件结构!

✨ 查看解决方案并练习✨ 查看解决方案并练习✨ 查看解决方案并练习✨ 查看解决方案并练习✨ 查看解决方案并练习