ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux第一次作业全攻略:环境搭建、核心命令与Shell脚本实战

Linux第一次作业全攻略:环境搭建、核心命令与Shell脚本实战 把“Linux第一次作业”当成一次练手项目来写而不是交差了事。很多朋友第一次拿到这类作业时心里想的都是“怎么最快做完交上去”但我的看法很明确这样会错过一次真正理解操作系统的机会。这篇内容我会从一个“过来人”的角度把这份作业拆解成环境搭建、命令学习、脚本初探、进阶实操和报告写作几个部分每一部分都给出具体的操作逻辑和避坑经验。1. 先想明白这份作业到底在练什么1.1 作业背后隐藏的三层能力“Linux第一次作业”这个标题看似普通但几乎所有老师在布置这类作业时真正想考察的都不是“你会几个命令”而是三层能力第一层是环境搭建能力。能不能从零开始装好一个Linux系统能不能处理安装过程中的报错这决定了你后续所有操作是否有一个稳定基础。第二层是命令操作能力。这里考察的不是死记硬背而是你是否理解文件系统、用户权限、进程管理这些核心概念以及是否能组合命令解决实际问题。第三层是文档总结能力。很多作业要求提交实验报告能不能把操作过程、报错原因、解决思路讲清楚往往才是拉分的关键。想明白这一点你就知道这份作业不能抱着“做完就行”的心态去对待。它本质上是一次“操作系统入门综合训练”。1.2 常见的作业要求长什么样虽然每份作业的具体要求不同但我归纳了出现频率最高的几个考察点你拿到作业后可以先对照一下考察模块常见要求涉及的核心命令/操作系统安装安装指定Linux发行版虚拟机配置、镜像烧录、分区文件操作创建、复制、移动、删除文件lscdcpmvrm用户管理新建用户、设置密码、切换用户useraddpasswdsusudo权限管理修改文件权限和所有者chmodchown文本处理编辑文件、查看内容、过滤内容vimcatgrepawk进程管理查看进程、结束进程pstopkill脚本基础编写简单Shell脚本bash脚本语法网络配置查看IP、配置网络ip addrnmcli日志与备份清理日志、备份重要文件truncatetar如果你的作业只涵盖其中三四项那属于合格线如果涵盖了七八项那这份作业就是在为后续的系统管理、运维、嵌入式开发打底子值得认真做。2. 环境准备先把系统跑起来2.1 为什么我强烈推荐虚拟机而不是双系统第一次做Linux作业最大的风险不是命令学不会而是把宿主机搞坏。我见过太多同学在装双系统时因为分区没选对把Windows引导刷掉了最后只能抱着电脑去修。所以我的建议就一句话第一次作业老老实实用虚拟机。虚拟机的好处非常明显快照功能可以随时回滚操作失误了恢复到之前的节点不心疼。网络模式可以灵活切换NAT、桥接、仅主机各有用处。删除方便做完作业如果不想要了直接把虚拟机文件删掉即可。三个主流方案我做了个对比方案优点适合场景注意点VMware Workstation功能全面、稳定性好Windows宿主机、需要图形化操作新版本收费但学生可以找校园授权或试用版VirtualBox免费开源、轻量不想折腾授权、配置一般的电脑偶尔会有USB设备识别问题WSL2启动快、无缝集成Windows文件系统只需要命令行作业、不想装桌面环境无法直接测试GUI程序和虚拟机不完全等价如果你是第一次接触Linux我建议用VMware或VirtualBox装一个带桌面环境的版本因为桌面能给你“系统确实运行起来了”的直观反馈命令行窗口输入命令也不会那么让人发怵。2.2 发行版怎么选Ubuntu、Debian、Rocky还是Kali热搜词里有“linux国产”“kali linux安装教程”“rocky linux 10 配置网络信息”说明不少人在发行版选择上纠结。我的建议是按作业需求来如果作业只说“安装Linux”Ubuntu LTS版本是最稳妥的选择。文档多、社区活跃、遇到问题搜一下基本都有答案大学作业绝大多数选它不会出错。如果作业偏向“长期稳定服务、学习企业级运维”可以选Rocky Linux或AlmaLinux它们是CentOS停更后的主流替代品在服务器领域非常常见。如果作业涉及“桌面办公体验、国产化适配”可以装deepin深度Linux作为国内桌面发行版做得比较好的代表软件商店、中文输入法都省心。如果作业方向是“网络安全、渗透测试入门”Kali Linux是安全领域标配但请注意Kali是工具集系统不适合作为日常桌面使用第一次作业不推荐直接上手。如果电脑配置比较老可以选Debian 轻量桌面如XFCE。Debian稳定、资源占用低能让你在旧机器上也能流畅体验Linux。一句话总结不确定选什么时选Ubuntu想做运维方向选Rocky想体验国产系统选deepin。2.3 安装过程中最容易踩的三个坑装系统看似无脑点“下一步”但我在带新人的过程中见过大量失败案例集中在这三处坑一虚拟机磁盘镜像文件放C盘导致宿主机磁盘爆满。一个Linux虚拟机动辄占用20G-50G空间。建议在创建虚拟机时就把磁盘文件路径改到D盘或E盘不要用默认位置。坑二网络镜像源没切换导致下载更新极慢甚至卡死。国内直接连官方源速度非常慢装完系统第一件事就是换源。以Ubuntu为例编辑源文件sudo sed -i s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo apt updateDebian 13Trixie的清华源配置也类似把deb.debian.org替换成mirrors.tuna.tsinghua.edu.cn即可。换源这个操作属于装机必修课不换源你的第一次作业体验会差好几倍。坑三安装过程中分区操作心里没底。对于新手作业直接在安装引导里选择“使用整个磁盘”即可。如果安装引导让你手动分区不要贸然操作先去找这个发行版的默认分区方案说明。另外提醒一句热搜词里有“虚拟机安装linux蓝屏”这通常不是因为Linux本身而是因为宿主机开启了Hyper-V或内核隔离跟VMware冲突导致蓝屏。解决办法是在Windows功能中关闭Hyper-V或者改用VirtualBox配合WSL2方案。3. 命令学习不是背命令是理解命令的设计3.1 文件与目录操作一切操作的地基Linux设计哲学里最核心的一句话就是“一切皆文件”。理解这句话你就能理解为什么很多命令看起来“不直观”。比如你想查看当前在哪一层目录、目录下有什么文件pwd # 显示当前路径 ls -lah # 查看目录详情 cd /etc # 进入etc目录 cd ~ # 回到当前用户home目录新手经常搞混的是绝对路径和相对路径。/home/username/test.txt这种从根目录开始写的就是绝对路径./test.txt、../test.txt这种是从当前目录推导的就是相对路径。我的教学经验是写命令时优先使用绝对路径尤其在做脚本或定时任务时依赖相对路径很容易出问题。文件操作命令本身不难但有几个细节值得注意cp -r /home/user/dev /home/user/backup_dev # 复制目录必须加 -r rm -rf /tmp/test # 递归强力删除 mv file.txt newname.txt # 重命名和移动同一命令我看到无数新人在rm -rf上翻过车所以单独强调rm -rf后面跟的路径务必反复确认特别是不要习惯性地写出rm -rf /*这种命令。生产环境事故百分之八十都是删错目录这是个可以记一辈子的教训。3.2 文本处理过滤、查找、统计的组合技很多作业会要求你“统计某文件行数”“在大量日志中过滤某个关键词”“查找指定特征的文件”。这类需求属于Linux命令的精髓部分组合多个简单命令解决复杂问题。最常用的文本三剑客是grep、awk、sed。入门阶段先把grep用熟练grep -r error /var/log/nginx/ # 递归查找目录下所有含error的行 grep -i warning system.log # 忽略大小写过滤 grep -c failed auth.log # 统计匹配次数管道符|是这个系统里最伟大的设计之一它把不同命令串联成流水线。比如考试类作业常考“统计日志中访问量前十的IP”cat access.log | awk {print $1} | sort | uniq -c | sort -nr | head -10这条命令单看可能头大但拆开理解就很清晰cat读取日志awk取出IP列sort排序让相同IP相邻uniq -c去重并计数sort -nr按数字倒序排列head -10取前十个。这种组合思路才是Linux作业真正想训练的能力。还有个高频场景是“清空日志文件”。热搜词里就有“linux 清空日志文件”很多人直接rm删除日志文件结果发现进程仍然占用句柄、日志继续写入但是看不见了。正确做法是用truncate或重定向truncate -s 0 /var/log/app.log # 等价方式 cat /dev/null /var/log/app.log3.3 用户与权限搞清楚sudo到底在干什么“linux新建用户”“linux密码过期提醒通知”这两个热搜词说明用户管理类操作是作业高频点。我推荐的练习方式是自己创建一个用户设置密码再用这个用户去操作文件感受权限报错。sudo useradd -m -s /bin/bash alice # 创建用户并建home目录、指定shell sudo passwd alice # 设置密码 su - alice # 切换到该用户权限部分核心概念是读(r)、写(w)、执行(x)三组权限分别对应文件所有者、同组用户、其他用户。很多人一开始搞不清数字权限的换算其实很简单r4w2x1。比如chmod 755 script.sh就是所有者有rwx(4217)、同组和其他人有rx(415)。关于sudo这里多说一句它让普通用户临时获得root权限而不是“切换到root”。很多作业里老师要求“使用sudo执行命令”本质是考察你是否理解权限提升必须遵循最小授权原则。自己练习时可以配置一个免密sudo的测试账户sudo vim /etc/sudoers # 在文件末尾添加 # alice ALL(ALL) NOPASSWD: ALL生产环境千万不要这样配置但在虚拟机作业里可以快速体验sudo的工作逻辑。3.4 系统信息与进程从“卡住了”到“看监控”第一次作业做到进程管理时有些同学会觉得抽象但如果配合“系统突然卡住”这个场景就很好理解了。当你怀疑系统异常时第一步永远是查看进程状态ps -ef # 查看所有进程完整信息 top # 动态资源监控 htop # 更友好的交互界面 kill -9 pid # 强制结束进程热搜词里有个“linux 修改进程名称”这是个很有意思的点。比如你启动一个Java程序默认进程名可能是java你希望它显示成业务名以便管理exec -a myapp /usr/bin/java -jar app.jar exec -a可以让进程的名字在ps里显示成myapp。更进一步在脚本里可以这样写#!/bin/bash exec -a nginx-mock /usr/sbin/nginx -c /etc/nginx/nginx.conf进程名管理这个概念在很多运维场景中很实用像systemd服务内部改进程名、Python里用setproctitle模块修改进程名字本质都是同样的需求让进程“可识别”。作业阶段能理解exec -a就已经足够了。4. Vim和Shell脚本第一次作业里的“软实力”4.1 Vim为什么劝退又必须学社交媒体上关于Vim的段子特别多很多人第一次打开Vim就不知道怎么退出。热搜词里“linux下gvim怎么全选”也说明大家确实卡在编辑器上。我的观点是第一次作业阶段不用深挖Vim但至少要做到“会用”。会用包含什么能打开文件、能切换模式、能输入文本、能保存退出、能全选复制。Vim的核心是模式切换模式进入方式作用普通模式打开Vim时默认光标移动、删除、复制插入模式按i编辑文本可视模式按v选中文本进行复制、删除命令行模式按:保存退出、查找替换“全选”这个操作在网络搜索里很热门Vim全选的标准操作是按 gg 跳到文件开头 按 ggVG 等一下这里细说实际上全选的正确姿势是先按gg跳到第一行再按Shiftv进入可视行模式然后按G跳到末尾屏幕上你会看到整个文件被选中这时按y即可复制。用连写的组合记法是ggVG拆开就是“跳到开头、行可视模式、跳到结尾”。gvim作为Vim的图形版操作和终端Vim完全一致。退出Vim的问题我提供一个最保险的路径按Esc确保回到普通模式输入:wq回车保存并退出如果只是退出不保存输入:q!。建议新手新建一个~/.vimrc文件把行号显示和语法高亮打开体验会好很多echo set nu ~/.vimrc echo syntax on ~/.vimrc4.2 第一个Shell脚本从长命令到自动化如果作业里有Shell脚本说明老师的意图是教你“把重复劳动自动化”。一个经典练习场景是写一个系统信息收集脚本模拟日常巡检。#!/bin/bash # 系统信息收集脚本 echo 系统基本信息 uname -a echo 磁盘使用情况 df -h echo 内存使用情况 free -h echo CPU负载 uptime echo 当前登录用户 who写好后执行chmod x sysinfo.sh ./sysinfo.sh脚本执行后你会看到完整的系统概览。这时候作业就算做完你已经可以把这些内容整理到报告里了。再进一步如果作业要求“对脚本有逻辑判断”可以看一下这样的例子#!/bin/bash # 磁盘使用率预警脚本 THRESHOLD80 DISK_USAGE$(df -h / | awk NR2 {print $5} | sed s/%//g) if [ $DISK_USAGE -gt $THRESHOLD ]; then echo 磁盘使用率过高${DISK_USAGE}% else echo 磁盘使用率正常${DISK_USAGE}% fi这里用到了df取磁盘信息、awk提取百分比、sed去掉百分号、if做条件判断。这条脚本你写完之后搭配一个定时任务比如每天9点执行crontab -e # 加入 # 0 9 * * * /home/username/disk_check.sh /tmp/disk_check.log 21Cron的语法第一次接触确实很难记住但入门只需理解五个星号的顺序分、时、日、月、周。0 9 * * *就是每天9点整执行。写脚本阶段养成一个调试习惯会省很多时间bash -x script.sh-x参数会逐行打印脚本执行过程哪里报错、哪个变量为空一眼就能看出来。这是我从踩坑里总结出来的经验写完脚本先跑一遍,如果异常不要猜用bash -x看执行轨迹。5. 进阶一点进程、网络、存储与常见故障5.1 进程间通信的入门理解热搜词里有“linux进程间通信”这个主题在大学课程里通常会单独开章节但第一次作业阶段不会被要求深入实现。我建议你暂时只把场景和概念对应起来管道上一个命令的输出作为下一个命令的输入。比如cat file | grep abc。Shell管道是进程间通信最直观的形式。信号kill -9 PID本质是发送SIGKILL信号kill -TERM PID是发送SIGTERM终止信号。你平时“结束进程”就是在做信号通信。共享内存与消息队列允许不同进程读同一块内存或通过队列传消息编程作业阶段才会用到。作业里如果遇到“请说明Linux进程间通信方式”我建议你用管道和信号来举例说明因为它们在日常操作中看得见摸得着。比如ps aux | grep nginx就是典型的管道通信kill -HUP nginx_pid是让nginx重载配置文件的信号。5.2 网络配置与共享上网“linux 共享上网 办法”也是个高频热搜。最常见的校园网或家庭网络共享场景是这样的一台Linux机器有外网连接比如通过网线或者Wi-Fi另一台设备想通过这台机器共享上网。通用做法是开启IP转发并配置iptables的NAT规则# 1. 开启IP转发 sudo sysctl -w net.ipv4.ip_forward1 # 永久生效编辑 /etc/sysctl.conf 添加 net.ipv4.ip_forward 1 # 2. 在对外网卡上配置NAT sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # 3. 内网设备把网关指向这台Linux机器的内网IP并配置DNS这里的原理是把Linux机器当作路由器通过NAT把内网流量伪装成外网地址发送出去。对第一次作业来说你不需要理解十分底层的五元组匹配只要记住“IP转发NAT”是共享上网的标配逻辑就行。顺便说一句使用VirtualBox时如果两台Linux虚拟机想互通可以设置“内部网络”模式然后在两台机器上手动配置IP。这样你能在不上外网的前提下练习网络配置非常安全。5.3 挂载NAS存储一个非常落地的作业扩展如果你作业做完还有“学有余力”的念头强烈推荐实践一下“linux挂载nas存储”。这个技能在企业运维里几乎天天用一台Linux服务器要扩容磁盘或者访问共享目录最常用的两种协议是NFS和SMB/CIFS。安装客户端并挂载# NFS示例 sudo apt install nfs-common sudo mkdir -p /mnt/nasdata sudo mount -t nfs 192.168.1.100:/volume1/share /mnt/nasdata # SMB/CIFS示例 sudo apt install cifs-utils sudo mount -t cifs //192.168.1.100/share /mnt/nasdata -o usernamenasuser,vers3.0挂载之后如果希望重启仍然有效需要写入/etc/fstab192.168.1.100:/volume1/share /mnt/nasdata nfs defaults,_netdev 0 0这个知识点可能在作业里不会直接出现但很能体现你知识面的广度。如果报告里能写一笔“我们还可以通过NFS挂载远程存储”老师的印象分一般不会低。5.4 系统备份、日志清理和密码策略系统管理这块有几个实操点备份、日志、密码策略每一项都对应真实运维问题。备份最简单可靠的做法是用tar打包关键目录sudo tar -czvf /backup/home_backup_$(date %F).tar.gz /home$(date %F)会自动插入当天日期配合定时任务可以形成每日备份节奏。日志清理前面已经提过truncate方案这里再给一个日志轮转的初级做法。在生产环境中日志不能只清空还要按日期归档。用系统自带的logrotate完成# 新建 /etc/logrotate.d/myapp /var/log/myapp/*.log { weekly rotate 4 compress delaycompress missingok notifempty create 0640 root root }这样每周轮转一次保留4份历史日志旧日志自动压缩。这套逻辑在真实服务器和作业报告里都很值钱。密码过期策略属于安全和系统管理交叉的知识点。默认情况下密码永不过期但很多安全标准会要求90天改密。查看现有策略chage -l alice设置90天改密及提前提醒sudo chage -M 90 -W 7 alice-M 90指密码最长有效90天-W 7指过期前7天提醒。这个知识点也正好对应热搜词里的“linux密码过期提醒通知”。6. 作业报告从“做过”到“讲清楚”6.1 一份能拿高分的报告结构很多人做完实验觉得万事大吉结果报告被批“像流水账”。核心原因是只写了“做什么”没写“为什么做”和“做完学到了什么”。我建议你按下面结构组织报告实验目的不要只写“熟悉Linux命令”要写具体能力比如“通过用户管理操作理解Linux权限模型”。实验环境CPU、内存、虚拟机软件版本、Linux发行版和内核版本可以用uname -a输出。实验内容与步骤按模块组织配关键命令和运行结果截图。遇到的问题与解决办法这一项是拉开差距的地方。实验总结写自己的理解程度以及还想深入的方向。6.2 新手最容易丢分的三个地方第一没有截图或截图没有关键信息。截图的目的是让老师确认“你确实跑通了”。每个重要命令执行完pwd、ls -l的输出、脚本运行结果都要截。截图里建议包含终端窗口和时间信息增加可信度。第二没有记录报错过程和排查思路。初次运行grep -r时因为忘记加权限或用错路径而报错这是再正常不过的事情。但你处理报错的过程恰恰是老师最想看的内容。比如你执行rm提示权限不足然后你通过sudo解决把每一步记录下来这份作业的含金量会明显提升。第三不总结原理只贴命令。命令会随时间遗忘原理不会。你写grep过滤日志时如果能补一句“管道符让前一条命令的标准输出成为后一条命令的标准输入”说明你就不是机械复制而是真的理解了数据流。如果你愿意再加一个小亮点可以在报告末尾写一段“通过这次作业我意识到Linux的学习曲线虽然陡峭但只要掌握了文件、用户、进程、权限这几个核心概念后续的命令都是在这几个骨架上做扩展”。这一句比你写几百个“熟悉了xx命令”更有说服力。我个人在实际带项目的经验里经常把第一次Linux作业看成一面镜子你对待它的方式很大程度上能反映出你未来处理复杂系统问题的方式。有人装系统卡在换源就放弃有人因为看不懂报错就跳过但那些愿意把bash -x跑一遍、把报错记录下来的人通常三个月后已经能自己部署一套完整服务了。这份作业没那么高深它只是给你一个机会让你在动手操作中理解操作系统的运行逻辑。做完上面这些任务之后别急着删虚拟机多留几天想敲命令的时候进去敲一敲你会发现自己对这台“小机器”越来越有掌控感这比作业得了多少分都更有意义。
返回列表