零基础学Linux运维:从命令行恐惧到能独立排障的路径
刚买完一台秀米云香港服务器,SSH登进去,光标在#后面一闪一闪,很多人就停在这一步了。教程让你装CentOS或Ubuntu,装完却不告诉你下一步敲什么。我见过不少这样的状态:命令能背几条,真出问题还是只会重启。所以这篇不讲概念史,只讲一条能走通的路——从敲命令到能自己定位故障,中间该练什么、按什么顺序练。
我一般把自学拆成三段。第一段只跟命令行打交道,第二段让一个网站真正跑起来,第三段专门练排障。跳过任何一段,后面都会卡住。
第一阶段:先把20个命令练到不用想
别一上来就啃服务配置。先把文件系统和权限弄明白,这是后面所有操作的底子。
- 看和找:ls -lh、cd、pwd、find、grep
- 改和删:cp、mv、rm -rf(这条要练到有肌肉记忆,敲之前先确认路径)
- 权限:chmod、chown,把 755 和 644 的区别搞懂
- 文本编辑:vim 至少会 i 进入、Esc 退出、:wq 保存
这段大概花一到两周。判断自己过关的标准很简单:想找某个文件不用查搜索引擎,条件反射就能拼出find的参数。
vim 是绕不过去的。有人想用 nano 替代,短期可以,但服务器上默认未必装了 nano,vim 基本都在。花一个下午把移动、删除、保存这几个动作练熟,值。
第二阶段:让一个站真正跑起来
命令练顺了,就该搭环境。LNMP 或 LAMP 选一个,我通常先上 Nginx,配置直观,出问题日志也好读。
这一段的重点不是「装成功」,而是理解数据怎么流。用户请求进来,Nginx 怎么转发给 PHP,PHP 又怎么连上 MySQL——把这条链路走一遍,比背十遍架构图有用。
几个必须亲手做的动作:
- 用 systemctl start 启服务,再用 systemctl enable 设开机自启,搞懂两者区别
- 改一次 Nginx 的 server 块,把站点根目录指到你自己的路径
- 手动建一个 MySQL 库和用户,授权给远程或本地连接
- 配一次防火墙,放行 80 和 443,再确认端口真的开了
如果你手上是台海外机器,这套流程跑通的成本其实很低。像 秀米云香港服务器,Gold-6133*2 配 64G 内存、20M 带宽,月付 $319.00,用来练手绰绰有余,跑个 LNMP 加几个测试站不吃力。选它的原因是配置给的余量够,练到后面加 Docker、加反代都不用换机器。
第三阶段:排障才是分水岭
能搭起来的人不少,能修好的人不多,差别就在这一段。
排障的核心逻辑是分层定位:先确认进程在不在,再看端口通不通,最后看日志报了什
第一层,进程和资源。top 或 htop 看 CPU 和内存占用,free -h 看内存余量,df -h 看磁盘。磁盘满了是新手最常踩的坑,日志文件一天涨几个 G 很常见,df -h 一敲就知道。
第二层,端口和连接。ss -tlnp 看谁在监听哪个端口,ss -tn 看当前连接。服务明明启动了却访问不了,八成是监听在 127.0.0.1 而不是 0.0.0.0,或者防火墙拦了。这条我踩过不止一次。
第三层,日志。journalctl -u nginx 看服务日志,Nginx 自己的 access log 和 error log 在 /var/log/nginx/。报错信息通常直接告诉你哪一行配置写错了,照着改就行,不用猜。
这三层练熟,大部分线上问题你都能自己定位。剩下的是经验问题,靠时间堆。
要不要报班,以及大概多久能上手
我的判断是:纯自学完全够,前提是别只看视频不动手。视频看十小时不如自己敲坏两次环境再修好。
时间上,每天投入两小时,一个月能把前两段走完,第三段要靠真实故障喂。所以更实际的做法是找台便宜机器长期挂着,哪怕只是跑个博客,出问题的机会也比本地虚拟机多。
如果预算有限,从一台入门海外机器起步就行。像 秀米云韩国首尔裸机云,E5-2680 配 32G 内存、20M 带宽,月付 $119.00,延迟对国内也还算友好,拿来练手和挂测试站都合适。别一上来就买顶配,你还没到需要那点性能的阶段。
最后给一句能直接执行的结论:先把 vim 和权限命令练熟,再搭一次 LNMP 跑通链路,最后逼自己在 top、ss、journalctl 三条命令里找答案。走完这三步,你已经比只会重启的人强出一截。