主题
Linux 运维速查
概念 + 命令全合一,面向日常运维。
一、发行版与包管理
| 发行版 | 包管理 | 场景 |
|---|---|---|
| Ubuntu / Debian | apt | 开发机、云服务器(社区主流) |
| Rocky / AlmaLinux | dnf(兼容 yum 命令) | CentOS 替代,企业服务器首选 |
| CentOS 7 | yum | ⚠️ 2024-06 已 EOL,不再有安全更新;建议迁移到 Rocky/Alma |
| Alpine | apk | Docker 基础镜像 |
bash
# 现代推荐(Rocky / Alma / RHEL 8+)
dnf install -y git
# 兼容老版本
yum install -y git # 安装
yum list installed # 已装
yum remove git # 卸载
# apt(Ubuntu / Debian)
apt update && apt install -y git二、文件系统
/ 根
├── /etc 系统配置(nginx, ssh)
├── /home 用户家目录
├── /opt 第三方软件
├── /tmp 临时文件(重启清)
├── /var 可变数据(日志、db)
├── /data 数据盘挂载点
└── /root root 家目录三、权限模型
-rwxr-xr-x owner group file
└┬┘└┬┘└┬┘
所有者 组 其他人
r=4 w=2 x=1bash
chmod 755 file.sh # rwxr-xr-x
chmod 600 key.pem # rw-------
chown user:group file四、文件操作
bash
cd /data && ls -la && pwd
cp -r src dst # 递归复制
mv aaa bbb # 移动/改名
rm -rf dir # 危险!慎用
find / -name "*.log" # 查找
find . -name "*.log" -ls # 查找并显示详情五、查看文件
bash
cat file.log # 全部
less file.log # 翻页(q退出)
head -n 20 file.log # 前20行
tail -n 20 file.log # 后20行
tail -f file.log # 实时跟踪
grep "ERROR" app.log # 找ERROR
grep -r "TODO" src/ # 递归搜索六、进程与端口
bash
# 查进程
ps aux | grep nginx
top # 实时(q退出)
# 查端口
netstat -lnp # 所有监听
ss -ltnp | grep :8080 # 现代推荐
lsof -i tcp:80 # 按端口反查进程
# 连通性
ping -c 3 8.8.8.8 # 外网(很多环境禁ICMP)
telnet <ip> <port> # 测内网端口
curl -I http://localhost # 测HTTP服务七、服务管理(systemctl)
bash
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx # 热重载(不中断)
systemctl status nginx
systemctl enable nginx # 开机自启
systemctl disable nginx八、解压缩
bash
tar -xvf file.tar
tar -xzvf file.tar.gz
unzip file.zip
unrar e file.rar
# 打包
tar -czvf backup.tar.gz /data九、系统资源
bash
free -h # 内存
df -h # 磁盘
du -sh /data # 目录大小
uptime # 运行时间、负载
who && last # 登录记录十、软件安装
bash
# 包管理器装
dnf install -y git nodejs # Rocky/Alma;或 yum / apt
# 手动装 Node.js(二进制,当前推荐 LTS:Node 20 / 22)
# 下载页:https://nodejs.org/zh-cn/download/releases
tar xf node-v22.x.x-linux-x64.tar.xz
ln -s /root/node-v22.x.x-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v22.x.x-linux-x64/bin/npm /usr/local/bin/npm
# 或加到 PATH:vim /etc/profile(追加 export PATH=/root/node-v22.x.x-linux-x64/bin:$PATH)十一、定时任务(crontab)
bash
crontab -e && crontab -l
# 格式:分 时 日 月 星期 命令
30 2 * * * /data/backup.sh >> /data/backup.log 2>&1
0 0 * * 0 /data/clean.sh
*/5 * * * * /data/health_check.sh十二、磁盘挂载
bash
mkfs -t ext4 /dev/vdc
mount /dev/vdc /data
# 开机自动挂载 → /etc/fstab
mount -a # 测试/dev/vdc /data ext4 defaults,nofail 0 2十三、Nginx 源码编译安装
bash
# 解压到 /usr/local/,进目录
./configure --prefix=/usr/local/nginx
make && make install
# 重启
/usr/local/nginx/sbin/nginx -s reload
# 指定配置文件启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf十四、修改 DNS
bash
# 推荐用 resolv.conf(现代发行版的标准做法,重启后仍保留需改 /etc/NetworkManager/)
# 临时生效:
echo "nameserver 223.5.5.5" | sudo tee /etc/resolv.conf
# 或在桌面系统用 NetworkManager(nmtui 命令行、或 nmcli)
sudo nmcli connection show
sudo nmcli connection modify "Wired connection 1" ipv4.dns "223.5.5.5 114.114.114.114"
sudo nmcli connection up "Wired connection 1"
# 老做法(CentOS 7 / RHEL 6):
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 加:DNS1="8.8.8.8"
# systemctl restart network十五、vim 速记
| 操作 | 作用 |
|---|---|
i | 进入编辑模式 |
Esc | 退出编辑模式 |
:wq | 保存退出 |
:q! | 不保存退出 |
:set number | 显示行号 |
/pattern | 搜索(n 下一个) |
dd | 删行 |
u | 撤销 |
十六、堡垒机(Jump Server)
国内企业/政务等保合规必备——不能直接 SSH 到生产机,必须经堡垒机跳转。
- 原因:审计录屏、命令审计、权限管控、收敛入口
- 常见:阿里/腾讯/华为云堡垒机、Jumpserver(开源)
- 形态:Web 控制台,浏览器登录 → 选主机 → 在线终端
- 要点:文件传输走堡垒机 SFTP 代理,不能用本机
scp;没权限先走审批
十七、内网与公网映射
| 需求 | 方案 |
|---|---|
| 云服务对外开放 | EIP + 安全组 + Nginx 反代 + 域名备案 |
| 本地开发/演示/回调 | frp / ngrok / 花生壳 |
| 从外网访问内网管理 | VPN / 堡垒机 Web 终端 |
| 多内网服务统一出口 | Nginx 反向代理 |
常用工具
- frp:自建服务端+客户端,企业常用
- nps:国产内网穿透,带 Web 管理
- ngrok / 花生壳:开箱即用,适合临时演示
- VPN:IPSec / SSL / 零信任,连上即入内网