目 录CONTENT

文章目录

Linux_常用包与命令

hananww
2026-07-10 / 0 评论 / 0 点赞 / 2 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

🚀 Linux 运维终极命令速查表(生产环境版)

安全铁律
✅ rm/mv 操作前务必 ls -l 确认路径

✅ 生产环境配置修改必须走 备份→测试→替换→重载 流程
✅ sudo 后加 -i 进入交互模式(如 sudo -i
云环境必看:阿里云/腾讯云需同步配置安全组


🔍 一、基础目录与文件操作

表格

命令 作用 常用语法 关键示例与避坑指南
pwd 显示当前路径 pwd pwd → /home/user
ls 列出目录内容 ls [选项] [目录] ls -la /home(显示隐藏文件+详情)
避坑ls -l 确认权限再操作
cd 切换目录 cd <路径> cd /home/web/html/halo
mkdir 创建目录 mkdir [-p] 目录名 mkdir -p halo2/uploads(递归创建)
场景:部署前确保目录存在
cp 复制文件/目录 cp [选项] 源 目标 cp config.yaml config.bak(备份配置)
mv 移动/重命名 mv 源 目标 mv old.yaml new.yaml(重命名配置文件)
rm ⚠️ 高危! 删除文件/目录 rm [-rf] 文件或目录 rm -rf /tmp/*(安全清理临时文件)
血泪教训rm -rf / 绝对禁止!
正确流程ls -l /tmp/* → rm -i /tmp/*
cat 查看小文件 cat 文件 cat docker-compose.yaml
less 分页查看大文件 less 文件 less /var/log/syslog(按 q 退出)
tail 查看文件末尾 tail -n 行数 文件 tail -f halo2/logs/app.log(实时日志监控)
场景:Halo启动失败时 tail -f app.log
nano 简单文本编辑器 nano 文件 nano docker-compose.yaml → 保存:Ctrl+O → 回车 → 退出:Ctrl+X
rsync -avz 生产级文件同步(必用) rsync -avz /src/ user@host:/dst/ rsync -avz --progress /data/ /backup/(同步时显示进度)
为什么用它:断点续传+增量同步,避免全量拷贝
find 精准查找文件(必学) find <目录> -name <文件名> find /var/log -name "*.log" -mtime -7(找7天内修改的log)
场景:定位日志文件
tar 压缩/解压(比zip强) tar -czvf file.tar.gz dir/ tar -xzvf app.tar.gz -C /opt/(解压到指定目录)
优势-z gzip压缩,-C 指定路径
lsof -i :8090 端口冲突排查(核心) lsof -i :8090 lsof -i :8090 → 若输出 nginx 1234 root 6u IPv6 12345 0t0 TCP *:8090 (LISTEN) → 确认是 Nginx 占用

💡 文件操作安全流程

bash

编辑

# 1. 确认路径
ls -l /var/log/halo/*.log

# 2. 测试删除(不实际执行)
find /var/log/halo -name "*.log" -mtime +7 -print

# 3. 真正删除
find /var/log/halo -name "*.log" -mtime +7 -exec rm -f {} \;

🐳 二、Docker & Docker Compose 核心命令

Docker 基础命令(必知必会)

表格

命令 作用 常用语法 关键示例与避坑指南
docker --version 查看 Docker 版本 docker --version
docker info 查看 Docker 系统信息 docker info docker info | grep "Storage Driver"(确认存储驱动)
docker images 列出本地镜像 docker images docker images -a(列出所有镜像,包括中间层)
docker rmi 删除镜像 docker rmi 镜像ID docker rmi $(docker images -q)(删除所有镜像)
避坑:删除前确保无容器在使用
docker run 运行新容器 docker run [选项] 镜像 [命令] docker run -d -p 8090:8090 --name halo halo:latest
关键-d 后台运行,-p 端口映射,--name 命名容器
docker stop 停止容器 docker stop 容器名 docker stop halo(停止halo容器)
docker start 启动容器 docker start 容器名 docker start halo
docker restart 重启容器 docker restart 容器名 docker restart halo(与Compose命令相同)
docker rm 删除容器 docker rm 容器名 docker rm -f halo(强制删除运行中容器)
docker volume ls 列出数据卷 docker volume ls docker volume ls -f "dangling=true"(列出未使用卷)
docker volume inspect 查看数据卷详情 docker volume inspect 数据卷名 docker volume inspect halo_data(确认挂载路径)
docker network ls 列出网络 docker network ls docker network inspect bridge(查看默认网络)

Docker Compose 命令(生产环境必备)

🔴 技巧1
为了方便管理,可以更改本地挂载目录

version: '3'    
services:    
  app:    
    image: 'jc21/nginx-proxy-manager:latest'    
    restart: unless-stopped    
    ports:    
      - '80:80'    
      - '443:443'    
      - '8100:81'        # 管理界面改为 8100(避免和某些服务冲突)    
    volumes:    
      - /home/NginxProxyManager:/data    # 改引号左边的
      - /home/NginxProxyManager:/etc/letsencrypt
命令 作用 常用语法 关键示例与避坑指南
docker compose version 查看 Compose 版本 docker compose version
docker compose up -d 后台启动所有服务 docker compose up -d 必须在 docker-compose.yml 所在目录执行
场景:Halo部署后启动服务
docker compose down 停止并删除容器(不删数据卷 docker compose down 数据安全:保留数据库/配置
场景:日常维护重启服务
docker compose down -v 彻底删除(含数据卷) docker compose down -v ⚠️ 数据会丢失! 仅用于全新部署重置环境
docker compose ps 查看容器状态 docker compose ps docker compose ps | grep healthy(快速确认健康状态)
docker compose logs -f <服务名> 实时查看日志(排错神器) docker compose logs -f halo Halo启动失败必用docker compose logs -f halo --tail=50(查看最后50行)
docker compose restart <服务名> 重启某个服务 docker compose restart halo 场景:修改配置后(如 docker-compose.yml)必须重启服务
docker compose exec <服务名> sh 进入容器调试 docker compose exec halo sh 场景:检查内部文件 ls /app 或执行命令 curl localhost:8090
docker compose build 重建镜像(更新配置后) docker compose build --no-cache docker compose build --no-cache halo(强制重新构建halo服务)
为什么用:避免缓存旧依赖
docker compose pull 拉取最新镜像(不启动) docker compose pull docker compose pull nginx(单独更新nginx镜像)
docker system df 查看 Docker 磁盘占用 docker system df 清理前必看docker system df → docker image prune -a(释放空间)
docker inspect -f '{{ .NetworkSettings.IPAddress }}' halo 获取容器 IP(云环境必需) docker inspect -f '{{ .NetworkSettings.IPAddress }}' halo ✅ 云上容器 IP 不固定,需动态获取(用于配置 Nginx 反向代理)
docker volume create halo_data 安全备份数据卷 docker volume create halo_data ✅ 数据安全核心down -v 会删数据卷 → 先备份再删!
docker compose config 验证 Compose 文件 docker compose config docker compose config | grep "ports"(检查端口映射)
场景:部署前验证配置
docker compose pull --no-cache 强制拉取最新镜像 docker compose pull --no-cache docker compose pull --no-cache halo(避免缓存旧镜像)
docker compose up --build 构建+启动 docker compose up --build 场景:修改Dockerfile后启动服务
关键--build 会重建镜像

基础容器删除命令(Docker)

表格

命令 作用 适用场景 关键示例 避坑指南
docker rm <容器ID/名称> 删除已停止的容器 常规删除 docker rm halo_1 ❌ 不能删除正在运行的容器
docker rm -f <容器ID/名称> 强制删除容器(包括运行中) 紧急情况 docker rm -f halo_1 ⚠️ 数据可能丢失,谨慎使用
docker container prune 批量删除所有已停止的容器 日常清理 docker container prune ✅ 安全,只删除已停止容器
docker container prune -f 无确认提示批量删除 自动化脚本 docker container prune -f ✅ 适合CI/CD流程
docker rm -f $(docker ps -aq) 删除所有容器(包括运行中的) 重置环境 docker rm -f $(docker ps -aq) ⚠️ 数据全部丢失,仅用于测试环境
docker rmi <镜像ID/名称> 删除镜像 清理镜像 docker rmi halo:latest ❌ 删除镜像前需确保无容器使用

💡 删除容器前必做检查

# 1. 确认容器状态
docker ps -a | grep halo

# 2. 检查容器是否在运行
docker ps | grep halo

# 3. 如果容器在运行,先停止
docker stop halo

Docker Compose 容器删除命令

命令 作用 适用场景 关键示例 避坑指南
docker-compose rm 删除已停止的Compose项目容器 常规清理 docker-compose rm ✅ 仅删除已停止的容器
docker-compose rm -f 强制删除所有Compose容器(包括运行中的) 快速重置 docker-compose rm -f ⚠️ 数据可能丢失,慎用
docker-compose rm -v 删除容器+关联数据卷 全新部署 docker-compose rm -v ⚠️ 数据会永久丢失,生产环境禁用
docker-compose down 停止并删除容器(不删数据卷 日常维护 docker-compose down ✅ 保留数据,安全
docker-compose down -v 停止并删除容器+数据卷 彻底重置 docker-compose down -v ⚠️ 数据会丢失,仅用于全新部署
docker-compose rm <服务名> 仅删除指定服务的容器 精准操作 docker-compose rm db ✅ 保留其他服务

💡 Docker Compose 删除流程

# 1. 先停止服务
docker-compose stop

# 2. 确认容器状态
docker-compose ps

# 3. 删除容器(保留数据卷)
docker-compose rm

# 4. 如果需要彻底删除(数据丢失)
docker-compose down -v

📦 三、软件包管理(Ubuntu/Debian)

表格

命令 作用 关键示例
sudo apt update 更新软件包列表 sudo apt update(每日必做)
sudo apt install 软件名 安装软件(如 curlgit sudo apt install curl git nano(批量安装)
sudo apt remove 软件名 卸载软件(保留配置) sudo apt remove docker(保留配置,方便重装)
sudo apt purge 软件名 彻底卸载(含配置) sudo apt purge docker(彻底清除)
sudo apt list --installed | grep docker 查看已安装的包 sudo apt list --installed | grep docker(确认Docker是否安装)

🔌 四、网络与端口排查

表格

命令 作用 关键示例与避坑指南
ip a / ip addr 查看 IP 地址(替代 ifconfig ip addr show eth0(查看网卡IP)
ping 域名或IP 测试网络连通性 ping -c 4 www.baidu.com(发送4次包)
curl -I 网址 查看 HTTP 响应头 curl -I http://localhost:8090(确认Halo服务是否启动)
场景HTTP/1.1 200 OK 表示成功
ss -tuln 查看监听端口(比 netstat 快) ss -tuln | grep 8090(精准过滤端口)
场景:Halo无法访问时检查端口是否监听
ss -tuln | awk '{print $5}' | sort | uniq -c 统计端口占用 ss -tuln | awk '{print $5}' | sort | uniq -c(发现端口冲突)
curl -v http://localhost:8090 详细查看HTTP请求(含headers) curl -v -X POST -H "Content-Type: application/json" -d '{"key":"val"}' http://localhost:8090/api
nc -zv 127.0.0.1 8090 快速测试端口连通性(无依赖) nc -zv 127.0.0.1 8090(替代 telnet
mtr -z -w 1000 -c 10 8.8.8.8 动态路由追踪(比 traceroute 强) mtr -z -w 1000 -c 10 8.8.8.8 → 发现 192.168.1.1 丢包 50% → 确认本地路由器故障
tcpdump -i eth0 port 8090 -w debug.pcap 抓包分析(深度排错) tcpdump -i any port 8090 -nn -s 0 -w debug.pcap → 用 Wireshark 分析 HTTP 404 原因

⚠️ 云环境端口故障排查流程

生成失败


🔐 五、权限与用户

表格

命令 作用 关键配置示例
sudo 临时提权 sudo docker compose up -d(避免用root)
sudo usermod -aG docker $USER 将用户加入 docker 组 首次安装Docker后必做:免 sudo 运行 docker 命令
chmod 600 ~/.ssh/id_rsa SSH密钥安全权限 普通用户 chmod 644 会导致 ssh 拒绝连接(必须 600
chmod +x script.sh 加执行权限(脚本必备) chmod +x deploy.sh(确保脚本能执行)
chown www-data:www-data uploads/ 修改文件所有者 chown www-data:www-data /var/www/halo/uploads(Web服务目录权限)
sudo -u www-data -i 以特定用户身份执行命令 sudo -u www-data -i(切换到web服务用户,避免用root操作)
getfacl file / setfacl -m u:user:rwx file ACL高级权限管理 setfacl -m u:nginx:rwx /var/www/html(给nginx用户单独读写权限)
sudo ufw default deny incoming 默认拒绝所有入站连接 sudo ufw default deny incoming → sudo ufw default allow outgoing安全基石

🔒 SSH 安全加固配置

bash

编辑

# /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
AllowUsers admin

# 重启 SSH
sudo systemctl restart sshd

📊 六、系统信息与资源监控

表格

命令 作用 关键示例
df -h 查看磁盘空间(人类可读) df -h(生产环境每日必看)
du -sh 目录 查看目录大小 du -sh /var/log(定位大日志文件)
top / htop 查看 CPU/内存使用 htop(更友好,安装:sudo apt install htop
场景htop → 按 F6 → MEM 排序
free -h 查看内存使用 free -h(确认是否内存不足)
iotop -o 按进程查看磁盘IO iotop -o(发现 /var/log 疯狂写入时用)
lsof -i :8090 查看占用端口的进程 lsof -i :8090(快速定位冲突服务,如Nginx和Halo都占8090)
journalctl -u docker Docker服务日志(Systemd) journalctl -u docker --since "1 hour ago"(比 docker logs 更全面)
dstat -cdngy --top-cpu 全能系统监控(替代 top) dstat -cdngy --top-cpu → 按 F1 切换 CPU/内存/磁盘/网络视图(实时排障神器

⚠️ 七、高危操作安全流程(终极版)

bash

编辑

# === 1. 配置文件修改(以 Nginx 为例) ===
sudo cp -a /etc/nginx /etc/nginx.bak  # 备份
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.tmp
sudo nginx -t -c /etc/nginx/nginx.conf.tmp  # 测试配置
if [ $? -eq 0 ]; then
  sudo mv /etc/nginx/nginx.conf.tmp /etc/nginx/nginx.conf
  sudo systemctl reload nginx
else
  echo "❌ 配置错误!回滚备份"
  sudo cp -a /etc/nginx.bak/nginx.conf /etc/nginx/nginx.conf
  sudo systemctl reload nginx
fi

# === 2. 数据库迁移(Halo 专用) ===
# 2.1 备份数据卷
docker volume create halo_data_backup
docker run --rm -v halo_data:/data -v halo_data_backup:/backup alpine tar cvf /backup/backup.tar -C /data .

# 2.2 云环境迁移(阿里云 ECS 间)
scp -P 2222 halo_data_backup/backup.tar user@target-ecs:/tmp/
ssh -p 2222 user@target-ecs "docker volume create halo_data_new"
ssh -p 2222 user@target-ecs "docker run --rm -v halo_data_new:/data -v /tmp/backup.tar:/backup alpine tar xvf /backup/backup.tar -C /data"

🌐 八、UFW 防火墙命令(Ubuntu 专属)

表格

命令 作用 关键示例
sudo ufw status verbose 查看防火墙状态(详细) sudo ufw status verbose(确认规则是否生效)
sudo ufw allow 8090/tcp 允许 Halo 端口(云环境必需) sudo ufw allow 8090/tcp必须在安全组放行后执行!
sudo ufw allow 22/tcp 允许 SSH(救命命令!) sudo ufw allow 22/tcp(避免锁死服务器)
sudo ufw enable 启用防火墙(首次启用) sudo ufw enable必须在放行 SSH 后执行
sudo ufw disable 关闭防火墙(紧急情况) sudo ufw disable(仅限紧急情况,需立即重新放行 SSH)
sudo ufw status numbered 查看规则编号 sudo ufw status numbered(删除规则前必须查看)
sudo ufw delete 3 删除指定规则(按编号) sudo ufw delete 3(删除第 3 条规则)
sudo ufw default deny incoming 默认拒绝所有入站连接(安全基石) sudo ufw default deny incoming → sudo ufw default allow outgoing安全基石

💡 UFW 防火墙安全流程

bash

编辑

sudo ufw allow 22/tcp    # 先放行 SSH(救命!)
sudo ufw allow 8090/tcp  # 再放行应用端口
sudo ufw enable          # 最后启用防火墙

💎 附:运维效率神器清单

表格

工具 安装命令 作用 为什么必装
htop sudo apt install htop 彩色 CPU/内存监控,按 F6 排序内存 比 top 快 3 倍,实时定位进程
zsh sudo apt install zsh 终端体验升级,搭配 oh-my-zsh(自动补全+语法高亮) 90% 运维人员必备,减少命令输入错误
tmux sudo apt install tmux 会话管理神器tmux new -s dev → tmux attach -t dev 防止 SSH 断开导致任务中断(生产环境必备)
fail2ban sudo apt install fail2ban 自动封禁暴力破解 IP(SSH 保护) 云服务器安全底线,避免被机器人攻击

最后总结

  1. 云环境 = 安全组 + UFW + 防火墙三重防护(缺一不可)
  2. Docker 数据安全 = 备份卷 + down -v 谨慎使用
  3. 故障排查 = 网络(mtr)→ 端口(ss)→ 服务(logs)→ 配置(验证流程)
  4. 所有高危操作必须走 备份→测试→替换→重载 流程
0

评论区