Linux服务器必会的20个常用命令:新手运维从入门到上手

Linux 服务器必会的 20 个常用命令:新手运维从入门到上手

买了 VPS 之后,很多人面对黑色终端窗口不知所措。Linux 命令行看起来神秘,实际上日常运维只需要掌握几十个核心命令。本文精选最高频使用的 20 个命令,每个命令配合真实场景示例,帮你快速度过新手期,独立完成服务器的日常管理工作。


一、文件与目录操作(6个)

1. ls — 查看目录内容

ls              # 列出当前目录文件
ls -la          # 显示详细信息(包含隐藏文件)
ls -lh /var/www # 以人类可读格式显示指定目录

最常用的是 ls -la,可以看到文件权限、大小、修改时间,是排查文件问题的第一步。

2. cd — 切换目录

cd /var/www/html   # 进入指定目录
cd ..              # 返回上一级目录
cd ~               # 回到当前用户的家目录
cd -               # 返回上一次所在目录

3. mkdir / rm — 创建与删除

# 创建目录
mkdir myproject
mkdir -p /var/www/site1/logs   # -p 表示递归创建不存在的父目录

# 删除文件
rm filename.txt
rm -f filename.txt             # 强制删除,不询问确认

# 删除目录(⚠️ 危险命令,务必确认路径!)
rm -rf /var/www/old_site       # -r 递归删除,-f 强制,不可恢复

⚠️ 警告:rm -rf 删除不可恢复,执行前务必三次确认路径,永远不要运行 rm -rf /。

4. cp / mv — 复制与移动

# 复制文件
cp config.php config.php.bak         # 备份配置文件
cp -r /var/www/site1 /backup/site1   # -r 递归复制目录

# 移动/重命名
mv oldname.php newname.php           # 重命名
mv /tmp/upload.zip /var/www/html/    # 移动文件

5. cat / less / tail — 查看文件内容

# 查看整个文件(适合短文件)
cat /etc/nginx/nginx.conf

# 分页查看(适合长文件,按空格翻页,q 退出)
less /var/log/nginx/access.log

# 查看文件最后几行(排查错误最常用)
tail -n 50 /var/log/nginx/error.log        # 最后50行
tail -f /var/log/nginx/access.log          # 实时追踪新增内容(-f = follow)

tail -f 是排查实时问题的利器,可以在浏览器访问网站的同时,实时观察日志输出。

6. nano / vim — 编辑文件

# nano:新手友好,底部有快捷键提示
sudo nano /etc/nginx/sites-available/mysite.conf
# 编辑完成后:Ctrl+O 保存,Ctrl+X 退出

# vim:功能强大但学习曲线陡
vim /etc/ssh/sshd_config
# 按 i 进入编辑模式,编辑完按 Esc,输入 :wq 保存退出,:q! 强制不保存退出

二、系统状态监控(4个)

7. top / htop — 实时进程监控

top          # 内置工具,实时显示进程CPU/内存占用
             # 按 P 按CPU排序,按 M 按内存排序,按 q 退出

htop         # 需安装:sudo apt install htop
             # 比top更直观,支持鼠标操作,每个CPU核心独立显示

8. df — 查看磁盘空间

df -h         # 以人类可读格式显示所有分区磁盘使用情况
df -h /       # 只查看根分区

输出中 Use% 超过 85% 时需要关注,超过 95% 时服务可能开始出错(日志无法写入等)。

9. free — 查看内存使用

free -h       # 以人类可读格式显示内存和SWAP使用情况

重点看 available 列(真正可用内存),而非 free 列(Linux 会将空闲内存用于缓存,free 值通常很小但不代表内存不足)。

10. uptime — 查看系统运行时长与负载

uptime
# 输出示例:14:23:01 up 47 days, 3:21, 1 user, load average: 0.52, 0.48, 0.51

load average 显示 1分钟、5分钟、15分钟的平均负载。通常负载值不应持续超过 CPU 核心数,如 4核服务器负载长期超过 4 需要关注。


三、网络排查(4个)

11. ping — 测试网络连通性

ping google.com         # 测试是否能访问外网
ping 8.8.8.8            # 测试是否能访问 Google DNS(排查 DNS 与网络问题)
ping -c 4 google.com    # 只发送4个包后停止(Linux 默认持续 ping)

12. curl — 测试 HTTP 请求

# 测试网站是否正常响应
curl -I https://yourdomain.com        # 只看响应头(状态码、服务器信息)
curl https://api.example.com/status   # 查看 API 返回内容

# 测试带超时的请求
curl --connect-timeout 10 https://yourdomain.com

# 下载文件
curl -O https://example.com/file.zip

13. ss / netstat — 查看网络连接

ss -tlnp          # 查看所有监听中的 TCP 端口(t=TCP, l=listening, n=数字, p=进程)
ss -tnp           # 查看所有已建立的连接

# 查找某个端口被哪个程序占用
ss -tlnp | grep :80
ss -tlnp | grep :3306

14. wget — 下载文件

wget https://example.com/file.tar.gz               # 下载文件
wget -O custom_name.zip https://example.com/file   # 指定保存文件名
wget -c https://example.com/large_file.zip         # 断点续传

四、权限与用户管理(3个)

15. chmod — 修改文件权限

chmod 755 script.sh          # 设置权限为 rwxr-xr-x(常用于脚本)
chmod 644 config.php         # 设置权限为 rw-r--r--(常用于配置文件)
chmod +x deploy.sh           # 给文件添加可执行权限
chmod -R 755 /var/www/html   # -R 递归修改目录下所有文件权限

权限数字含义:4=读(r),2=写(w),1=执行(x),相加得到权限值。755 = 所有者(7=rwx) + 组(5=r-x) + 其他(5=r-x)。

16. chown — 修改文件所有者

sudo chown www-data:www-data /var/www/html    # 修改所有者为 www-data(Nginx/Apache 进程用户)
sudo chown -R ubuntu:ubuntu /home/ubuntu/app  # 递归修改目录所有者

17. sudo — 以管理员权限执行

sudo apt update                    # 以 root 权限执行 apt 更新
sudo systemctl restart nginx       # 重启 Nginx 服务
sudo -i                            # 切换到 root 用户 shell(谨慎使用)

五、服务与进程管理(3个)

18. systemctl — 管理系统服务

sudo systemctl start nginx      # 启动服务
sudo systemctl stop nginx       # 停止服务
sudo systemctl restart nginx    # 重启服务
sudo systemctl reload nginx     # 重载配置(不中断服务)
sudo systemctl status nginx     # 查看服务状态(是否运行、最近日志)
sudo systemctl enable nginx     # 设置开机自启
sudo systemctl disable nginx    # 取消开机自启

19. journalctl — 查看系统日志

journalctl -u nginx              # 查看 Nginx 的系统日志
journalctl -u nginx -n 50        # 只看最近50条
journalctl -u nginx --since "1 hour ago"   # 查看最近1小时的日志
journalctl -f                    # 实时追踪系统日志

20. kill / pkill — 结束进程

kill 1234             # 向 PID 为 1234 的进程发送终止信号(优雅退出)
kill -9 1234          # 强制立即杀死进程(kill -9 无法被进程忽略)

pkill nginx           # 按进程名杀死所有匹配的进程
pkill -f "python app" # 按完整命令行匹配

优先使用 kill PID(无 -9),给进程机会做清理工作;只有进程无响应时才用 kill -9。


六、实用组合技巧

管道(|):将一个命令的输出传给下一个命令

# 查找最占磁盘的前10个目录
du -sh /* 2>/dev/null | sort -rh | head -10

# 实时查看包含 "error" 的日志行
tail -f /var/log/nginx/error.log | grep "error"

# 统计当前连接数最多的来源 IP
ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10

重定向(> / >>):将输出写入文件

ls -la > file_list.txt        # 将输出写入文件(覆盖)
echo "backup done" >> log.txt # 追加到文件末尾(不覆盖)
command 2>&1 | tee output.log # 同时在终端显示和写入文件

七、新手常见误区

  • ❌ 直接用 root 用户做所有操作:建议创建普通用户,需要时加 sudo,降低误操作风险
  • ❌ 不备份直接修改配置文件:修改 Nginx、PHP 等配置前先 cp config.conf config.conf.bak
  • ❌ 看到报错就重启服务器:重启只是掩盖问题,先用 journalctl 和 tail 看日志找根因
  • ❌ 忘记 sudo 导致权限报错:Permission denied 通常意味着需要加 sudo

总结

掌握这 20 个命令,你就能独立完成以下日常运维任务:

  • 📁 文件的增删改查、权限管理
  • 📊 CPU、内存、磁盘的健康检查
  • 🌐 网络连通性排查、端口查询
  • ⚙️ 服务的启停管理、日志查看

如果你刚购买了后浪云香港云服务器,SSH 连接后即可练习本文的所有命令。遇到任何操作问题,欢迎通过工单或 Telegram 联系我们的技术支持团队。

THE END