阿里云轻量 2核2G 38元/年起 · 新客秒杀限量 去看看

Linux云服务器运维必备命令速查手册

WeHosts技术团队·2026年3月26日·更新于 2026年10月21日

Linux 云服务器运维必备命令速查手册

快速结论

  • 掌握本文约 60 条核心命令,可以处理 90% 的日常运维场景
  • 首先学会:SSH 登录、文件操作、进程管理、日志查看
  • 出问题时:先看日志(tail -f /var/log/),再看资源(top / df -h)
  • 命令不熟时,用 man <命令> 或 <命令> --help 查看帮助

一、SSH 远程连接

# 基础 SSH 登录
ssh root@your-server-ip

# 指定端口(默认 22,建议修改为其他端口)
ssh -p 2222 root@your-server-ip

# 使用密钥文件登录(更安全)
ssh -i ~/.ssh/my_key.pem root@your-server-ip

# 保持连接不断开(心跳设置)
ssh -o ServerAliveInterval=60 root@your-server-ip

# 通过跳板机登录内网服务器
ssh -J jump@jump-host.com root@internal-server-ip

# 复制文件到服务器(SCP)
scp local_file.txt root@your-server-ip:/remote/path/

# 从服务器下载文件
scp root@your-server-ip:/remote/file.txt ./local/

# 使用 rsync 同步目录(增量同步,更高效)
rsync -avz --progress ./local-dir/ root@your-server-ip:/remote-dir/

SSH 免密登录与公钥配置

# 1. 本地生成密钥对(ed25519 更短更安全;一路回车即可)
ssh-keygen -t ed25519 -C "notes@laptop"

# 2. 把公钥上传到服务器(自动写入 authorized_keys)
ssh-copy-id root@your-server-ip

# 没有 ssh-copy-id 时手动追加
cat ~/.ssh/id_ed25519.pub | ssh root@your-server-ip \
  "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

# 3. 修正权限(权限过宽会被拒绝登录)
ssh root@your-server-ip "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

# 4. 验证:不再提示输入密码即成功
ssh root@your-server-ip

确认密钥能登录后,再考虑关闭密码登录(顺序反了会把自己锁在门外):

# 服务器上编辑 /etc/ssh/sshd_config
# 设置 PubkeyAuthentication yes、PasswordAuthentication no
sudo systemctl reload sshd    # Debian/Ubuntu 为 ssh

云厂商控制台一般也支持创建密钥对并绑定实例,新建机器时直接选密钥登录更省事。SSH 加固的整体策略(端口、安全组、Fail2ban)见云服务器安全加固指南。


二、系统信息查看

# 查看系统版本
cat /etc/os-release
uname -a                    # 内核版本
lsb_release -a              # 发行版信息

# 查看 CPU 信息
lscpu                       # CPU 架构详情
nproc                       # CPU 核心数
cat /proc/cpuinfo | grep "model name" | head -1

# 查看内存使用
free -h                     # 人类可读格式
cat /proc/meminfo | head -10

# 查看磁盘使用
df -h                       # 各分区使用情况
du -sh /var/log/            # 指定目录大小
du -sh /* 2>/dev/null | sort -rh | head -20  # 最大目录排行

# 查看系统运行时间和负载
uptime                      # 运行时长 + 平均负载
w                           # 当前登录用户和系统负载

# 查看系统时间
date
timedatectl                 # 含时区信息

三、文件和目录管理

# 基础文件操作
ls -lah                     # 列出文件(含隐藏文件,人类可读大小)
cp -r /src/dir /dst/dir     # 递归复制目录
mv old_name new_name        # 移动/重命名
rm -rf /path/to/dir         # 强制删除目录(谨慎使用!)

# 查找文件
find /var/log -name "*.log" -mtime -7  # 7天内修改的 .log 文件
find / -size +100M 2>/dev/null         # 大于 100MB 的文件
which nginx                             # 查找可执行文件路径
locate nginx.conf                       # 快速查找(需要 updatedb)

# 文件内容查看
cat /etc/hosts               # 查看全部内容
less /var/log/syslog         # 分页查看(q 退出)
tail -f /var/log/nginx/access.log  # 实时追踪日志
tail -n 100 /var/log/syslog  # 最后 100 行
head -n 50 /etc/nginx/nginx.conf  # 前 50 行
grep "ERROR" /var/log/app.log | tail -20  # 过滤错误日志

# 文件权限
chmod 755 /var/www/html      # 修改权限(所有者读写执行,其他读执行)
chmod +x deploy.sh           # 添加执行权限
chown -R www-data:www-data /var/www/html  # 修改所有者
ls -la /etc/nginx/           # 查看权限详情

# 压缩与解压
tar -czf backup.tar.gz /var/www/html/   # 压缩目录
tar -xzf backup.tar.gz -C /restore/     # 解压到指定目录
zip -r backup.zip /var/www/             # ZIP 压缩
unzip backup.zip -d /restore/           # ZIP 解压

四、进程管理

# 查看进程
ps aux                      # 所有进程详情
ps aux | grep nginx         # 过滤特定进程
pgrep nginx                 # 获取进程 PID
pidof nginx                 # 同上

# 实时进程监控
top                         # 实时资源占用(q 退出,M 按内存排序,P 按CPU排序)
htop                        # 更友好的 top(需安装:apt install htop)
iotop                       # 磁盘 I/O 实时监控

# 终止进程
kill PID                    # 发送 SIGTERM 信号(优雅终止)
kill -9 PID                 # 强制终止(SIGKILL)
killall nginx               # 按进程名终止所有同名进程
pkill -f "python app.py"   # 按匹配条件终止

# 后台运行
nohup ./my_script.sh &      # 后台运行,关闭终端不停止
screen -S myapp             # 创建命名 screen 会话
screen -r myapp             # 恢复 screen 会话
tmux new -s myapp           # 创建 tmux 会话(推荐)
tmux attach -t myapp        # 恢复 tmux 会话

# 服务管理(systemd)
systemctl status nginx      # 查看服务状态
systemctl start nginx       # 启动服务
systemctl stop nginx        # 停止服务
systemctl restart nginx     # 重启服务
systemctl reload nginx      # 平滑重载配置
systemctl enable nginx      # 设置开机自启
systemctl disable nginx     # 取消开机自启
systemctl list-units --type=service  # 列出所有服务
journalctl -u nginx -f      # 实时查看服务日志
journalctl -u nginx --since "1 hour ago"  # 查看近 1 小时日志

五、网络诊断

# 网络连通性测试
ping -c 4 google.com        # Ping 测试(4次)
traceroute google.com       # 路由追踪
mtr google.com              # 实时路由监控(需安装)

# DNS 查询
nslookup example.com        # DNS 解析
dig example.com             # 详细 DNS 信息
dig example.com MX          # 查询 MX 记录
host example.com            # 简单 DNS 查询

# 端口和连接
netstat -tlnp               # 查看监听端口(需安装net-tools)
ss -tlnp                    # 同上(更现代的替代命令)
ss -s                       # 连接统计摘要
lsof -i :80                 # 查看使用 80 端口的进程
telnet target-host 3306     # 测试端口连通性
nc -zv target-host 3306     # 测试端口(更推荐)

# 网络流量
ifconfig                    # 查看网卡信息(legacy)
ip addr                     # 查看 IP 地址(推荐)
ip route                    # 查看路由表
iftop                       # 实时网络流量(需安装)
nethogs                     # 按进程分组的流量统计(需安装)
curl -o /dev/null -s -w "%{speed_download}" http://example.com  # 测试下载速度

# 防火墙管理(UFW 简化防火墙)
ufw status                  # 查看防火墙状态
ufw allow 22/tcp            # 开放 SSH 端口
ufw allow 80/tcp            # 开放 HTTP 端口
ufw allow 443/tcp           # 开放 HTTPS 端口
ufw deny 3306/tcp           # 禁止 MySQL 外部访问
ufw enable                  # 启用防火墙
ufw reload                  # 重载规则

# iptables(更底层的防火墙)
iptables -L -n              # 列出所有规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # 允许 SSH

六、用户和权限管理

# 用户管理
whoami                      # 当前用户
id                          # 当前用户 ID 和组信息
who                         # 当前登录用户列表
last                        # 登录历史记录

useradd -m -s /bin/bash deployer  # 创建用户(带家目录)
passwd deployer             # 设置密码
usermod -aG sudo deployer   # 添加到 sudo 组
userdel -r olduser          # 删除用户(含家目录)

# sudo 权限
sudo su -                   # 切换到 root(不推荐长期使用 root)
sudo -l                     # 查看当前用户的 sudo 权限
visudo                      # 编辑 sudoers 文件

# SSH 密钥管理
ssh-keygen -t ed25519 -C "my-key"  # 生成 SSH 密钥对
cat ~/.ssh/id_ed25519.pub    # 查看公钥(复制到服务器)
# 将公钥添加到服务器
cat id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

七、性能调优与监控

# CPU 和内存
vmstat 1 10                 # 每秒采样一次,共10次(内存/CPU综合)
iostat -x 1 5               # 磁盘 I/O 统计
mpstat -P ALL 1             # 多核 CPU 使用率详情

# 内存详情
free -h                     # 总体内存
cat /proc/meminfo | grep -E "MemTotal|MemFree|Cached|Buffers"

# 磁盘 I/O
iostat -d -k 1              # 磁盘读写速度(KB/s)
iotop -o                    # 只显示有 I/O 的进程

# 系统调用追踪
strace -p PID               # 追踪进程系统调用(调试用)
lsof -p PID                 # 查看进程打开的文件

# 定时任务(Crontab)
crontab -l                  # 查看当前用户的定时任务
crontab -e                  # 编辑定时任务
# 格式:分 时 日 月 周 命令
# 示例:每天凌晨 3 点执行备份
# 0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

八、日志管理

# 系统日志
tail -f /var/log/syslog     # Ubuntu/Debian 系统日志
tail -f /var/log/messages   # CentOS/RHEL 系统日志
dmesg | tail -20            # 内核消息(硬件/驱动问题时查看)

# 应用日志
tail -f /var/log/nginx/access.log   # Nginx 访问日志
tail -f /var/log/nginx/error.log    # Nginx 错误日志
tail -f /var/log/mysql/error.log    # MySQL 错误日志

# 日志分析
grep "404" /var/log/nginx/access.log | wc -l  # 统计 404 请求数
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10  # Top 10 访问 IP
zcat /var/log/nginx/access.log.1.gz | grep "500"  # 查看压缩历史日志

# 日志清理
find /var/log -name "*.log" -mtime +30 -delete  # 删除 30 天以上的日志
truncate -s 0 /var/log/nginx/access.log  # 清空日志文件(保留文件)
journalctl --vacuum-time=30d             # 清理 30 天以上的 systemd 日志

九、安全加固常用命令

# 查看失败登录(暴力破解排查)
last -f /var/log/btmp | head -20    # 失败登录记录
grep "Failed password" /var/log/auth.log | tail -20

# 查看当前连接
ss -tn state established            # 已建立的 TCP 连接
who                                 # 当前登录用户

# 检查计划任务(排查后门)
crontab -l
crontab -l -u root
cat /etc/crontab
ls /etc/cron.d/

# 检查监听端口(是否有异常服务)
ss -tlnp

# 更新系统(Ubuntu/Debian)
apt update && apt upgrade -y
apt autoremove -y

# 更新系统(CentOS/RHEL)
yum update -y

常用命令组合示例

# 实时监控 Web 服务器访问量
watch -n 1 "ss -tn state established | grep ':80' | wc -l"

# 查找占用磁盘最多的文件
du -ah / 2>/dev/null | sort -rh | head -20

# 统计 Nginx 日志中各状态码数量
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn

# 快速检查服务器健康状态
echo "=== CPU ===" && uptime
echo "=== Memory ===" && free -h
echo "=== Disk ===" && df -h
echo "=== Network ===" && ss -s

云服务商推荐

搭建自己的 Linux 云服务器,推荐以下选择:

  • 阿里云 ECS:国内市场份额第一,文档中文资料最丰富,适合初学者
  • 腾讯云 CVM:性价比高,轻量应用服务器适合个人站长
  • 华为云 ECS:政企用户优先,合规性强

总结

Linux 运维命令看似繁多,但日常工作 80% 的时间都在使用上述 20% 的命令。建议从以下路径入手:

  1. 先掌握:ssh、ls/cd/cp/mv/rm、tail/grep、top/ps、systemctl
  2. 故障排查:df -h(磁盘)、free -h(内存)、ss -tlnp(端口)、tail -f(日志)
  3. 进阶:awk/sed(文本处理)、iptables(防火墙)、strace(调试)

本手册建议收藏备用,遇到问题时按分类快速查找。

延伸阅读

本文可能含联盟推广链接,购买不增加你的价格,详见联盟披露。

文中提到的云平台当前活动价

文中价格均来自各平台公开活动页。想直接对比在售机型,可以先看下面这些:价格核实日期与台账一致,以活动页为准。