Linux第一次作业,我建议你这么交
第一次接触Linux,大概率是因为一门操作系统课、一次实训安排,或者干脆是工作之后被要求“把这个服务部署到Linux上”。不管哪种情况,你搜出来的东西大概率是“linux常用命令大全”“linux系统安装”“linux新建用户”这些关键词。没错,这些恰好就是绝大多数第一次作业的考点。这篇文章我就用带过不少新人的经验,把“Linux第一次作业”这件事从头到尾捋一遍:环境怎么搭、命令怎么练、作业里最常见的坑怎么躲、考完之后怎么继续往深处走。不管你手上拿到的作业题目长什么样,看完这篇你至少心里有底。
1. 作业长什么样?先拆解题目背后的考点
1.1 第一次作业的常见形态
先聊一个很现实的问题:Linux第一次作业到底会考什么?我观察下来,基本跑不出下面这几类。
第一种是最常见的“命令操作题”,比如“用命令行完成以下操作:创建目录、新建文件、复制文件、删除文件、查看文件内容”。这种作业其实考的不是你会多少命令,而是你懂不懂Linux的目录结构和命令的基本语法。
第二种是“系统管理题”,比如“新建一个用户并设置密码,将用户加入某个组,测试切换用户登录”。这种题已经稍微进阶了,涉及用户管理、权限模型,哪怕只是照抄命令,也建议你把每一步背后的含义搞清楚。
第三种是“理论+实践混合题”,比如“简述Linux文件权限的含义,并用命令验证”。这种题表面上考理论,实际考查的是你能不能把chmod的744、755、754这类数字跟rwx权限对应起来。
还有一种是“环境搭建题”,比如“在虚拟机上安装Linux系统,配置网络,使用SSH连接”。这种题通常出现在第一次作业之前,或者作为作业的前置条件。很多人的第一次作业翻车,不是命令敲错了,是虚拟机压根没装好。
1.2 作业评分到底看什么
你可能以为是看答案对不对。实际上,我见过的大部分批改标准,看的是操作过程的完整性和规范性——文件建得对不对、路径有没有搞错、权限有没有设置、有没有留下可以复查的痕迹。
举个例子:题目让你“在/home下建一个以你姓名命名的目录”,有些人直接就在根目录下建了一堆散落的文件夹,有些人把目录建到了错误的层级,甚至有人用root身份把目录建在了/usr下面。这些都属于“操作正确但过程不规范”。作业题设置成这种形式,本质上就是逼你去理解路径的含义,而不是仅仅会敲命令。
1.3 第一次作业的目标不是“完成”而是“建立模型”
这一点我必须强调。你这次作业真正要建立的,是一个“什么东西放在哪里”的模型。
Linux和Windows最大的区别,在于Windows你用鼠标点点点就能感知到文件在哪,而Linux如果你不理解目录结构,你连自己在哪都不知道。第一次作业的价值就在这里:通过反复的路径切换、文件创建、删除、复制,让你渐渐形成一种直觉——/home是用户的家目录,/etc是配置文件的聚集地,/tmp是临时文件区,/var是经常变化的日志和缓存。
有了这层直觉,后面学权限、学服务部署、学网络配置都会快很多。没有这层直觉,你每次敲命令都是“照着抄”,换个环境就不会了。所以别把第一次作业当成任务,把它当成建大楼的地基。
2. 动手之前先把环境准备好,这一步最容易被低估
2.1 虚拟机方案怎么选
做第一次作业,我不建议你直接拿物理机装双系统,也不建议因为好奇就直接用云服务器——虽然云服务器确实能玩的东西更多,但计费、带宽、安全配置这些都是绕不开的额外学习成本。最稳妥、也最符合学生学习场景的,是虚拟机方案。
常用的虚拟机软件有两款:VMware Workstation和VirtualBox。VMware功能全、对新手友好,但商用收费(个人学习可以申请免费版);VirtualBox完全免费开源,功能也足够做这些基础实验。
如果你用的是Windows 10/11,其实还有一个更轻量的选择:WSL(Windows Subsystem for Linux)。作业只涉及命令操作和用户管理的话,WSL完全够用,开箱即快。但它有一个明显短板——没有图形界面,而且和真实Linux环境的目录组织、systemd服务机制有差异。所以如果作业里有“配置服务并开机自启”这类题目,还是老老实实用虚拟机吧。
提示:安装虚拟机时如果出现蓝屏,大概率是BIOS里的虚拟化技术(Intel VT-x / AMD-V)没开启,进BIOS打开即可,不用重装系统。
2.2 发行版选哪个:Ubuntu还是CentOS
第一次作业,发行版怎么选?这里我直接给结论:如果没人指定,就选Ubuntu LTS版本。原因很实在——资料最多、遇到的问题别人都踩过、软件安装最省心。
而CentOS或Rocky Linux这类红帽系发行版,常见于企业服务器环境。有些学校的作业会明确要求基于CentOS完成,那就按作业要求来。两者的核心命令基本一样,差异主要集中在包管理器:Ubuntu用apt,CentOS用yum/dnf。第一次作业一般不会涉及包管理器的复杂操作,所以你不用太纠结选哪个,关键是尽快进入练习状态。
2.3 安装完成后的四个标配动作
系统装好之后,不要急着开始敲命令,先把下面这几件事做了,后面会省很多事。
第一,配好root密码或确认sudo可用。Ubuntu默认安装时创建的账号在sudo组里,可以直接用sudo提权。第二,换软件源。默认源在国外,下载软件会很慢,换成国内镜像源(阿里云、清华源等),整个过程网上搜索“Ubuntu 换源”就有非常详细的步骤。第三,安装增强工具(VMware Tools或VirtualBox Guest Additions)。不装的话,虚拟机屏幕分辨率很别扭,复制粘贴也会受限。第四,给系统做一次快照。安装完、配置好之后立刻做一个快照,之后作业里把系统玩坏了,一键还原,这个习惯能救你无数次。
2.4 用SSH连进虚拟机,作业体验会好十倍
有一件事强烈建议你早点做:在Windows上用SSH工具连接虚拟机。
具体方法很简单。先在虚拟机里用命令ip addr查看IP地址,然后在Windows上用终端直接ssh 用户名@IP地址登录。Windows 10以上系统自带OpenSSH客户端,不用额外装软件。如果你想用更舒服的界面,可以用MobaXterm或FinalShell,支持文件拖拽上传下载,对新手非常友好。
这样做的好处在于:你能在物理机上复制命令、粘贴输出,比在虚拟机终端里一个个字符地敲要方便得多。而且很多人的第一次作业要求“提交命令截图”,用SSH工具连接时,命令记录、屏幕输出都整整齐齐,截图也好看。
3. 命令这一关怎么过:从常用命令到必考操作
3.1 目录与文件操作是绝对核心
如果时间有限,只能练一部分内容,优先练目录和文件操作。这一块几乎占了第一次作业的半壁江山。
先记住一个原则:Linux里一切皆文件,目录也是文件。所以文件操作命令基本就是你的下半身——走到哪都要用。
必会的命令我列个清单:
pwd:显示当前所在目录,迷路时的指南针ls:列出目录内容,常用组合ls -l看详细信息、ls -a看隐藏文件cd:切换目录,cd ..回到上级,cd ~回用户家目录,cd -回上次所在目录mkdir:创建目录,mkdir -p可以一次性创建多级目录touch:创建空文件,或者更新已有文件的时间戳cp:复制文件或目录,复制目录要加-rmv:移动文件或重命名,这个命令同时承担了“剪切”和“改名”两种角色rm:删除文件或目录,删除目录要加-r,强制删除加-fcat:查看文件全部内容,head看开头,tail看结尾less:分页查看文件内容,适合内容比较长的文件find:按名字或类型查找文件grep:按内容过滤文本,常和管道符配合使用
这些命令不用背,多敲几遍自然就记住了。我见过很多同学把命令打印贴在显示器旁边,边看边敲,两三天就形成肌肉记忆了。
3.2 重点讲讲“删除文件夹”这个高频题
从热搜词里能看到“linux删除文件夹命令”是搜索频率极高的关键词,说明几乎每个新手都在这一题上困惑过。原因在于Linux里删除命令有两个:rmdir和rm -r。
rmdir只能删空目录,目录里有文件就会报错。所以实际工作中,99%的场景用的是rm -r或者rm -rf。
我第一次建议你形成这样一个条件反射:删除目录,直接用rm -r 目录名。如果系统提示权限不够,再在前面加sudo。至于-f参数,表示强制删除,不询问确认。新手阶段,我不建议你养成“凡是删除就加 -f”的习惯——什么都不问就直接删,一旦路径写错,后悔都来不及。
注意:
rm -rf /是删除根目录的毁灭性命令,绝对不要在任何环境里执行。如果你在某篇帖子里看到有人建议执行这个命令,直接关掉页面,那不是在教你,是在害你。
3.3 实用向配置:让Shell顺手起来
第一次作业虽然不至于考Shell配置,但把终端调顺手了,效率翻倍。
建议你至少做两件小事。第一,配置终端颜色,确保ls的结果里目录、文件、软链接用不同颜色区分,这在Ubuntu默认就是开启的。第二,学会用Tab键自动补齐,命令、文件名、路径都可以补,按两次Tab还能列出全部候选项。
另外,你可以试试修改一下命令行提示符,把当前目录显示出来。默认的Ubuntu提示符已经带了路径信息,但如果你的系统提示符长得很简陋,可以通过设置环境变量PS1来调整。不过这是锦上添花的事,不折腾也完全不影响完成作业。
3.4 别忽略“查看命令帮助”这个隐藏考点
很多作业里会出现“查看某个命令的帮助文档”这种送分题,但恰恰是这种送分题,能看出一个人是不是真的在学Linux,还是在背命令。
man命令是Linux自带的手册,比如man ls会显示ls命令的完整说明。很多同学嫌man的输出太长,直接就关了。我的建议是:完成作业之余,挑一个你用的最多的命令,完整读一遍它的man手册,不求全看懂,只求建立“原来命令背后有这么多细节”的认知。
另一个技巧是命令 --help,它比man更简洁,适合快速查找常用参数。实操中我一般先用--help扫一眼参数,再针对不懂的选项查man手册。
4. 新建用户这道题,值得你多花半小时搞懂原理
4.1 基础命令操作,但容易踩坑
“新建用户”几乎可以说是Linux第一次作业里的必考题。最基本的流程是三步:sudo useradd 用户名创建用户,sudo passwd 用户名设置密码,su - 用户名切换过去验证。
但很多人在操作时会卡壳。最典型的问题有三个。
第一个问题,执行useradd时提示权限不够。这不是命令错了,是你当前用户没有管理员权限。要在命令前面加sudo,或者先用su -切换到root用户再执行。第二个问题,新建的用户登录之后发现命令行提示符特别简陋,甚至只有一个$,这是因为新用户默认的Shell配置文件还没生成。执行sudo cp /etc/skel/.bashrc ~用户名/把模板文件复制过去就能解决。第三个问题,useradd和adduser的关系搞不清楚。在Ubuntu上,adduser是辅助脚本,它会交互式地帮你把主目录、Shell、密码全部配好,适合新手;useradd是底层命令,参数更精细化。
4.2 useradd 和 adduser,到底用哪个
我的建议是:做作业时用adduser,但要把useradd的用法也摸清楚。因为作业要让你“新建用户并设置密码”,用adduser一条龙完成,省事;但面试题和后续工作里,你更多会遇到的是useradd,它的参数设计更贴近底层概念。
useradd常用的几个参数说一下:
-m:创建用户主目录-s:指定登录Shell-G:指定附加组-u:指定UID
比如sudo useradd -m -s /bin/bash -G sudo zhangsan,意思是创建用户zhangsan,主目录放在/home/zhangsan,Shell用bash,并加入sudo组。如果你不加-m,系统不会自动创建/home/zhangsan,后面登录时就会出现奇奇怪怪的问题。
4.3 权限模型:看懂drwxr-xr-x才算没白做
新建用户这个题目,表面上考的是命令,实际想检验你有没有理解Linux的权限模型。
先用ls -l查看一个文件的详细信息,你会看到类似-rw-r--r--的输出。第一个字符表示文件类型(-是普通文件,d是目录,l是软链接),后面九个字符分成三组:所有者权限、属组权限、其他人权限。每组三个字符,顺序是r(读)、w(写)、x(执行)。
数字表示法就是把rwx换算成数字:r=4,w=2,x=1。所以-rw-r--r--就是644,-rwxr-xr-x就是755,-rwx------就是700。
作业里如果让你“将某文件的权限设置为所有者和组成员可读写执行,其他人只读”,你需要会写出对应的chmod命令。我建议你这样记:先写数字,再翻译成rwx,最后再用ls -l验证。这个验证过程非常重要,它把抽象的数字和具体的权限显示对应起来。
4.4 用“双用户互踩”的方式验证权限理解
这里分享一个很有用的练习方法:创建两个普通用户A和B,然后尝试让A访问B家目录下的文件,观察会发生什么。
你会发现,默认情况下A是打不开B的文件的。原因就在于B家目录的权限是drwxr-xr-x,其他用户只有r和x权限,而B的文件如果设置成了644,A就只能读,不能改。如果你把B家目录的权限改成drwx------,A连进入目录的资格都没有。
这个小小的实验,比背十遍chmod参数都管用。因为你在实验中建立起了“权限是真实生效的”这种认知。第一次作业真正拉开差距的地方,就在这里——不是谁命令敲得熟,而是谁理解了命令背后的规则。
5. 作业提交前的检查清单和现场翻车实录
5.1 提交前一定要过的三个检查
每次学生的第一次作业提交上来,我一眼就能看出哪些是认真做过的,哪些是从网上复制粘贴的。如果你不想被老师一眼看穿,提交前一定过一遍这三关。
第一关:路径是否合理。你创建的文件目录,是不是都放在家目录或系统约定俗成的目录下,而不是随便丢在根目录/下。第二关:命令是否有解释。很多作业要求写操作记录,你不仅要写命令,还要写这条命令在干什么。第三关:结果是否有验证。比如创建用户之后,你有没有用id 用户名验证用户真的建好了;修改权限之后,有没有用ls -l展示权限变化。
我自己批作业的时候,最烦看到的就是“命令一大堆、解释零个、结果全无”。记住:作业不是写给机器看的,是写给老师看的。你的每一步操作要让人能看懂。
5.2 高频翻车点:PATH找不到命令
有一个很经典的场景,作业让你“用vim编辑一个文件”,然后你输入vim 文件名,系统提示command not found。
这不是你命令敲错了,是vim压根没安装。Ubuntu默认只装了一个叫vi的最小化编辑器,功能简陋。正确的做法是sudo apt install vim把它装上。这个翻车点几乎每个新手都会遇到,遇到了别慌,说明你已经走到软件安装这一步了。
另外一个相关问题是:你明明安装了某个软件,但命令依然找不到。这时候用which 软件名查一下安装位置,再用echo $PATH看环境变量里有没有包含那个目录。这一步做完,你对“环境变量”这个概念就有了直观认知。
5.3 高频翻车点:家目录和根目录不分
文件路径混乱也是新人重灾区。很多人把文件直接建到了/(根目录)下,后面想找又找不到,最后用find / -name 文件名大海捞针一样地搜。
记住一条简单规则:你自己的文件放在自己的家目录/home/你的用户名/下面。普通用户对系统目录只有读和执行的权限,没有写的权限,所以你正常情况下也没法在/下建文件。如果哪天你发现你能在/下建文件了,说明你用了sudo——倒不是说绝对不行,但这不是常规做法,作业里也不建议。
5.4 高频翻车点:权限不够就只会加sudo
写作业时权限不够,第一反应是加sudo,这没错。但你要始终清楚:sudo是临时提升权限,不是让你忽略权限规则。
举个典型的例子:你创建了一个用户,想往他的家目录里放一个文件,结果提示没有权限,你的第一反应如果是sudo cp把文件强行放进去,那这个文件的所有权就是root而不是那个用户了。用户自己反而没法改这个文件。需要先chown 用户名:组名 文件名把所有权改回来。
不要嫌这些概念麻烦。我见过太多新人,就是因为在这类细节上一直稀里糊涂,后面学nginx配置、部署应用时,反复被权限问题折磨。第一次作业时搞懂权限归属,后面省下的时间是以牺牲几个晚上为代价的,太值了。
5.5 常用命令速查表,建议直接保存
为了让你交作业时不再翻网页,我把第一次作业用到的高频命令整理成一个速查表,你可以直接存在本地。
| 操作目的 | 命令范例 | 说明 |
|---|---|---|
| 查看当前位置 | pwd | 打印工作目录 |
| 列出文件 | ls -l | 显示详细信息 |
| 创建目录 | mkdir mydir | 建单级目录 |
| 递归创建目录 | mkdir -p a/b/c | 一次性建多级 |
| 创建空文件 | touch a.txt | 文件不存在则新建 |
| 复制文件 | cp a.txt b.txt | 复制并重命名 |
| 复制目录 | cp -r dir1 dir2 | 递归复制 |
| 移动/重命名 | mv a.txt /tmp/ | 移动到/tmp |
| 删除文件 | rm a.txt | 不经过回收站 |
| 删除目录 | rm -r dir1 | 递归删除 |
| 查看文件 | cat a.txt | 显示全部内容 |
| 分页查看 | less a.txt | 空格翻页,q退出 |
| 查找文件 | find /home -name "*.txt" | 按通配符找 |
| 新建用户 | sudo adduser 用户名 | 推荐交互式 |
| 用户加组 | sudo usermod -aG sudo 用户名 | 追加sudo组 |
| 修改权限 | chmod 755 文件名 | 数字法最常用 |
| 修改属主 | chown 用户名:组名 文件名 | 需root权限 |
| 提权执行 | sudo 命令 | 临时以root身份 |
| 切换用户 | su - 用户名 | 带-环境完整切换 |
这个表里的东西,全部熟练到不需要思考的程度,你的第一次作业已经稳了。
6. 从作业延伸到实战:跨过新手村后的几个方向
6.1 别停下:作业完成后可以立刻加练的三件事
第一次作业交掉之后,如果你的Linux之路刚起步,有三件事非常适合接着做。
第一,自己部署一个Nginx网页服务器。用apt install nginx装好,修改默认首页内容,然后从Windows浏览器里访问虚拟机的IP,看到你修改的页面显示出来。这个过程会把网络、服务、文件权限全都串起来,成就感非常强。
第二,用Docker跑一个容器。热搜词里有“linux安装docker”,说明这件事是很多人装完Linux之后的下一个步骤。安装docker之后跑一个nginx容器,你会对“进程隔离”“端口映射”这些概念有直观感受。
第三,试着配置一个“开机自启”的服务。如果你用的是systemd系的系统(Ubuntu、CentOS 7以上都是),写一个简单的systemd service文件,把你的某个脚本设置为开机自动运行。第一次作业你还在操作文件和用户,到这里你已经能够控制系统服务了。
6.2 面试题揭示的深度:第一次作业只是敲门砖
从热搜词里能看到“linux面试题”和“linux面试题测试”,说明很多人学完基础之后,立刻想拿面试题来检验自己。我个人的看法是:第一次作业阶段,不用急着刷面试题,但可以先知道面试会考什么,给自己留个方向。
面试里常考的Linux基础题,无非是:文件权限和特殊权限(SUID、SGID、粘滞位)、软链接和硬链接的区别、硬链接为什么不能跨文件系统、Linux的启动流程、进程间通信方式(管道、消息队列、共享内存、信号量、socket)、TCP协议栈的数据流转过程。还有更偏实战的:线上服务器CPU飙高你怎么排查、磁盘满了你怎么处理。
这些题目背后都需要大量实践支撑。第一次作业只是第一步,走扎实了,后面的路才是真正开始。
6.3 如何持续提升:刻意练习而不是背命令
最后聊聊学习方法。很多人学Linux最大的误区,是想通过背命令列表来学会它。真没用。命令是工具,不是知识。你用一次,比背十次都有效。
我的建议是给自己设计小任务:比如“用命令下载一个文件并解压到指定目录”“写一个5行的Shell脚本,循环打印当前目录下的文件名”“配置一个每天定时执行的定时任务”。这些小任务完成之后,你会发现自己已经能“用Linux干活”了,而不再只是在Linux里敲命令。
如果作业的基础内容已经不能满足你,可以往这些方向深入:Shell编程、网络配置与故障排查、服务部署、容器化。每个方向都是一扇门,门背后的东西,才是Linux真正的精彩之处。
6.4 一点个人建议:把作业记录写成自己的“命令手册”
我最后再分享一个我个人多年养成的习惯:每学一个新命令,都往自己的笔记里记一笔——命令是什么、在哪里用的、踩过什么坑。不要复制网上的解释,用自己的话写一遍。这个笔记就是你的“命令手册”,比网上任何文章都好用,因为它是你真实的操作轨迹。
坚持下来你会感谢自己。半年之后你再翻看第一次作业的日记,会看到自己当初怎么把一个简单的文件操作折腾出花来,那时候你会笑着意识到,Linux已经不知不觉长在你身上了。