对新手来说,Linux 的名声不怎么好。
不是因为它很难。也不是因为它只属于“黑客”或“系统管理员”。而是因为大多数人学习 Linux 的方式糟糕透顶。
如果你曾经安装过 Linux,照着教程复制粘贴各种命令,依然觉得自己是在“瞎猜”系统到底发生了什么,你并不孤单。这不是你的问题——而是 Linux 的教育方式出了问题。
我知道这一点,因为我曾经就是那样的人。
我会安装 Ubuntu;我会运行 ls、cd、sudo apt install;我甚至能把系统搞崩,然后莫名其妙地修好……但很长一段时间里,我并不真正理解 Linux。我只是在“操作”它,而不是用 Linux 的思维方式去理解它。
而这种区别,对掌握Linux很重要,大部分人都没有意识到。
1 学习 Linux的真正问题
大多数 Linux 教程关注的是命令,而不是概念。
它们教你输入什么,却不告诉你为什么要这么输入。
于是,你只是记住了一堆零散片段:
- 这个命令用来安装软件- 那个命令用来列出文件- 另一个命令用来修改权限
可是 Linux 本身依然模糊不清。你看不到整个系统是如何运作的,你不理解文件、用户、进程和权限之间是怎样相互关联的。一旦系统出问题,Google 就成了你的操作系统。
这也是为什么那么多人说:
“我用了好多年 Linux,还是感觉像个新手。”
这并不是什么冒名顶替综合征(impostor syndrome),而是真实存在的认知断层。
2 Linux 不是一个应用程序——它是一种组织系统的方式
这里有一个会彻底改变认知的思维转变:
- Linux 不是你“使用”的东西- Linux 是你“导航”的东西
从核心上讲,Linux 简单得近乎残酷:
- 万物皆文件- 每个动作都是进程- 每个用户都有权限边界- 只要你有权限,任何错误都被允许发生
一旦你接受了这一点,Linux 就不再显得敌对,而是变得可预测。
我们来把这个论点落到现实里。
当你打开文件管理器、点击文件夹、拖动文件时,你并没有做什么特殊的事情,你只是在和终端所看到的同一个文件系统交互而已。终端并不是什么“高级模式”——它只是“直接模式”。
这也是为什么下面这个命令,比很多人意识到的重要得多:
它不只是显示一个路径,它其实是在回答一个更深层的问题:
“我现在到底位于这个系统的什么位置?”
Linux 总是假定你知道身在何处。一旦你不再忽视这个问题,其他很多东西就会变得有意义……好吧,至少大部分时候会。
3 为什么新手应该花更多时间使用终端,而不是更少
图形界面让 Linux 看起来更友好——但它也隐藏了底层逻辑。
而终端则恰恰相反,它很诚实,诚实得让人痛苦。
当你输入:
你并不只是查看文件列表,你看到的其实是:
仅仅这一条命令,教会你的 Linux 知识,比点一个小时鼠标还要多。
而当你运行:
你也不是故作幽默:笑话,我不知道我是谁?
你是在回答Linux世界一个极其关键的问题:
“现在究竟是哪个用户在做决定?”
Linux 不关心“你”是谁。
它关心的是“用户(user)”是谁。
越早理解这一点,未来就越少走弯路。
4 权限:每个人都会撞上的那堵墙(学会放手是件好事)
有时候,Linux 会对所有人说同一句话:
“Permission denied(权限被拒绝)”。
新手讨厌它。老手依赖它。
权限机制是 Linux 用来保护系统、防止你“误伤”它的方式。说实话,你应该感谢遇到它。
当你看到这样的东西:
一旦你理解了权限机制,Linux 就不再显得“莫名其妙”,错误信息会从“障碍”变成“解释”。当然,sudo的确存在——如果太早依赖它,就像开车永远只挂一档。你可以前进,但永远学不会真正掌控系统。
5 大多数人并不是在学习 Linux,只是在收集小技巧
这两者是有区别的。
技巧只能让你今天脱困。理解,才让你明天依然不被困住。
如果你不知道:
你并不算是在学习 Linux——你只是在“借用”它。这没什么问题……直到你想要:
到了那个阶段,停留在表面的知识体系就会瞬间崩塌。
6 真正对我管用的东西(我希望更早明白的事)
Linux 真正让我开窍的时刻,不是在我学会了很多命令以后。
而是在我不再问:
“我该用什么命令?”
转而开始问:
“Linux 现在到底在做什么?”
这种思维方式的转变,会改变一切。
你不再只是死记硬背:
systemctl restart apache2
你开始思考:
Linux 会奖励好奇心,惩罚走捷径。
7 如果你真的想学好 Linux,就从这里开始
不是频繁更换发行版。不是折腾炫酷的桌面环境。不是看那些“50 个必须掌握的 Linux 命令”。
真正该开始的是:
Linux 并不难——它只是很诚实。
当你学会如何和它沟通时,它会成为你用过的最强大、最有掌控感的工具。
参考
https://medium.com/linux-for-everyone/i-wish-someone-had-told-me-this-before-i-learned-linux-37138e83bbb1