Linux 很难 —— 直到你理解这 7 件事
我曾以为 Linux 在惩罚我 Linux 第一次对我说“Permission denied”的时候,我是往心里去的。
我确信自己把命令敲对了。 我逐字逐句地照着教程操作。 可 Linux 依然拒绝配合。
我盯着终端,坚信 Linux 就是被设计来折磨新手的。 那天晚上,我差点把系统抹掉,回到 Windows。
而我当时不知道的一件事其实很简单:
Linux 并不是在阻止我。 Linux 只是在教我一条我从未学过的规则。
按回车键或点击以全尺寸查看图片
权限 —— 每个新手撞上的第一堵墙
我当时正试图运行一个 shell 脚本。
./backup.shLinux 立刻回复:
bash: ./backup.sh: Permission denied我又试了一次。 结果一样。
我在不明所以的情况下加上了 sudo。
sudo ./backup.sh它成功运行了,但我心里很不舒服。 就像作弊了一样。
这时,一位资深工程师问了我一个问题:
“你知道这个文件的所有者是谁吗?”
我不知道。
权限终于讲通的那一天
在 Linux 中,每个文件都会回答三个问题:
- 谁拥有我?
- 还有谁被允许?
- 他们具体被允许做什么?
我运行了:
ls -l backup.sh输出是:
-rw-r--r-- 1 pawan pawan 2456 backup.sh那一行看起来很吓人,但它很诚实。
- rw- → 我可以读和写
- 没有 x → 我不能执行
Linux 并没有生气。 Linux 只是很精确。
于是我做了 Linux 所期望的事情:
chmod +x backup.sh然后:
./backup.sh它运行了。
那一刻教会了我一件重要的事: Linux 不会猜测你的意图,它只遵守规则。
(文件系统)为什么 Linux 一开始让人感觉“迷路”
当我第一次安装一个服务时,我问了自己一个很蠢的问题:
“它去哪儿了?”
没有 C: 盘。 没有安装向导窗口。 没有快捷方式。
只有……沉默。
后来我才明白,Linux 并不会隐藏文件 —— 它是在分类。
配置文件位于:
/etc日志存放在:
/var/log用户数据保存在:
/home可执行文件存在于:
/bin
/usr/bin当我不再随机乱找,而是开始用结构化的方式思考时,Linux 就不再显得混乱了。
文件并没有丢失。 是我缺少地图。
(进程)系统内部看不见的人群
我的系统很慢。
慢到令人痛苦。
我重启了。 毫无改变。
后来有人给我看了这个命令:
top突然之间,Linux 不再安静了。
我可以看到:
- CPU 使用率
- 内存使用率
- 吃光资源的异常进程
后来我又学会了:
ps aux | grep javaLinux 并不慢。 是某个行为失常的进程在作祟。
那一刻我意识到: Linux 给你的是可见性,而不是借口。
(服务)“昨天还能用”的真正原因
有一天早上,我的 Web 服务器启动不了了。
没有弹窗。 没有警告。
只有一个死掉的服务。
我没有像以前那样重装一切,而是运行了:
systemctl status nginx答案就在那里 —— 一个缺失的配置文件。
我修复了它。 然后重启服务:
systemctl restart nginxLinux 并没有失败。 只是我之前没问对问题。
(日志)Linux 总是在解释自己
有好几个月,我一直以为 Linux“从不告诉你哪里错了”。
这是我最大的误解。
Linux 会告诉你一切 —— 都在日志里。
当东西出问题时,我学会去看:
journalctl -xe或者:
tail -f /var/log/syslog每一次崩溃都有故事。 每一次失败都会留下痕迹。
Linux 不会大声喊错误。 它会把错误记录下来。
(网络)“在我机器上能跑”
服务在运行。 端口是开的。 但就是连不上。
我学会先检查最基本的东西:
ip a
ss -tuln
ping google.com然后是防火墙:
firewall-cmd --list-all当我把网络当成逻辑问题来对待时,它就不再是魔法了。
改变一切的思维转变
Linux 并不难。 Linux 是诚实的。
它不假设。 它不猜测。 它不会保护你免于做出错误决定。
当我不再和 Linux 对抗,而是开始理解它时,一切都改变了。
我并没有变聪明。 我只是变得有认知了。
我为什么要写这个系列
每一个 Linux 新手都会经历这个阶段:
- 自我怀疑
- 困惑
- 无声的挫败感
如果你正在经历这些 —— 那不是失败。
你正在用专业人士的方式学习 Linux: 通过把它弄坏、修好,然后真正理解它。