news 2026/10/3 4:22:45

Linux入门第一周:命令行、系统管理与故障排查实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux入门第一周:命令行、系统管理与故障排查实战

很多同学问过我同一个问题:想学Linux,第一步到底该干什么?这问题其实不太好回答,因为“学Linux”这个概念太大了——是想把Linux当日常系统用,还是往运维方向发展,又或者是冲着嵌入式Linux、内核驱动去的?方向不同,路径完全不一样。西邮Linux兴趣小组这周正式开课,第一周我们选择从最底层的命令行和系统管理打基础。这篇周报既是我们自己的复盘记录,也希望对正在自学Linux、或者打算带新人入门的朋友有点参考价值。

第一周的定位很简单:让每个人都能用命令行完成日常操作,理解系统是怎么运转的,遇到问题知道怎么查、怎么去解决。不碰内核、不碰驱动,也不急着上嵌入式Linux项目,先把地基打扎实。一周下来,大家的反馈和效果都还不错,所以这篇周报我会按“路线怎么定”、“命令怎么用”、“实操怎么做”、“问题怎么查”四个板块来写。

1. 第一周的学习路线是怎么定下来的

1.1 为什么第一周不碰内核和驱动

网上很多教程喜欢一上来就讲Linux内核、设备树、DSA switch驱动这些高大上的东西,我承认这些内容确实能吸引人,但说实话,对零基础的同学来说,这跟让刚学走路的孩子去跑百米没什么区别。

我见过太多这样的情况:新人一开始踌躇满志,照着教程搞了几天内核编译,结果连系统都进不去,最后直接放弃。第一周的价值不在于“学了多少高深的东西”,而在于“建立对系统的基本感觉”。这种感觉从哪里来?从每天敲命令、看输出、处理问题中来。

所以第一周我们特意避开了这些内容,把精力集中在:

  • 常用命令的熟练使用
  • 文件系统与权限模型的理解
  • 用户管理和软件安装
  • 进程、网络的基本概念
  • 日志查看和故障排查思路

这几块搞定之后,后续无论是转运维、做后端、还是深入嵌入式Linux项目,都有底气。

1.2 第一周的每日安排

开学前小组开了个短会,把第一周的时间表定了下来。节奏上不能太紧,也不能太松,每天一个主题,配合动手练习,最后留一天做总结和答疑。

时间主题核心内容
周一基础命令与文件系统ls、cd、mkdir、rm、mv、cp,理解路径与文件类型
周二文本处理与管道grep、sed、awk、管道符、重定向
周三用户权限与软件源用户管理、权限位、换镜像源、安装软件
周四进程与网络基础ps、top、查看端口、网络配置
周五故障排查与总结看日志、蓝屏案例复盘、本周内容串讲

这个安排的逻辑是从“单点命令”过渡到“组合使用”,再到“系统管理”,最后落到“问题排查”。单看某一天的题目会觉得不难,但加在一起就是一个完整的操作系统使用闭环。

1.3 一个很重要却容易忽略的原则:动手大于观看

小组里有个不成文的规定:教程视频可以看,但看完必须自己动手敲一遍,哪怕敲错了也比光看强。有人会觉得“看懂了不就行了”,但在Linux这一行,看懂和会用之间的距离比想象中大得多。

比如说grep -E '[0-9]+' file这个正则,你看别人演示觉得很简单,但轮到自己写的时候可能就漏了转义、漏了引号。唯一能消除这种差距的办法就是多练。第一周我们要求每人每天至少独立完成30分钟的命令行练习,不限制内容,可以操作自己的文件,也可以处理小组发的练习数据。

提示:如果条件允许,尽量分配一个独立的Linux环境(虚拟机也可以),不要只在别人的机器上蹭。自己动手折腾、搞坏了再修复,这本身就是学习过程的一部分。

2. Linux常用命令,拆开揉碎讲一遍

2.1 文件与目录操作:不是会ls就完事了

很多人对文件操作的理解停留在“ls看目录、cd切路径、rm删东西”,实际操作起来却总会踩坑。第一周我们把文件操作相关的命令系统地过了一遍,并且每一个都配了实际场景。

先说ls。最常用的组合是ls -lah,其中-l显示详细信息,-a显示隐藏文件,-h把文件大小换算成人类可读的格式(K、M、G)。这里有个大家容易忽略的点:ls -l输出中的第一列,比如drwxr-xr-x或-rw-r--r--,第一个字符表示文件类型。d是目录,-是普通文件,l是软链接,b和c分别是块设备和字符设备。这个看起来基础,但在排查问题时非常有用——比如你发现一个文件不能正常读写,先看类型和权限位就能排除很多可能性。

然后是rm。我们特意花了十分钟强调rm -rf的危险性。-r递归删除,-f强制删除不提示,两个参数加在一起,一条命令可以毁掉整个家目录。小组内的建议是:刚开始练习时,尽量不要用-f参数,让系统帮你确认一次,给手误留个缓冲。

mv和cp也要说两个常见坑:第一,跨文件系统执行mv时,系统实际上会执行“复制+删除”,如果中途断掉,目标文件可能不完整;第二,cp默认不保留文件的所有者和权限信息,如果需要原样复制,要加-p参数。

# 查看目录下所有文件,含隐藏文件,显示人类可读大小 ls -lah # 复制目录,保留权限和时间戳 cp -rp /opt/project /backup/project # 移动文件到别的分区,注意跨文件系统行为 mv /home/user/bigfile.iso /mnt/data/

2.2 进程与资源查看:第一周就要学会读这些输出

很多同学第一次用Linux,对“进程”这个概念是模糊的。第一周我们用最直观的方式解释:进程就是一个正在运行的程序实例,每个进程有一个PID(进程标识号),系统通过PID来管理它们。

查看进程最常用的两个命令是ps和top。ps -ef和ps aux是两个经典组合,前者偏向标准格式输出,后者是BSD风格,包含CPU和内存占用率。第一次用的时候不少成员搞不清两者区别,我的建议是固定先会一个,推荐ps -ef,因为它的输出格式更规整,PID、PPID(父进程ID)、启动时间一目了然。

top则是动态视图,每三秒刷新一次,可以看成是Linux的任务管理器。这里有几个关键信息要会读:%CPU是CPU占用率,%MEM是内存占用率,load average是系统负载。很多人以为 load average 不能超过1,其实这是误解——它跟CPU核心数有关,四核机器负载到4才算满载。这个点面试里经常问,第一周我们就提前埋了伏笔。

资源查看方面,free -h看内存,df -h看磁盘分区使用量,du -sh看某个目录总大小。注意df和du的区别:df是从文件系统层面统计,du是从目录内容层面统计。有时候你删了大文件,du显示已经释放,但df还显示占用,那是因为有进程仍然持有这个文件的句柄。排查“磁盘满了但找不到大文件”这种情况时,这个知识点非常关键。

# 查看所有进程,以完整格式显示 ps -ef # 查看动态资源占用,按CPU排序 top -o %CPU # 查看内存和磁盘 free -h df -h du -sh /var/log

2.3 文本处理三剑客:grep、sed、awk

如果说文件操作是Linux的腿脚,那文本处理就是Linux的手。尤其对以后做运维、数据分析、日志处理的人来说,grep、sed、awk这三样必须会。第一周我们没有讲得很深,但把最常用的场景都覆盖了。

grep最基础的用法就是在一堆文件里搜关键词。常用参数有-n显示行号,-i忽略大小写,-E启用扩展正则,-r递归搜索目录。举个例子:

# 在/var/log下递归查找包含"error"的行,忽略大小写并显示行号 grep -rni "error" /var/log/ # 从命令输出中过滤关键字 ps -ef | grep nginx

这里有一个新手常犯的错误:用ps -ef | grep nginx的时候,输出里会附带一条 grep 进程本身的行。要排除它,可以这样写:ps -ef | grep nginx | grep -v grep,或者直接用pgrep nginx这个更简洁的命令。

sed我第一周只教了一个核心能力——替换。格式是sed 's/旧内容/新内容/g' file。注意,默认情况下sed只是把替换结果输出到终端,并不会真正修改文件,需要加-i参数才会原地修改。这是一个极其重要的安全机制:先不加-i跑一遍,确认输出没问题了,再加-i执行真正修改。

awk则是一个基于列的文本处理工具。最经典的用法是awk '{print $1}'取出每行的第一列。默认分隔符是空白字符,也可以通过-F指定其他分隔符。比如查看/etc/passwd里每个用户的用户名,可以这样:

# 输出所有用户名 awk -F: '{print $1}' /etc/passwd

3. 系统管理实操:从装机到日常维护

3.1 虚拟机装Linux,蓝屏和中断问题排查

第一周实操的第一个大项目就是“在自己的电脑上装出Linux环境”。因为大部分成员用的是Windows笔记本,我们统一建议先装虚拟机,而不是直接物理机双系统。理由很简单:虚拟机折腾坏了可以直接删除重新建,风险低,适合新手。

按经验来说,VirtualBox对于新手更友好,VMware功能更全但体积大。小组内两种都有用,最后效果差别不大。真正的问题是安装过程中暴露出来的,主要包括两类:虚拟机启动Linux时宿主Windows蓝屏,以及Windows Linux子系统更新向导提前结束。

第一个问题,虚拟机启动时Windows蓝屏,九成原因是宿主机BIOS里的虚拟化功能没开启。VT-x(Intel)或SVM(AMD)这个开关默认可能是关的,需要重启进BIOS,在CPU配置里打开,再进系统就好了。有个快速验证方法:打开任务管理器,在“性能”标签页看“虚拟化”这一项是否显示“已启用”。如果显示“已禁用”,基本可以断定就是这个原因。

第二个问题,Windows更新子系统安装向导提前结束。排查下来通常是两个因素:一是系统版本太老,不支持新版本的Windows子系统;二是网络环境问题导致组件下载不完整。解决方法说起来简单,但操作的时候容易卡壳:先把系统更新到最新版本,再去“启用或关闭Windows功能”里勾选“虚拟机平台”和“适用于Linux的Windows子系统”两项,最后重启。如果重启后向导还是报错,多半是下载中断,建议清空更新缓存后再试。

3.2 新建用户的完整流程和权限坑

系统装好之后,第一周有个必做的练习:新建一个用户,并用这个用户完成一系列操作。这个练习的目的是理解Linux的权限模型,而不是单纯背命令。

# 新建用户,创建家目录,指定默认shell sudo useradd -m -s /bin/bash linux_newbie # 设置密码 sudo passwd linux_newbie # 将用户加入sudo组(如果需要管理员权限) sudo usermod -aG sudo linux_newbie

这里有个知识点值得多说几句:有些教程推荐直接用adduser,有些推荐useradd。在Debian系系统上,adduser是一个更友好的前端脚本,它会自动创建家目录、设置默认配置;而useradd是底层命令,默认不会创建家目录,也不会设置密码,需要手动再执行。第一周我们特意教的是useradd,因为先学会底层命令再接触封装脚本,理解会更扎实。

权限坑主要出在配置文件上。比如你把普通用户加入某个组之后,如果该用户当前已经登录,新组不会立即生效,必须重新登录或者执行newgrp切换。否则你会遇到“明明加了组,却还是没权限”的困惑。

3.3 网络配置与镜像源更换

第三周的实操课上,我们做了网络相关的两个基础任务:配置静态IP和更换软件镜像源。任务本身不难,但网上教程鱼龙混杂,一些教程教的是过时命令,照着操作很容易把自己绕晕。

先说配置IP。新版本的Debian系系统(包括Debian 12、Ubuntu 22.04之后)统一使用netplan或者 NetworkManager 来管理网络,老教程里经常出现在/etc/network/interfaces里改配置的玩法。第一周我们只讲在桌面环境里最不容易出错的方法:用nmcli这个NetworkManager的命令行工具。

# 查看当前网络状态 nmcli device status # 查看某个连接的详细信息 nmcli connection show # 修改IP地址(假设连接名为Wired,需要root权限) sudo nmcli connection modify Wired ipv4.addresses 192.168.1.100/24 sudo nmcli connection modify Wired ipv4.gateway 192.168.1.1 sudo nmcli connection modify Wired ipv4.dns 223.5.5.5 sudo nmcli connection modify Wired ipv4.method manual sudo nmcli connection up Wired

遇到“网络明明连着但ping不通外网”的问题,排查顺序建议是:先ping 网关,确认局域网通不通;再ping 8.8.8.8,确认有没有路由;最后nslookup baidu.com,确认DNS解析是否正常。按这个顺序一步步定位,绝大多数网络问题都能找到方向。

镜像源这块,小组里有人问“为什么我下载软件这么慢”,其实十有八九是默认源在国外。以Debian为例,更换清华源的核心操作是把/etc/apt/sources.list里的地址前缀替换成https://mirrors.tuna.tsinghua.edu.cn。这里要提醒一个细节:不同Debian版本对应的源路径不一样,比如Debian 11是bullseye,Debian 12是bookworm,Debian 13(trixie)路径也不同。直接复制网上老教程的内容可能不匹配你的版本,最简单的确认方法是查看当前版本:

cat /etc/os-release

4. 第一周高频问题与排查实录

4.1 常见问题速查表

这一周实操下来,我们整理了出现频率最高的问题,排版如下,方便查阅:

问题现象常见原因解决思路
虚拟机启动Windows蓝屏BIOS虚拟化没开启进BIOS打开VT-x/SVM
Windows子系统更新向导提前结束系统版本过旧或下载中断更新系统、清理更新缓存后重试
apt安装软件时报404源不匹配当前系统版本检查/etc/os-release,换对应路径的镜像源
文件删除后磁盘空间没释放有进程仍持有文件句柄lsof查看占用进程,重启或kill该进程
普通用户执行sudo报错用户不在sudo组usermod -aG sudo 用户名,重新登录生效
grep结果里总是混入grep本身grep匹配到了自己的进程行用pgrep或grep -v grep过滤掉
ping不通外网但局域网正常网关或DNS配置错误按“网关→公网→DNS”的顺序排查

4.2 故障排查的基本方法:先看日志再动手

很多新手遇到问题的第一反应是到处乱试命令,这样效率极低。第一周我们反复强调的排查思路是:先看日志,再动手。

Linux下日志主要存放在/var/log目录。常用的日志文件包括:/var/log/syslog(系统日志)、/var/log/dmesg(内核日志)、/var/log/auth.log(认证日志)。如果你遇到的是系统服务相关的问题,还有对应的服务日志可以看。

比如有个同学反馈系统启动时某个服务起不来,查看了/var/log/syslog,发现里面有No space left on device这样的记录,第一反应是磁盘满了,但df -h看下来磁盘空间挺充足,这就是前面说的情况——inode耗尽了。检查方式是用df -i查看inode使用率,结果达到100%的话,即使磁盘有空间也无法创建新文件。这类教训只有真正动手做一遍,印象才深。

再比如检查某个服务为什么没监听端口,可以用journalctl -u 服务名 -n 50查看最近的日志输出。先定位错误信息,再去查怎么解决,效率比盲目重启快得多。

注意:在修改系统配置之前,建议先备份原文件。比如要改/etc/apt/sources.list,先执行cp /etc/apt/sources.list /etc/apt/sources.list.bak留个后路,这是我在实际使用里养成的习惯,可以让你在改错配置时快速回滚。

4.3 关于进程和网络的两个高频问题

第一周结束后,我特别挑选了两个在群里被反复问到的问题,拿出来串讲了一遍。第一个是“怎么看一个进程占用了哪些端口”,第二个是“如何修改进程名称”。

端口查看最常用的命令是ss -tlnp。-t显示TCP,-l只显示监听状态的端口,-n不解析服务名,-p显示对应的进程信息。举个例子:

# 查看所有监听中的TCP端口及其对应进程 sudo ss -tlnp

很多同学之前只知道netstat,但新版系统里netstat可能没有默认安装,而ss是iproute2包自带的工具,属于 “新一代” 网络工具,用起来更方便。

至于修改进程名称,这个需求在写脚本和调试多进程程序时经常遇到。Linux下最简单的方式是在启动进程的脚本里用exec -a来指定进程显示名,比如:

# 启动nginx时,将进程名显示为myweb exec -a myweb /usr/sbin/nginx

另一个方式是直接用编程语言设置(比如Python里调prctl),但这属于编程范畴,第一周只做了了解层面的介绍。

4.4 学习习惯:一个周报之外的额外建议

最后这部分其实不是技术,但比技术更重要。第一周我观察到一个现象:学得快的同学和学得慢的同学,差距往往不在智力,而在有没有及时记录。

我给小组的建议很简单:准备一个Markdown笔记(或者随便什么顺手的记笔记工具),每天把当天新学的命令、踩过的坑、解决的思路记下来。不用写得多花哨,哪怕是一行字,比如“du和df的区别是……”,日积月累下来价值非常大。

另一个建议是每个人每周必须自己动手解决至少一个问题,不能一遇到问题就条件反射式地去群里问。排查过程本身就是学习过程:先复现问题,收集日志,搜索关键字,尝试解决,记录结果。这套思路放到任何技术领域都适用。

根据我个人经验来看,第一周最宝贵的并不是学会了多少条命令,而是建立了“我能搞定Linux”的信心。当你看到黑乎乎的终端窗口不再发怵,当你敢在虚拟机上大胆折腾、坏了就重装,你就已经迈出了最坚实的一步。后续无论是学嵌入式Linux、参加开源项目,还是准备面试题测试,都不会再心虚了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 4:21:16

Python源码拆解:AI股票智能分析系统从数据到实盘

简介:这是一套面向个人投资者与量化爱好者的 LLM 驱动股票智能分析系统源码,覆盖 A 股、港股、美股及主流指数,解决盯盘耗时、选股效率低、决策依据分散等痛点。系统以 AI 决策仪表盘输出一句话核心结论、精确买卖点与操作清单,并…

作者头像 李华
网站建设 2026/10/3 4:20:58

从delattr到divmod:掌握Python内置函数与对象协议的精髓

做 Python 开发这些年,我越来越深刻地体会到一件事:真正让代码变简洁的往往不是各种花哨框架,而是语言自带的那些内置函数。尤其是当你对 Python 内置函数的理解从“会用”走向“懂它为什么存在”之后,写出来的代码会明显不一样。…

作者头像 李华
网站建设 2026/10/3 4:20:35

ASP.NET Core 8.0生产级幂等中间件:用Redis拦截重复请求

1. 为什么接口会重复调用,以及幂等性为何能救命先聊一个场景:你在凌晨三点被电话叫醒,线上支付系统的回调接口收到了同一笔支付结果通知——第一次处理成功,第二次、第三次继续处理同一笔订单。如果接口没有幂等保护,第…

作者头像 李华
网站建设 2026/10/3 4:20:34

C#/.NET实战周刊:上位机开发、异步并发与桌面性能优化

这周我刷社区的时候,有个挺明显的感受:C#/.NET/.NET Core技术前沿的热搜词,一半都奔着工业现场去了。“c#上位机”、“c# usb摄像头免费开源第三方组件”、“c# modubus tcp 客户端”这类词一直在涨,另一头又冒出不少“net sdk 10…

作者头像 李华
网站建设 2026/10/3 4:20:00

EMQX大文件下载遇ChunkedEncodingError?三层超时配置全解

你这问题我太熟了。EMQX 是 MQTT 服务器,平时很少有人通过它的 HTTP API 去下载超大文件,但一旦批量导数据、拉取监控记录、备份配置文件超过几百 MB,就会在下载途中被服务器主动掐断,然后抛出一句requests.exceptions.ChunkedEnc…

作者头像 李华
网站建设 2026/10/3 4:19:36

光耦隔离电路实战:从过零检测到PLC输入的设计要点

1. 光耦隔离电路为什么值得专门花一篇文章讲做电子设计的人,尤其接触过家用电器控制板或工业控制设备的,对"光耦"这个名字肯定不陌生。它很小,四只脚或六只脚,黑色封装,看起来其貌不扬,但很多设备…

作者头像 李华