简介:这份资源是面向高校计算机及相关专业学生的操作系统课程实验报告,聚焦Linux用户接口与编程界面,帮助初学者从命令行操作过渡到C程序与Shell脚本的编写运行。内容覆盖字符界面常用命令(ls、uname、man、pwd、mkdir、rm等)、U盘挂载与卸载、vi/vim编辑器使用、gcc编译运行C程序,以及Shell脚本的三种执行方式,并附有关于root超级用户与sudo权限管理的实验总结,可作为实验课参考或期末复习材料。资源包共1个docx文档,约609KB,结构完整、条理清晰,便于直接对照实验步骤与命令示例进行练习。目前已有109人学习,适合刚接触Linux、需要动手实践并梳理命令用法与权限概念的学习者参考使用。
1. 第一次打开 Linux 黑屏幕,我该从哪里下手
很多人第一次接触 Linux,是在虚拟机里敲下回车后看到一片黑底白字,光标一闪一闪,心里立刻发毛:这玩意儿没有桌面、没有图标,连个“下一步”按钮都没有,是不是得背几百条命令才能用?其实完全不用。你可以把 Linux 的字符界面想象成一个只认“短句”的管家——你说“列出这个房间的东西”,它就回你一张清单;你说“把那个文件删掉”,它问都不问就动手。命令不是咒语,只是把“我想干什么”压缩成几个字母的快捷说法。
这份《操作系统》实验一的资源,做的就是带你认识这位管家:常用命令怎么用、在线帮助怎么查、C 程序怎么编译运行、shell 脚本怎么跑起来,以及普通用户和超级用户之间怎么安全切换。它适合刚学操作系统、刚装好 Linux、面对终端不敢敲字的新手。你不需要先懂内核原理,只要敢照着敲第一行,就能把“黑屏幕恐惧”变成“我能让它干活”。
2. 先搞懂三件事:命令、路径、权限
2.1 命令就是“动词 + 参数”,别把它当密码背
新手最容易犯的错,是把ls -a当成一串无意义的字符硬记。换个角度:ls是动词“列出来”,-a是修饰词“连隐藏的也要”。Linux 命令几乎都是这个结构——前面是动作,后面是选项或对象。你记住动词,选项现查都来得及。
拿实验里出现最多的ls举例,先在一个空目录里敲:
ls这条命令的意思是“列出当前目录下能看见的文件和文件夹”。敲完回车,终端会把名字一行行打出来。如果目录是空的,它就什么都不显示,直接回到提示符——这不是没执行,是执行完了没东西可列。
再加一个选项:
ls -a-a是 all 的意思,隐藏文件也会露出来。Linux 里以点开头的文件默认隐藏,比如.bashrc,平时看不见,加-a才现身。你第一次看到多出来一堆点文件,别慌,那是系统自己的配置,不是病毒。
再试一个组合:
ls -il这里-i显示 inode 号,-l用长格式列出详细信息。输出会变成一行一个文件,每行包含权限、链接数、所有者、所属组、大小、修改时间和文件名。实验报告里专门写了ls -il的输出格式,就是因为这一条命令把“文件是谁的、能不能改、多大、什么时候动的”全摊开了。新手看这一屏容易眼花,你只需要先盯三列:最左边的权限串、中间的所有者、最右边的大小。
提示:选项可以连写,
-il等于-i -l;顺序一般不影响结果,但个别命令有例外,入门阶段先按资料里的写法来。
2.2 路径是“你现在站在哪”,pwd 和 cd 配合用
第二个卡住新手的点是:我明明创建了文件,怎么找不到了?多半是“站错房间”。Linux 的目录是一棵树,你任何时候都站在某个目录里,这个位置叫当前工作目录。pwd就是问系统“我现在站在哪”。
pwd输出类似/home/student,这就是绝对路径,从根目录/一路写到你脚下。知道自己在哪之后,创建目录才不会建到莫名其妙的地方:
mkdir aa这条命令在当前目录下新建一个叫aa的子目录。敲完再用ls看一眼,aa就出现在列表里。想进去就cd aa,想回上一级就cd ..。实验里还让你用rmdir aa删除空目录——注意,rmdir只能删空目录,里面但凡有个文件它就会报错,这是它和rm的重要区别。
删除文件用rm:
rm 文件名实验报告里提到删除.swp文件,那是 vim 异常退出后留下的交换文件。rm删东西不進回收站,敲之前一定看清文件名。新手血泪经验:别在根目录下随手rm -r,那个-r是递归删除,删起来六亲不认。
2.3 权限分两种人:标准用户和超级用户
实验总结里花了大篇幅讲 root 和 sudo,这不是凑字数,是新手最该先建立的边界感。Linux 里有一个超级用户 root,拥有系统所有资源的访问权限,能装软件、加用户、改系统配置。日常使用不建议直接登录 root,因为权限太大,一条删错命令可能把系统搞崩。
安装系统时默认创建的那个账号叫标准用户,只能在自己的家目录和授权范围内操作,碰不到系统关键文件。需要做管理动作时,用sudo临时借权限:
sudo 命令第一次用sudo会要求输入你自己的密码,验证通过后一段时间内(实验资料写的是五分钟)再执行不用重复输。sudo的全称是 substitute user,本意是“以另一个用户身份执行”,默认那个用户就是 root。你可以把它理解成“临时工牌”:平时你是普通员工,需要进机房时刷一下工牌,干完活工牌自动失效。
注意:
sudo不是万能钥匙,它只对你被授权的那部分命令生效;输密码时屏幕不显示星号,那是正常现象,照常敲完回车即可。
3. 第一个能跑通的例子:从查帮助到跑出 Hello
3.1 不会就查 man,这是 Linux 自带的说明书
新手最怕“命令忘了怎么办”。Linux 内置了在线帮助系统man,相当于每个命令随身带一本手册。实验里让你查man uname和man memcpy,就是练这个习惯。
man uname回车后进入一个全屏阅读界面,上下箭头滚动,PgUp/PgDn 翻页,按q退出。手册一般分几个区:NAME 说这个命令干什么,SYNOPSIS 给用法模板,DESCRIPTION 详细解释,OPTIONS 列所有选项。你不需要从头读到尾,先看 NAME 和 SYNOPSIS 就够入门了。
man memcpy查的是 C 语言函数而不是 shell 命令,这说明man覆盖面很广:系统调用、库函数、配置文件格式都能查。养成“先 man 再搜索”的习惯,比背命令表管用得多。
3.2 用 vim 写第一个 C 程序
实验第三部分练 vi/vim,第四部分编译运行 C 程序,这两步连起来就是一个完整的最小闭环。vim 刚打开时不能直接打字,它有三种常用模式:普通模式、插入模式、命令行模式。新手记住三个动作就行:按i进入插入模式开始写,写完按Esc回普通模式,输入:wq保存退出。
先创建文件:
vim hello.c按i,输入下面这段代码:
#include <stdio.h> int main(void) { printf("Hello, Linux!\n"); // 打印一行问候 return 0; }按Esc,输入:wq回车。这段代码只做一件事:调用printf往终端打一行字。#include <stdio.h>是把标准输入输出库引进来,没有它printf不认识;main是程序入口;return 0告诉系统正常结束。
3.3 编译、运行,看到自己写的字出现在屏幕上
C 程序写完后不能直接跑,要先编译成机器能执行的文件。实验里用的是gcc:
gcc hello.c -o hellogcc是编译器,hello.c是源文件,-o hello表示输出文件名叫hello。不加-o的话默认生成a.out,实验报告里提到的./a.out就是这种默认情况。编译没报错就是成功了,接着运行:
./hello./的意思是“在当前目录下找这个可执行文件”。终端输出Hello, Linux!,第一个闭环就跑通了。如果编译报错,先看行号,多半是分号漏了、括号不配对,或者printf拼错。新手翻车最多的是中文标点混进代码,比如把英文分号敲成中文分号,编译器会直接指出来。
3.4 shell 脚本的三种跑法,先会一种就够
实验第五部分讲 shell 脚本的三种执行方式,新手先掌握最直观的那种:加执行权限再直接跑。
vim first.sh按i输入:
#!/bin/bash echo "这是我的第一个脚本"第一行#!/bin/bash叫 shebang,告诉系统用哪个解释器来跑这个文件。第二行就是打印一句话。保存退出后,先给它执行权限:
chmod +x first.sh然后运行:
./first.sh另外两种方式是bash first.sh和source first.sh。前者不用执行权限,直接让 bash 解释;后者在当前 shell 环境里执行,会影响当前环境变量。入门阶段先用./这种,等遇到“为什么脚本里的 cd 不影响我的终端”再回头理解source的区别。
4. 避坑排查:新手最容易翻车的五个地方
4.1 命令敲了没反应,以为系统卡死
现象:输入ls回车,光标换行后什么都没输出。原因:当前目录是空的,ls没东西可列,正常返回。解决:先pwd确认位置,再ls -a看隐藏文件,或者cd到有内容的目录。别急着重启,Linux 没你想的那么脆弱。
4.2 删除文件提示权限不够
现象:rm一个文件,终端回Permission denied。原因:这个文件不属于你当前用户,或者所在目录你没有写权限。解决:先ls -l看所有者是谁,确认确实需要删再用sudo rm。不要一遇到权限问题就无脑加sudo,先搞清楚这个文件该不该动。
4.3 vim 里打不了字,按什么都没用
现象:打开 vim 后敲键盘,屏幕底部出现奇怪字符或者响铃。原因:你处在普通模式,普通模式下的按键是命令不是输入。解决:按i进入插入模式,左下角出现-- INSERT --再打字;写完按Esc回普通模式,再:wq保存。如果已经乱按了一通,按Esc多按几次,再输:q!不保存强退,重新来过。
4.4 编译报错找不到头文件或命令
现象:gcc hello.c报command not found或者提示缺stdio.h。原因:系统没装编译器,或者你敲错了命令名。解决:先which gcc看有没有这个命令;没有的话按你所用系统的包管理方式安装编译工具。入门阶段别去改系统库路径,先把工具装齐。
4.5 挂载 U 盘后不知道什么时候该卸载
现象:U 盘插上后找不到盘符,或者用完直接拔导致文件损坏。原因:Linux 不会自动把 U 盘挂到桌面,需要手动mount;用完不umount就拔,缓存没写回。解决:按实验里的流程,先确认设备名(如/dev/sdb1),mount到/mnt,操作完执行umount /mnt再拔。设备名每次插拔可能变,别死记,用lsblk看一眼再挂。
5. 下一步学什么:把命令串成日常习惯
入门之后最怕的是“实验做完就忘”。我的建议是别急着啃厚书,先把每天要用的动作换成 Linux 方式,让命令变成肌肉记忆。具体路径可以按这个顺序走:
| 阶段 | 练什么 | 达到什么程度 |
|---|---|---|
| 第一周 | ls、cd、pwd、mkdir、rm、man | 不查资料能在目录间自由移动、建删文件 |
| 第二周 | vim 的i、Esc、:wq、:q!,gcc编译 | 能独立写完、编译、运行一个 C 文件 |
| 第三周 | chmod、sudo、who、date、uname -a | 看懂权限串,知道什么时候该借权限 |
| 第四周 | 写一个三行的 shell 脚本并跑通 | 理解 shebang 和三种执行方式的差别 |
再往后可以碰管道和重定向,比如ls -l | grep txt把长列表里含 txt 的行筛出来。这一步不急,先把上面四周走稳。我第一次学的时候,最大的教训是总想“先看懂原理再动手”,结果对着终端发呆一晚上。后来改成“先照着敲,跑通了再问为什么”,反而越敲越明白。从那以后我每次进一个新环境,都强制自己先跑一遍pwd、ls -a、man三件套,确认脚下站对了再干活。希望这份实验资源也能帮你把第一脚迈出去,别怕敲错,Linux 给得起后悔药。
本文还有配套的精品资源,点击获取