一、运维基础与 Linux 环境搭建
说实话,我见过太多新手一上来就急着装系统、敲命令,结果连最基本的发行版选型都没想清楚。做运维这么多年,我踩过的坑比你们见过的命令还多。今天咱们就从最基础的开始,把 Linux 环境搭建这件事彻底讲明白。
1.1 Linux 发行版选择:别盲目跟风
很多人问我:“哪个 Linux 发行版最好?” 我的回答永远是:没有最好,只有最合适。你想想看,一个做嵌入式开发的和一个跑电商网站的,怎么可能用同一个发行版?
| 发行版 | 适用场景 | 包管理器 | 我的建议 |
|---|---|---|---|
| CentOS / Rocky Linux | 企业服务器、生产环境 | yum / dnf | 稳定第一,适合长期运行 |
| Ubuntu Server | 云原生、容器化部署 | apt | 社区活跃,文档丰富 |
| Debian | 追求极致稳定 | apt | 我个人最信任的发行版 |
| Alpine Linux | Docker 镜像、嵌入式 | apk | 体积小,但 glibc 兼容性要注意 |
我的习惯: 生产环境我首选 Rocky Linux(CentOS 的继承者),开发环境用 Ubuntu。别问我为什么不用 CentOS 8——它已经停止维护了,别踩这个坑。
1.2 SSH 远程连接:你的第一道防线
装好系统后,第一件事就是配 SSH。我记得刚入行时,有次在机房直接拿显示器操作,结果被同事笑话了——真正的运维谁天天蹲机房啊?
SSH 配置的核心就三件事:
- 修改默认端口——22 端口是黑客的第一目标
- 禁用密码登录——只用密钥认证
- 限制登录用户——别让 root 直接登录
# 修改 SSH 配置
sudo vim /etc/ssh/sshd_config
# 关键配置项
Port 2222 # 换个端口,别用 22
PermitRootLogin no # 禁止 root 直接登录
PasswordAuthentication no # 禁用密码认证
PubkeyAuthentication yes # 开启密钥认证
# 重启服务
sudo systemctl restart sshd
我曾经踩过的坑: 有次改完 SSH 配置忘了重启服务,结果新配置没生效,旧连接又断了——直接把自己锁在外面。后来我学乖了:改配置前先开一个备用连接,或者用 screen 保持会话。
1.3 基础命令:每天都要用的家伙
基础命令就像吃饭用的筷子,你得闭着眼睛都能用。我面试运维时,第一关就是考这些命令——不是考你背了多少参数,而是看你能不能解决实际问题。
ls 和 cd:文件系统的眼睛和腿
# 我常用的 ls 组合
ls -lh # 人性化显示文件大小
ls -lt # 按时间排序,最新的在最上面
ls -la # 显示所有文件(包括隐藏文件)
# cd 的小技巧
cd - # 回到上一个目录,超实用
cd ~ # 回家目录
cd .. # 上级目录
grep:文本搜索的瑞士军刀
grep 这东西,说白了就是在一堆文本里找你要的东西。我在排查日志时,一天能用上百次。
# 实战场景:查找 Nginx 错误日志中的 500 错误
grep " 500 " /var/log/nginx/access.log
# 递归搜索整个目录
grep -r "error" /etc/nginx/
# 显示匹配行的上下文
grep -B 5 -A 5 "FATAL" application.log
awk:列处理神器
awk 是我最爱的命令之一。它能把文本按列切分,然后做各种处理。为什么说它强?因为它自带编程能力。
# 打印日志中的第 1 列和第 3 列
awk '{print $1, $3}' access.log
# 按逗号分隔,打印第 2 列
awk -F',' '{print $2}' data.csv
# 实战:统计每个 IP 的访问次数
awk '{print $1}' access.log | sort | uniq -c | sort -rn
sed:流式编辑器
sed 适合做批量文本替换。我经常用它来改配置文件,比手动一个个改快多了。
# 替换文件中的字符串(原地修改)
sed -i 's/old_string/new_string/g' config.conf
# 删除空行
sed -i '/^$/d' file.txt
# 打印第 10 到 20 行
sed -n '10,20p' file.txt
核心思路: 这四个命令要组合着用。比如:
grep "ERROR" log.txt | awk '{print $5}' | sed 's/://g'——先过滤,再提取,最后清理格式。
1.4 Vim 编辑器:运维的吃饭家伙
Vim 这玩意儿,刚开始用的时候真想砸键盘。但一旦上手,你会发现其他编辑器都是浮云。我到现在写配置、改代码,还是用 Vim。
别想着一次学完所有命令,先记住这几个:
| 模式 | 常用操作 | 说明 |
|---|---|---|
| 普通模式 | i 进入插入模式 |
按 i 才能开始打字 |
| 普通模式 | :wq 保存退出 |
写完后记得保存 |
| 普通模式 | dd 删除当前行 |
删错了可以用 u 撤销 |
| 普通模式 | /keyword 搜索 |
按 n 跳到下一个匹配 |
| 普通模式 | yy 复制,p 粘贴 |
复制粘贴的基本操作 |
# Vim 配置示例(~/.vimrc)
set number " 显示行号
set tabstop=4 " Tab 宽度 4 个空格
set shiftwidth=4 " 缩进宽度 4 个空格
set expandtab " 用空格代替 Tab
syntax on " 语法高亮
我的建议: 刚开始别追求花哨的插件。先把
i、:wq、dd、u 这几个记熟,够你应付 80% 的场景了。剩下的,遇到不会的再查。
1.5 本章知识体系
下面这张图把本章的核心知识点串起来了。你可以把它当作一张地图,随时回来看看。
嗯,到这里第一章的内容就差不多了。记住:运维不是背命令,而是理解系统运行的逻辑。你把这些基础打牢了,后面学什么都会很快。