我曾以为 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那一行看起来很吓人,但它很诚实。
Linux 并没有生气。 Linux 只是很精确。
于是我做了 Linux 所期望的事情:
chmod +x backup.sh然后:
./backup.sh它运行了。
那一刻教会了我一件重要的事: Linux 不会猜测你的意图,它只遵守规则。
当我第一次安装一个服务时,我问了自己一个很蠢的问题:
“它去哪儿了?”
没有 C: 盘。 没有安装向导窗口。 没有快捷方式。
只有……沉默。
后来我才明白,Linux 并不会隐藏文件 —— 它是在分类。
配置文件位于:
/etc日志存放在:
/var/log用户数据保存在:
/home可执行文件存在于:
/bin
/usr/bin当我不再随机乱找,而是开始用结构化的方式思考时,Linux 就不再显得混乱了。
文件并没有丢失。 是我缺少地图。
我的系统很慢。
慢到令人痛苦。
我重启了。 毫无改变。
后来有人给我看了这个命令:
top突然之间,Linux 不再安静了。
我可以看到:
后来我又学会了:
ps aux | grep javaLinux 并不慢。 是某个行为失常的进程在作祟。
那一刻我意识到: Linux 给你的是可见性,而不是借口。
有一天早上,我的 Web 服务器启动不了了。
没有弹窗。 没有警告。
只有一个死掉的服务。
我没有像以前那样重装一切,而是运行了:
systemctl status nginx答案就在那里 —— 一个缺失的配置文件。
我修复了它。 然后重启服务:
systemctl restart nginxLinux 并没有失败。 只是我之前没问对问题。
有好几个月,我一直以为 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: 通过把它弄坏、修好,然后真正理解它。