目 录CONTENT

文章目录

Linux 命令速查表

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

安全铁律

✅ 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 命令(生产环境必备)

表格

命令

作用

常用语法

关键示例与避坑指南

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 安全加固配置

# /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/内存/磁盘/网络视图(实时排障神器


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

# === 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 防火墙安全流程

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 保护)

云服务器安全底线,避免被机器人攻击

0

评论区