零基础入门Linux运维,先把这套环境搭起来再说
很多人卡在第一步:命令敲了不少,一到真机器上就不知道从哪下手。装系统、配网络、开端口、看日志,每一件都像小事,凑在一起就是一堵墙。这篇把零基础到能独当一面的路径拆开讲,重点放在「先动手搭环境,再回头补理论」,而不是抱着命令手册从第一页背到最后一页。
先解决机器从哪来,别在本地虚拟机里耗太久
本地虚拟机跑Linux,练命令没问题,但一到真实网络环境就露馅。防火墙规则、SSH端口、DNS解析、带宽限制,这些只有在公网机器上才会真正遇到。我一般建议新手直接开一台按月的独立服务器,配置不用高,2核4G、40G系统盘足够跑Nginx、MySQL、Redis和Docker。
为什么不推荐一开始就买大配置?因为初学阶段你根本用不满,多花的钱换不回学习效果。反过来,机器太差也不行——1核1G编译个软件能等到你怀疑人生,内存不够MySQL直接起不来,那种挫败感比学不会命令更劝退。
选机器看两点:能不能重装系统,以及有没有独立的公网IP。前者让你折腾坏了随时推倒重来,后者让你能真正练端口映射和防火墙。按我的经验,前两三个月用最低配就够,等你要跑Docker多容器或者练K8s了再升级。
如果你练的是多站点部署或者需要绑定多个IP做测试,香港自营物理服务器(100M)⑦这种双路金牌6138、64G内存的机器,月付¥4550.00,适合已经过了入门阶段、要模拟真实生产环境的场景。新手阶段不必上这个,先把手练熟。
把SSH密钥登录和防火墙做对,这一步能省掉后面无数麻烦
新手最容易忽略的就是登录方式。密码登录方便,但公网机器每天被扫几百次是常态。换成密钥登录,再关掉密码认证,能挡掉绝大多数自动化扫描。
- 本地生成密钥对,把公钥丢到服务器的~/.ssh/authorized_keys
- 改/etc/ssh/sshd_config,把PasswordAuthentication设为no
- 改完先别关当前会话,另开一个窗口验证新登录能通,再断开旧的
防火墙同理。很多人一上来就把所有端口放开,图省事。正确做法是先只放SSH,装好Nginx再放80和443,数据库端口永远不要对公网开。iptables和firewalld选一个学透就行,不用两个都啃。
这一步的代价是什么?多花半小时配规则,换回的是后面不用半夜爬起来处理入侵。我见过太多因为22端口弱密码被爆破、机器拿去挖矿的例子,重装一次系统加恢复数据,远比提前配好防火墙费时间。
命令不用背,按场景分组记才记得住
Linux命令上千个,常用的其实就几十个。按场景分组比按字母顺序背高效得多。
文件操作类:ls、cd、cp、mv、rm、find、tar。这组命令每天都要用,敲到形成肌肉记忆为止。权限类:chmod、chown、umask,理解rwx对文件和目录的区别是关键,目录的x权限决定能不能进去。进程类:ps、top、kill、systemctl,服务起不来的时候全靠这几个排查。
网络类:ping、curl、netstat或ss、tcpdump。curl用来测接口通不通,ss看端口监听状态,tcpdump抓包定位连接问题。日志类:tail -f、grep、journalctl。看日志是运维日常占比最高的动作,tail配合grep过滤关键字,能解决八成排障场景。
这些命令不用一次学完。搭环境的过程中自然遇到,遇到再查,查完记下来。比对着命令大全抄一遍管用得多。
脚本和自动化,是区分「会用」和「会运维」的分水岭
能手动敲命令只是入门,能写成脚本批量执行才算真正上手。Shell脚本不用学得多深,掌握变量、循环、条件判断、函数这四样,就能写出日常用的备份脚本、日志清理脚本、服务健康检查脚本。
比如每天凌晨备份数据库并保留最近七天,手动做要记得住,写成脚本丢进crontab就一劳永逸。再进一步是学Ansible这类配置管理工具,一台机器手动配还行,十台机器就得靠自动化。这阶段可以开始接触Docker和CI/CD,但别贪多,先把Shell写顺。
学到这一步,你对机器的掌控感会完全不一样。之前是出问题再修,现在是提前把规则定好让它按预期跑。这也是运维和普通用户最大的区别。
给一个直接的结论:零基础起步,先花每月几十块开一台2核4G的独立服务器,把SSH密钥、防火墙、Nginx部署这三件事跑通,再按场景补命令,最后练Shell脚本。预算紧就按月付,练熟了再换配置。别一上来买年付大机器,也别在本地虚拟机里耗超过一个月——真实环境的问题,只有在真实机器上才会暴露。