简介:这份资源是面向高校操作系统课程学习者的实验一报告文档,聚焦Linux用户接口与编程界面的入门实践,适合刚接触Linux、需要完成课程实验或补齐命令行基础的学生使用。压缩包内共1个docx文件,约609KB,内容按实验模块组织,涵盖字符界面常用命令(ls、uname、man、pwd、mkdir、rm等)的用法与参数说明、U盘挂载与卸载流程、vi/vim编辑器基本操作、C程序的编译运行方法,以及Shell脚本的三种执行方式,并附有超级用户与sudo权限管理的实验总结。文档以命令示例加结果说明的形式呈现,便于对照操作、整理实验报告和复习关键知识点。目前已有109人学习下载,可作为Linux入门实验的参考材料。
1. 从一张“命令地图”看 Linux 用户接口:实验一到底在考什么
很多人第一次做操作系统实验一,会把它当成一堆命令的拼盘:ls、uname、man、pwd、mkdir、rm、mount、vim、gcc、bash,挨个敲一遍,报告一交就完事。但梳理下来会发现,这个实验真正想让你建立的是一张“用户接口地图”:Linux 把系统能力暴露给用户,靠的是三层界面——字符界面命令、在线帮助系统、编程接口(编辑器 + 编译器 + 脚本解释器)。命令层解决“我怎么看、怎么改、怎么管”,帮助层解决“我忘了怎么办”,编程层解决“我怎么让机器替我批量做”。这三层叠起来,才是“用户接口和编程界面”这个标题的完整含义。复习时如果只背命令参数,考场上换个问法就翻车;先把地图立住,再往里填细节,才是这份笔记的写法。
2. 字符界面命令层:文件、系统与用户三类命令的复习重点
字符界面是 Linux 用户接口的第一层,也是实验一里命令最密集的部分。按“操作对象”把它们分成三类,比按字母顺序背要稳得多:文件类(ls、pwd、mkdir、rm、rmdir)、系统信息类(uname、date)、用户与登录类(who、su/sudo)。分类之后你会发现,每个命令的参数设计都有内在逻辑,不是随机堆的。
2.1 文件类命令:ls 的参数为什么值得单独记
ls是实验里参数给得最全的命令,也是考试最容易出选择题的地方。它的英文原意是 list,作用是显示目录文件。参数不是越多越好,而是各自解决一个维度的问题:显示范围(-a包含隐藏文件)、排序方式(-c按修改时间、-x按行显示排序项)、元数据(-i显示 inode 号)。把这些参数按“范围 / 顺序 / 元数据”三个维度归类,记忆负担立刻减半。
ls -il是实验里特别点出的组合,它的输出字段顺序值得逐位拆开:
| 字段位置 | 含义 | 说明 |
|---|---|---|
| 1 | inode 号 | -i带出来的,文件在文件系统中的唯一编号 |
| 2 | 类型与权限 | 第一位是类型(-普通文件、d目录),后九位是拥有者/同组/其他人三组权限 |
| 3 | 链接数 | 硬链接计数 |
| 4 | 所有者 | 文件属主 |
| 5 | 所属组 | 文件所属用户组 |
| 6 | 大小 | 字节数 |
| 7 | 修改时间 | 最近一次内容修改时间 |
| 8 | 文件名 | 最后一项 |
这张表是实验报告里最容易被要求“解释输出”的地方。很多人能敲出命令,却说不清第二列那串rwx是怎么分组的——记住“三组、每组三位、依次是读/写/执行”,比死记硬背强。
pwd显示当前路径的绝对路径,mkdir在当前目录下创建子目录(实验里建的是aa),rm删除文件(实验里删的是.swp交换文件),rmdir删除空子目录。这里有个容易混的点:rm和rmdir的分工。rmdir只能删空目录,目录里但凡有东西就报错;要连内容一起删,得用rm -r。实验里先rm删文件、再rmdir删目录,顺序不是随便排的,是在演示“先清内容、再删容器”的正确姿势。
2.2 系统信息与用户命令:uname、date、who 各自看什么
uname显示系统信息,参数按“信息粒度”分层:-s内核名称、-n主机名称、-r内核发行版本、-i硬件平台、-a全部相关信息。复习时建议把-a的输出和单参数输出对照着看一遍,就能明白-a不过是把-s、-n、-r等拼在一起。date显示当前时间和日期,who查看目前登录用户的注册信息,输出四列:登录账号、使用的终端机、登录时间、正在使用哪个显示器。who的四列结构经常被忽略,但它恰好是“多用户系统”这个概念最直观的证据——同一台机器上,不同终端、不同时间、不同用户同时在线。
2.3 用户身份切换:root、标准用户与 sudo 的三层关系
实验总结里花了大篇幅讲用户身份,这是命令层里最容易被低估的模块。梳理成三层关系就清楚了:
第一层是超级用户 root,拥有操作系统资源的所有访问权限,用于系统维修和管理,比如添加或删除用户或组、安装软件。第二层是标准用户,安装系统时默认创建的账号,只能访问自己权限下的内容,只能在自己的家目录里操作,碰不到系统重要文件——这恰恰是安全设计,不是限制。第三层是sudo,su是 substitute user 的简称,表示以另一个用户的身份执行命令,预设身份为 root。标准用户偶尔要做系统维护(建用户、建组),又不想直接登录 root,就用sudo临时提权。
sudo有两个必须记住的行为细节:第一次使用时系统要求输入密码才能执行;输入成功后五分钟内继续操作不再问密码,超过五分钟再用得重新输入。这个“五分钟有效期”是实验总结里明确写的,考试和报告里都爱考。日常使用不建议直接登录 root,防止误删重要文件导致系统崩溃——这条不是口号,是血泪经验换来的默认策略。
3. 在线帮助与设备挂载:man 的用法和 U 盘挂载的完整链路
命令层之上是帮助层,帮助层之外还有一类“系统级操作”——设备挂载。这两块在实验里篇幅不大,但都是“会查、会做”的硬技能,复习时不能跳。
3.1 man:Linux 的在线帮助系统怎么用才不迷路
man是 Linux 的在线帮助命令,实验里给了两个典型用法:man uname查命令信息,man memcpy查函数信息。同一个man既能查命令又能查库函数,是因为手册页本身分节,命令和函数落在不同节里。使用时的操作键要记牢:在弹出的界面中,按上箭头、下箭头键上下移动,或按 PgUp、PgDn 上下翻页,按q退出。很多人第一次进man页面不知道怎么退,卡在那里——q就是那个“后悔药”。
man的价值不在于“查一次”,而在于建立“忘了就查”的习惯。命令参数记不全、函数原型记不准,第一反应应该是man,而不是搜索引擎。实验把man uname和man memcpy并列,其实是在告诉你:命令和函数在 Linux 里是同一套帮助体系下的两类对象。
3.2 U 盘挂载:从 /dev/sdb 到 /mnt 的完整链路
挂载是实验二的内容,链路不长但每一步都有讲究。实验场景是:U 盘被识别为/dev/sdb,一个分区sdb1,文件系统 FAT32,磁盘标签类型 dos,磁盘标识符0xa118efa2。用mount命令把 U 盘挂载到/mnt目录,用完执行umount /mnt卸载。
这条链路的关键认知是“设备文件”和“挂载点”的分离:/dev/sdb1是设备本身,/mnt是访问入口,mount做的事就是把设备接到入口上。卸载时umount后面跟的是挂载点/mnt,不是设备名——这是最容易写错的地方。另外,FAT32 文件系统、dos 标签类型这些信息说明 Linux 能识别多种文件系统,挂载的本质是让内核认识某种文件系统格式并把它接入目录树。
提示:卸载前确保没有程序正在访问挂载点内的文件,否则
umount会报设备忙。这是实际使用中最常见的失败原因。
4. 编程界面层:vim、gcc 与 shell 脚本的三件套
实验的编程界面部分由三块组成:vi/vim 编辑器、C 程序的编译运行、shell 脚本的三种执行方法。这三块串起来是一条完整的“写—编—跑”流水线,复习时按流水线顺序过一遍,比孤立记命令有效。
4.1 vi/vim:三种模式是绕不开的第一道坎
vi/vim 是 Linux 下的文本编辑器,用于创建、修改和查看文本文件,功能强大且高度可配置。实验只要求“会用”,但复习时必须把模式概念立住:命令模式、插入模式、末行模式。打开文件默认在命令模式,按i进插入模式才能打字,按Esc回命令模式,在命令模式输入:进末行模式执行保存退出等操作。模式切换是新手翻车最集中的地方——打不了字是因为没进插入模式,退不出去是因为还在插入模式。
实验里rm删除.swp文件这个细节,其实和 vim 强相关:.swp是 vim 的交换文件,编辑异常中断时会残留,下次打开同一文件会提示恢复。知道这个来源,就不会把.swp当成莫名其妙的垃圾文件。
4.2 C 程序编译运行:gcc 到可执行文件的最小闭环
在 Linux 上编辑、编译、调试和运行 C 语言程序,是实验的核心目标之一。最小闭环是:用 vim 写好.c源文件,用gcc编译,默认生成a.out,用./a.out运行。实验摘要里明确写了“使用gcc或g++进行 C/C++ 程序的编译,通过./a.out(或实际生成的可执行文件名)来运行程序”。
# 用 gcc 编译单个 C 源文件,未指定 -o 时默认输出 a.out gcc hello.c # 运行当前目录下的可执行文件,./ 表示当前目录 ./a.out # 指定输出文件名,避免覆盖默认的 a.out gcc hello.c -o hello ./hello这段命令里两个细节值得说清:一是./不能省,Linux 默认不在当前目录找可执行文件,不加./会提示找不到命令;二是-o参数指定输出文件名,工程里多个程序并存时靠它区分。编译报错时先看行号和错误类型,语法错误、头文件缺失、链接错误是三类最常见的问题,逐类排查比盲目改代码快。
4.3 shell 脚本:三种执行方式的差别在哪
shell 脚本是包含 Linux 命令和控制结构的文本文件,由 Bash 或其他 shell 解释器执行。实验要求了解如何编辑、运行 shell 程序,并给出三种执行方法:
| 执行方式 | 写法 | 关键差别 |
|---|---|---|
| 赋予执行权限后直接运行 | chmod +x script.sh然后./script.sh | 需要执行权限,脚本首行 shebang 决定解释器 |
| 指定解释器运行 | bash script.sh | 不需要执行权限,显式指定用哪个 shell |
| 当前 shell 内执行 | source script.sh | 在当前 shell 进程中执行,变量和环境影响当前会话 |
三种方式的本质区别在“进程”和“权限”:前两种会启动新的子进程执行脚本,source则在当前 shell 里执行,所以脚本里设置的变量能留在当前会话。这个差别在复习时最容易被一句“都能跑”带过,但恰恰是考点。
5. 易错点清单:这五个地方最容易在实验和考试里翻车
这一章专门收“看起来会、一动手就错”的点。每条按“易漏点 → 为什么漏 → 怎么补”写,都是梳理这份实验内容时反复出现的坑。
易漏点一:ls -il输出字段顺序记混。为什么漏:平时只用ls看文件名,一旦要求解释 inode 号、权限、链接数的排列,就容易把“所有者”和“所属组”位置搞反。怎么补:把第 2 章那张八字段表默写一遍,重点记“inode 在最前、文件名在最后、中间依次是权限、链接数、所有者、所属组、大小、时间”。
易漏点二:rmdir和rm -r混用。为什么漏:两个命令名字像,实验里又恰好是先rm删文件再rmdir删目录,顺序掩盖了差别。怎么补:记住rmdir只删空目录,非空目录必须rm -r;反过来,rm -r能删目录也能删文件,但风险更高,删之前先ls确认。
易漏点三:umount后面跟设备名而不是挂载点。为什么漏:mount时设备名和挂载点都出现,卸载时凭印象写/dev/sdb1。怎么补:记死“挂载看设备,卸载看入口”,umount /mnt才是对的;报设备忙时先查哪个进程占着挂载点。
易漏点四:sudo的五分钟有效期理解成“登录后五分钟”。为什么漏:实验总结写的是“输入密码成功后,五分钟内进行相关操作不再问密码”,容易被简化成“五分钟内随便用”。怎么补:有效期从上次输入密码成功起算,超时后下一次sudo重新要密码;它不是会话级免密,是时间窗口。
易漏点五:shell 脚本三种执行方式当成完全等价。为什么漏:三种都能跑出结果,差别藏在进程和环境里。怎么补:记住“直接运行和bash跑在子进程,source跑在当前 shell”,涉及环境变量是否保留时,这个差别就是答案。
注意:以上五点里,前三点偏操作、后两点偏概念。操作类靠动手复现一遍,概念类靠对照实验总结原文逐句核对,别凭印象。
6. 复习落地:一张自查表加一套查漏补缺的走法
复习到这一步,最有效的动作不是再读一遍笔记,而是拿一张自查表逐项过,把“以为会”和“真的会”分开。下面这张表按实验的五个模块列,每项后面标出“能敲出来 / 能解释输出 / 能说出为什么”三个层次,自己打分,低于第二层的就回去补对应章节。
| 模块 | 自查项 | 达标线 |
|---|---|---|
| 文件命令 | ls -a/-c/-x/-i各参数作用,ls -il八字段解释 | 能解释输出 |
| 系统与用户 | uname五个参数、who四列、date | 能解释输出 |
| 身份切换 | root / 标准用户 /sudo三层关系,五分钟有效期 | 能说出为什么 |
| 帮助与挂载 | man翻页退出键,mount/umount参数对象 | 能敲出来 |
| 编程界面 | vim 三模式切换,gcc编译运行,shell 三种执行方式差别 | 能说出为什么 |
查漏补缺的走法建议按“先跑一遍、再讲一遍、最后写一遍”三步:第一步把实验里的命令在终端里重新敲一遍,重点看输出而不是看命令;第二步合上笔记,用自己的话把每个模块讲给空气听,卡壳的地方就是漏洞;第三步把卡壳点写成三行以内的短笔记,只记“是什么、为什么、怎么错”,不抄长段。这套走法比反复通读省时间,因为通读容易产生“我都见过”的错觉,而讲一遍和写一遍会立刻暴露真实掌握度。
还有一个小技巧:把man当成复习工具而不是查错工具。复习uname时直接man uname看官方描述,比背二手笔记准;复习mount时看手册里的参数列表,能顺带发现实验没覆盖但考试可能问的选项。手册页是最接近“标准答案”的材料,实验报告只是它的一个子集。
从那以后我每次复习这类实验内容,都强制走一遍“跑一遍、讲一遍、写一遍”,尤其是sudo有效期和 shell 三种执行方式这种概念点,光看笔记真的会高估自己。希望这份梳理能帮到你,把实验一从“命令清单”变成一张能随时调用的地图。
本文还有配套的精品资源,点击获取