安装Linux不是选择一个操作系统,而是在重构你对计算世界的认知。你有没有想过,为什么容器能隔离进程?
2019年的那篇教程讲的是如何在硬盘上刻下第一道Linux印记,但今天我们要聊得更深。安装系统是起点,但真正让Linux在DevOps领域发光发热的,是那些藏在文件系统和内核机制里的暗门。
先说一个残酷的事实:大多数Linux新手在安装时只关心桌面环境和软件源。他们用Ubuntu的GUI装机工具,像在Windows里选主题一样点点点。但真正的高手会在/etc/default/grub里玩火——把quiet splash改成nomodeset,只为在旧显卡上看到启动日志。
你有没有试过用dd命令直接烧录镜像?我第一次这么做时,误把/dev/sda当成了/dev/sdb,硬盘直接报废了。但这就是命令行哲学的魅力——它不给你温柔的提示,却能让你在每一次失误中学会敬畏。
安装完系统后,别急着装软件。先看看你用的是哪个init系统。Systemd和SysVinit的区别,不只是启动流程,更是你后续自动化脚本的命门。比如用systemctl管理服务,和用init.d写脚本,完全不同的世界观。
Docker的安装需要Cgroup支持,而Kubernetes集群的搭建又依赖Namespace的精细控制。这些内核特性不是魔法,而是Linux的骨架。你可以在/proc/sys/kernel里看到它们的踪迹,用cat /proc/self/cgroup验证当前进程的隔离层级。
Shell脚本才是DevOps的真正武器。别用GUI工具生成YAML,用sed和awk直接处理配置文件。比如用以下脚本自动设置静态IP:
#!/bin/bash
sudo tee /etc/netplan/01-netcfg.yaml > /dev/null <<EOF
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
EOF
sudo netplan apply
这个脚本比GUI工具更可靠,因为它直接操作netplan的配置文件,而不是依赖图形界面的隐藏逻辑。
但别忘了,Linux是文件的海洋。每个服务、每个进程、每个网络连接,都是文件。你可以在/proc/net/tcp里看到所有TCP连接,用lsof排查谁占用了端口。这种透明性,是Windows无法企及的。
现在问题来了:你愿意为这种透明性付出多少时间成本?
Linux安装,DevOps,Shell脚本,Systemd,Cgroup,Namespace,内核参数,文件系统,Docker,Kubernetes