如果你问一个刚接触 Linux 的朋友最近在学什么,他大概率会打开手机里的收藏夹,里面躺着十几个网址:鸟哥的私房菜、Linux 命令大全、Linux 入门教程……看着都很好,就是不知道从哪下手。我玩 Linux 十几年,也带过不少从零开始的新人,一个特别普遍的现象是:能坚持下来的人,基本不是因为更聪明,而是因为他们把资源和场景对上了号。今天要说的这 5 个学习网站,不是那种收藏完就吃灰的清单,而是按“入门打底、系统补概念、命令行深读、游戏化练习、浏览器实操”这条线挑出来的。它们分别是:鸟哥的私房菜、Linux Journey、The Linux Command Line(linuxcommand.org)、OverTheWire 的 Bandit、蓝桥云课。
1. 先聊聊为什么大多数人学 Linux 坚持不下去
1.1 常见的三种“伪努力”
先说一个大家不爱听的事实:Linux 学习失败,通常不是因为难度,而是因为方向。我见到最多的三种状态,基本可以覆盖 80% 的弃坑者。
第一种是折腾发行版。今天听说 Arch 很酷,明天想搞桌面美化,后天又想换成 Gentoo。折腾一圈下来,系统重装了五六次,但对文件权限、进程管理、shell 这些真正核心的东西还是一无所知。不是说折腾发行版没意义,而是它不该出现在入门阶段。入门阶段唯一的目标应该是:让命令能跑起来,让自己愿意每天打开终端。
第二种是背命令表。不少人拿着一份“Linux 常用 100 命令”就开始背。cp 怎么用、mv 怎么用、rm 有哪些参数、grep 有多少种写法……背了三天,发现记不住,然后就开始怀疑自己的记忆力。说实话,命令离开场景就没有意义。grep 在查询日志时学,比背十遍参数都管用;管道在组合命令时理解,比抄十遍符号更深刻。
第三种是只收藏不动手。网上的免费资料实在太多了,今天收藏一篇“Linux 入门教程”,明天收藏一份“运维命令大全”,仿佛收藏了就等于掌握了。但 Linux 是个操作型技能,眼睛看懂了,手不一定会;手会了,脑子才会。很多人缺的不是资料,而是一台真正打开着的终端,哪怕只是一台虚拟机。
1.2 “讲原理”和“给场景”缺一不可
所以我在选这 5 个网站时,刻意让它们各自承担一个角色:有人负责讲原理,有人负责梳理知识结构,有人负责帮建立命令行思维,有人负责给目标感和即时反馈,还有人负责解决“环境装不起来”这个头号拦路虎。这 5 个不是拿来横向对比谁好谁坏的,而是互补关系。如果用一句话总结我的建议:不要再找一个“大全”了,“大全”只会让你更焦虑。你需要的是一条有顺序、有反馈、能上手的路径。
2. 第一个网站:鸟哥的私房菜——中文母语者的稳起点
2.1 为什么老牌中文教程到现在依然能打
鸟哥的私房菜(linux.vbird.org)是我在中文 Linux 资料里很少见到的“系统性作品”。很多中文教程的问题是:用一个“第一章、第二章”的壳,把命令堆在一起,学完只记住了几个零散操作。鸟哥不一样,他是把 Linux 当成一个系统来讲,从安装前的磁盘规划、目录结构设计,到文件权限、bash、正则表达式、shell script,一步一步铺开。
我到现在还给新人推荐的核心理由有三个:中文语境、例子贴近生活、重原理。比如他讲目录时,不是让人死记/usr/bin放什么、/etc放什么,而是从 FHS(Filesystem Hierarchy Standard)的设计动机出发,解释为什么 Linux 要把配置文件集中放在/etc,为什么可执行文件分散在/bin、/usr/bin、/usr/local/bin。理解了这套逻辑之后,你面对一个陌生系统时,至少能猜出某个文件大概在哪。再比如讲权限,他把 owner、group、others 和 rwx 之间的组合讲透了,后面再看 chmod、umask、ACL 都会觉得顺理成章。
2.2 正确打开方式:当工具书,不要从头读到尾
我见过太多人收藏鸟哥之后,从第一章开始啃,啃到“磁盘分区”就坚持不下去了。鸟哥的内容确实好,但它的定位是“系统性的参考书”,不是“每天 20 分钟的轻松读物”。正确用法应该是先翻目录,把整本书的地图印在脑子里,然后按需查阅。
如果只读一部分,我会建议优先看这几块:
- 文件权限与目录配置:必看,这是理解整个系统的基础。
- vim 程序编辑器:不会 vim,你在服务器上连改个配置文件都费劲。
- 认识 Bash 与 Shell:必看,这是和系统打交道的主要方式。
- 账号管理与 ACL:也建议看,多用户权限搞不清楚,后面部署服务会踩很多坑。
- 磁盘与文件系统:第一遍可以跳过,用到时再回来看。
2.3 它的局限性和应对办法
鸟哥这套教程确实有年头了,里面对应的发行版偏旧,服务管理那部分还停留在 SysVinit 时代,而现在主流发行版基本都换成了 systemd。不过这点不需要太担心:基础命令这几十年几乎没变,变的只是服务管理、网络配置这些外围内容。你只要记住一个原则:当教程里的命令或配置在新系统上不生效时,优先查当前发行版的官方文档,而不是怀疑自己操作错了。比如以前用service network restart,现在普遍是systemctl restart NetworkManager,这种差异稍微了解一下就过去了。
3. 第二个网站:Linux Journey——适合不想啃大厚书的人
3.1 用一个“模块化地图”解决知识结构问题
Linux Journey(linuxjourney.com)是我见过最适合当“路书”的免费网站。它把 Linux 学习拆成十几个模块:Command Line、Text-Fu、Advanced Text-Fu、User Management、Permissions、Processes、Networking 等等。每个模块由大量短课时组成,一个课时通常 10 分钟以内,内容不长,但足够把核心概念讲清楚。
对新手来说,这种模块化的设计非常友好。你不需要像看鸟哥那样抱着几百页的体量啃,而是今天学“文件权限”,明天学“进程管理”,每节课都有明确的边界。网站是英文界面为主,但词汇量要求其实很低,反复出现的就是 file、directory、permission、process、network 这些词。认到后面你甚至会发现自己不知不觉记住了不少术语,也算意外收获。
3.2 把课程当“体检表”来用,效率更高
我建议你别把它当课程从头刷到尾,而是当成一份知识体检表。过目录的时候,哪些模块你一看就明白,哪些模块心里发虚,发虚的就是要重点学的。比如你觉得“权限”搞不明白,就去把 Permissions 模块整个看完;你对“进程”只停留在知道ps命令的阶段,就去 Processes 模块补一遍后台进程、信号、job control 这些概念。
每天学 2 到 3 课就够,每学一课,在终端里动手敲一遍相关命令,算是“即学即用”的轻量练习。这样做的好处是:你始终知道自己接下来要学什么,学完有小结,不会迷失在浩如烟海的博客文章里。硬要说缺点的话,Linux Journey 的内容停留在入门到中级之间,对 awk、sed 这种进阶文本处理工具讲得不够深。但这不是它的定位,它的任务就是带你进门,更深的层次要交给下一个网站。
4. 第三个网站:The Linux Command Line——命令行不是背出来的
4.1 它是一本书,却让你在网站上直接免费读
linuxcommand.org 是 William Shotts 写的《The Linux Command Line》的官方免费在线阅读站点。这本书有中文版,译名是《Linux 命令行大全》。我至今觉得,它比大部分付费课程都值。原因很简单:它不是一本命令字典,而是把 shell 当成一门语言来教。这一点非常重要。
举个例子,管道符|。很多教程只会告诉你它的作用,比如“把上一个命令的结果传给下一个命令”。你记住了,但遇到真正的问题时还是不会用。这本书会往前再走一步:每个命令其实都是一个独立进程,管道本质上是把两个进程连接起来,让前一个进程的输出变成后一个进程的输入。当你理解了这层机制,你就不会去纠结“哪些命令能接管道”,而是会想“我想用什么方式处理这段数据流”。
再比如重定向、通配符、变量、循环,这些概念在这本书里不是零散的知识点,而是一套完整的思维链。读完之后你会意识到,命令行不是一个需要“背参数”的地方,而是一个可以通过组合基本元素来解决复杂问题的环境。
4.2 推荐阅读顺序:不用从头到尾读完
这本书篇幅不算短,对初学者来说,一次性读完不现实,也没必要。我建议第一次读的时候,只读这几部分:
- 第一部分:Shell 是什么、文件系统导航命令。
- 第二部分:文件操作、查看文件内容、重定向。
- 第三部分:权限、进程管理。
等你看完这些,已经有了基本操作能力。后续想写脚本、做批量处理的时候,再回去读 shell 脚本、循环、函数、正则表达式那些章节。这本书最棒的一点是,它在网站上免费提供完整内容,你可以随便翻,不用有“读不完就亏了”的心理负担。
4.3 避免“只读不练”的老问题
读这本书最大的坑就是只读不练。因为作者把概念讲得太顺了,你会产生一种“我全都懂了”的错觉。我的建议是:每读完一章,就在自己的机器上故意把命令敲错几次。比如故意删除一个不存在的文件、故意把重定向目标写成一个没有权限的目录,看看系统报什么错,再回到书里理解为什么会报错。错误信息是命令行学习里最好的老师,它比你刷十道题都管用。
5. 第四个网站:OverTheWire Bandit——用游戏喂出肌肉记忆
5.1 一个用命令“打怪闯关”的实战训练场
OverTheWire 是一个安全类学习网站,但它的 Bandit 系列对 Linux 初学者来说,几乎是完美的命令练习场。玩法很简单:通过 SSH 连接到远端服务器,每一关都有一个任务,任务目标通常是找到进入下一关的密码。难度从 level 0 开始,几乎是手把手教你,后面慢慢加深,会用到 grep、find、管道、权限、tar、定时任务这些常见操作。
第一关大概是这种感觉:
ssh bandit0@bandit.labs.overthewire.org -p 2220连上之后,用密码登录(以官网给出的信息为准),然后在目录里找线索:
ls -la cat readme找到下一关的密码,再继续连接。就这样一关一关往下打。整个过程目标非常明确,对初学者来说,这种“即时反馈”是很多教程永远给不了的。你在书里看完“find 按权限找文件”,过十分钟可能就忘了;但如果在 Bandit 里有一关就是要用这个特性才能过关,你可能会记很久。
5.2 零基础能直接玩吗?我的建议是先用它当“检验工具”
我不建议完全零基础的人把 Bandit 当第一站。倒不是因为它有多难,而是第一关就会出现刷屏一样的信息,你如果不认识ls、cat、grep这些命令,会很受挫。更好的节奏是:先快速过一遍 Linux Journey 的前几个模块,或者读一部分 The Linux Command Line,然后再回来打 Bandit。到这个时候,它就不再是“学习材料”,而是你的“阶段测验”:前面学的东西,能不能在陌生环境里灵活组合?
打 Bandit 还有一个特别重要的纪律:卡住的时候,不要第一反应就去搜答案。先用命令自带的-h或者man查帮助,再结合场景想。如果实在没思路,就回到前三个资源里找答案,想清楚原理之后再回游戏里继续。每通过一关,用一句话记录一下“这关考的是什么命令、用在什么场景”,这就是以后最有用的个人笔记。
5.3 使用纪律和需要守住的底线
这里要提醒一句:Bandit 运行在公开的练习服务器上,目的是帮助大家学习命令,不要做闯关之外的任何操作。不是自己的系统,不能执行破坏性命令,也不要尝试影响其他人使用。把这些服务器当成一台真实的业务机器来敬畏,其实也是一种很好的职业习惯。
6. 第五个网站:蓝桥云课——不用装虚拟机也能动手练
6.1 浏览器里直接开一个 Linux 终端,解决“环境装不起来”
蓝桥云课(lanqiao.cn),很早就叫实验楼,是一个在线实验平台。我对它的评价是:它解决了很多新手“死在第零步”的问题。很多初学者最开始碰到的并不是“命令不会”的问题,而是 VMware 装不上、虚拟机开启失败、磁盘分配不想动、双系统又不敢装。这些环境问题非常打击人,尤其是对完全没接触过系统安装的新手,可能折腾两周都进不到真正的 Linux 桌面。
蓝桥云课的思路很简单:所有实验环境都在云端,你打开浏览器,进入一个带“在线环境”的课程,页面右边就会直接出现一个 Linux 终端,课程页左边是讲义。不需要本地装任何虚拟机,不用在硬盘上切分区,只要网络通畅,就能立刻开始敲命令。
6.2 具体怎么选课、怎么做实验
在站内搜“Linux”,能看到大量课程,免费和付费都有。我的建议是不要贪多,选一门带在线实验环境的入门课就够,比如“Linux 基础入门”这类。学的时候用左边看讲义、右边敲命令的节奏,这是一个非常接近真实工作状态的场景:你看一段文档,然后立刻在终端里验证。整个过程不要求你背下来,只是让你把眼睛看到的变成手能敲出来的。
蓝桥云课还有一个优点:哪怕你用的是 Windows 电脑,甚至电脑配置一般,也能有流畅的 Linux 终端。我曾经遇到过读者说“我连 Ubuntu 镜像都下不动”,这种时候,在线平台就是最好的救场方案。
6.3 什么时候该从在线环境转到本地环境
在线平台也有它的局限,比如它给的是已经配置好的容器,你体验不到从磁盘分区、安装引导、配置网络到真正跑起一个系统的全过程。所以我的顺序建议是:先在蓝桥云课这类平台把命令敲熟,等你对 Linux 不再恐惧之后,再在本地用虚拟机装一个真正的发行版,走一遍完整安装流程。这样既避免了入门就被环境劝退,又能补上在线环境给不了的底层体验。到那时候,你会发现蓝桥云课依然有它的用处——当你在本地把系统搞崩了、急需临时验证命令时,它是一个特别好的备用环境。
7. 把五个网站串成一条学习路线
7.1 一张表看清每个网站的分工
| 网站 | 定位 | 适合阶段 | 一句话理由 |
|---|---|---|---|
| 鸟哥的私房菜 | 系统性中文参考书 | 入门到中级随时查阅 | 讲原理,中文环境,查缺补漏特别好用 |
| Linux Journey | 模块化入门导览 | 零基础到入门 | 短课时、结构清晰,当“知识地图”用 |
| The Linux Command Line | 命令行思维提升 | 入门后深入 | 把 shell 当语言讲,建立长期核心能力 |
| OverTheWire Bandit | 游戏化实战练习 | 有基础后检验能力 | 目标明确、反馈及时,形成肌肉记忆 |
| 蓝桥云课 | 在线实验环境 | 任何阶段快速动手 | 解决“装不了环境”的问题,浏览器即开即用 |
7.2 按周安排:两周打底,四周入门
如果你愿意给自己一个月,每周拿出 4 到 5 个晚上、每次 30 分钟到 1 小时,可以参考下面这个节奏:
- 第 1 周:用 Linux Journey 当导航,每天学 2 到 3 课;打开蓝桥云课的入门课程,右边终端同步练习。遇到不理解的概念,去鸟哥的私房菜查对应章节。
- 第 2 周:读 The Linux Command Line 前 8 章,重点看重定向、权限、进程;继续每天敲命令,把常用命令练到不用看笔记也能写出来。
- 第 3 周:开始打 OverTheWire Bandit,每天 1 到 2 关。卡住是正常的,先用
man查命令,再回头翻 Linux Journey 和鸟哥。 - 第 4 周:继续打通 Bandit 的一个小里程碑;然后回到 Linux Journey 把所有没学的模块补齐,或者跟着鸟哥啃一啃 shell script 的基础。
7.3 最后几句大实话
这 5 个资源全部免费,真正稀缺的其实是你每天愿意坐在终端前动手的时间。我在带新人的时候总反复强调一个目标转换:从“我会看教程”换成“我能自己解决一个命令问题”。比如想知道日志目录在哪、想批量改名、想统计某个文件的行数,先不要急着搜答案,用已经学过的命令组合去解决。哪怕第一次用得很笨、敲了十次才成功,也比看答案强十倍。
等你哪天发现自己已经不再需要到处收藏“入门清单”,而是能随手打开man文档查参数,或者遇到报错时能冷静地拆解问题的时候,Linux 入门这件事,就算真正完成了。到那时候,你可以再回头看看这篇文章——希望你记得的不是我推荐了哪些网站,而是“原来我也可以靠自己在终端里解决问题”。