买了VPS,连上SSH,面对黑漆漆的命令行窗口,不知道下一步该敲什么——这是每个Linux新手的必经之路。好消息是:VPS日常运维真正高频使用的命令,不超过30个。背熟这30条,足以应对90%的场景:建站、传文件、看日志、装软件、查资源、排故障。
本文按使用频率和场景分类,每个命令附带VPS实战用法。建议收藏,遇到问题时直接按图索骥。
一、连接与导航(5个命令)
- ssh — 远程登录VPS的入口
用法
--------------------------------------------------------------------------
ssh 用户名@服务器IP -p 端口
实战示例
--------------------------------------------------------------------------
ssh root@192.168.1.1 -p 22
常见问题
--------------------------------------------------------------------------
首次连接提示"Are you sure you want to continue connecting?" → 输入 yes
密码输入时屏幕无显示 → 正常现象,直接输完回车
VPS到手第一步就是SSH登录。建议把常用服务器写到 ~/.ssh/config 里,以后直接 ssh 别名 即可连接。
- pwd — 确认"我在哪"
用法
--------------------------------------------------------------------------
pwd
实战示例
--------------------------------------------------------------------------
root@server:~# pwd
/root
说明
--------------------------------------------------------------------------
VPS上配置文件路径一旦搞错,修改的就是别人的网站。操作前先用pwd确认当前目录。
- ls — 查看目录内容
用法
--------------------------------------------------------------------------
ls # 基础列出
ls -l # 详细列表(权限、大小、时间)
ls -la # 包含隐藏文件(以.开头的配置文件)
ls -lh # 人类可读的文件大小(K/M/G自动转换)
ls -lt # 按时间倒序排列(最新文件在最前)
实战示例
--------------------------------------------------------------------------
ls -lah /var/log/nginx/ # 查看Nginx日志目录,含隐藏文件,大小可读
- cd — 切换目录
用法
--------------------------------------------------------------------------
cd /var/www/html # 进入绝对路径
cd .. # 返回上一级
cd ~ # 回到用户主目录
cd - # 返回刚才的目录
实战示例
--------------------------------------------------------------------------
cd /etc/nginx/sites-available/
pwd # 确认位置
nano default # 修改站点配置
- clear — 清屏
用法
--------------------------------------------------------------------------
clear
实战示例
--------------------------------------------------------------------------
执行了大量命令后屏幕混乱 → clear → 清爽继续
二、文件与目录操作(6个命令)
- mkdir — 创建目录
用法
--------------------------------------------------------------------------
mkdir dirname # 创建单级目录
mkdir -p /a/b/c/d # 递归创建多级目录(-p表示自动创建父目录)
实战示例
--------------------------------------------------------------------------
mkdir -p /var/www/yvps.cn/public_html
mkdir -p /backup/2026-08-18
- cp — 复制文件/目录
用法
--------------------------------------------------------------------------
cp file.txt /backup/ # 复制文件
cp -r /var/www/site1 /backup/site1 # 复制目录(-r递归)
cp -a /var/www/site1 /backup/site1 # 保留权限、符号链接等属性
实战示例
--------------------------------------------------------------------------
cp -a /var/www/yvps.cn /backup/yvps.cn_$(date +%F) # 带日期备份网站
- mv — 移动或重命名
用法
--------------------------------------------------------------------------
mv oldname.txt newname.txt # 重命名
mv file.txt /var/www/html/ # 移动文件
mv dir1 /var/www/ # 移动目录
实战示例
--------------------------------------------------------------------------
mv /var/www/html/index.html /var/www/html/index.html.bak # 修改前备份
- rm — 删除(高危命令,务必谨慎)
用法
--------------------------------------------------------------------------
rm file.txt # 删除文件
rm -f file.txt # 强制删除,不提示
rm -rf dirname/ # 递归强制删除目录(极度危险,慎用)
实战示例
--------------------------------------------------------------------------
rm -rf / # 传说中的"删库跑路"命令,永远不要执行
rm -rf /var/www/html/* # 清空网站目录(执行前先用pwd确认路径)
安全建议
--------------------------------------------------------------------------
删除前先用 ls 确认目标 → 再执行 rm
重要数据删除前先做备份
- touch — 创建空文件或更新时间戳
用法
--------------------------------------------------------------------------
touch newfile.txt # 创建空文件
touch -c file.txt # 文件存在则更新时间戳,不存在不创建
实战示例
--------------------------------------------------------------------------
touch /var/www/html/robots.txt # 创建robots.txt
touch /var/log/nginx/access.log # 日志轮转后重建空日志文件
- find — 查找文件
用法
--------------------------------------------------------------------------
find /var/www -name "*.php" # 按名称查找
find /var/log -type f -mtime +7 # 查找7天前修改的文件
find / -name "nginx.conf" 2>/dev/null # 全系统查找,屏蔽错误输出
实战示例
--------------------------------------------------------------------------
find /var/www -type f -size +100M # 找出超过100M的大文件(排查磁盘爆满)
find /var/log -name "*.log" -mtime +30 -delete # 删除30天前的旧日志
三、系统监控与资源查看(5个命令)
- df — 查看磁盘空间
用法
--------------------------------------------------------------------------
df -h # 人类可读格式查看所有挂载点
df -h / # 只看根分区
df -hT # 显示文件系统类型
实战示例
--------------------------------------------------------------------------
df -h
输出解读
--------------------------------------------------------------------------
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 35G 5.2G 88% /
# Use%超过85%就要警惕,超过95%网站可能直接500错误
- du — 查看目录/文件占用大小
用法
--------------------------------------------------------------------------
du -sh /var/www/ # 查看目录总大小
du -h --max-depth=1 /var/ # 查看/var下各子目录大小(一层)
du -sh * # 查看当前目录下每个文件/文件夹的大小
实战示例
--------------------------------------------------------------------------
du -sh /var/log/* | sort -rh | head -10 # 找出最大的10个日志文件
du -sh /home/* # 查看各用户目录占用
- free — 查看内存使用
用法
--------------------------------------------------------------------------
free -h # 人类可读格式
free -m # 以MB为单位
输出解读
--------------------------------------------------------------------------
total used free shared buff/cache available
Mem: 1.9G 892M 156M 12M 902M 876M
Swap: 1.0G 0B 1.0G
关键指标
--------------------------------------------------------------------------
available 才是真实可用内存(包含缓存回收)
Swap使用率长期>0说明内存不足,需要升级或优化
- top — 实时进程监控
用法
--------------------------------------------------------------------------
top
交互操作(运行中按键)
--------------------------------------------------------------------------
M # 按内存使用率排序
P # 按CPU使用率排序
k # 输入PID后回车,杀死进程
q # 退出
实战场景
--------------------------------------------------------------------------
网站突然变慢 → top → 按P看哪个进程CPU飙高 → 定位问题
- htop — 更美观的进程监控(需安装)
用法
--------------------------------------------------------------------------
htop
安装方法
--------------------------------------------------------------------------
# Ubuntu/Debian
apt install htop -y
# CentOS/RHEL
yum install htop -y
优势
--------------------------------------------------------------------------
彩色界面、支持鼠标、树状进程视图、更直观的CPU/内存条形图
四、软件包管理(4个命令)
- apt / apt-get — Debian/Ubuntu系软件管理
用法
--------------------------------------------------------------------------
apt update # 更新软件源列表
apt upgrade -y # 升级所有已安装软件
apt install nginx -y # 安装Nginx
apt remove nginx -y # 卸载软件(保留配置)
apt purge nginx -y # 彻底卸载(含配置)
apt autoremove -y # 清理不再需要的依赖包
实战示例
--------------------------------------------------------------------------
apt update && apt upgrade -y # 新VPS到手第一步:更新系统
apt install -y vim htop curl wget net-tools # 安装常用工具包
- yum / dnf — CentOS/RHEL系软件管理
用法
--------------------------------------------------------------------------
yum update -y # 更新系统
yum install nginx -y # 安装软件
yum remove nginx -y # 卸载软件
yum clean all # 清理缓存
实战示例
--------------------------------------------------------------------------
yum update -y && yum install -y vim htop curl wget # 新VPS初始化
- systemctl — 服务管理(Systemd系统)
用法
--------------------------------------------------------------------------
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl reload nginx # 重载配置(不中断连接)
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 取消开机自启
systemctl status nginx # 查看服务状态和最近日志
实战示例
--------------------------------------------------------------------------
systemctl status mysql # MySQL挂了?先看状态
systemctl restart php8.1-fpm # 修改PHP配置后重载
- crontab — 定时任务
用法
--------------------------------------------------------------------------
crontab -e # 编辑当前用户的定时任务
crontab -l # 列出所有定时任务
crontab -r # 删除所有定时任务(慎用)
时间格式
--------------------------------------------------------------------------
* * * * * 命令
│ │ │ │ │
│ │ │ │ └── 星期 (0-7, 0和7都是周日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日期 (1-31)
│ └──────── 小时 (0-23)
└────────── 分钟 (0-59)
实战示例
--------------------------------------------------------------------------
# 每天凌晨3点备份网站
0 3 * * * tar -czf /backup/site_$(date +\%F).tar.gz /var/www/html/
# 每10分钟检查一次网站可用性
*/10 * * * * curl -f http://localhost/ || systemctl restart nginx
# 每周一清理7天前的日志
0 0 * * 1 find /var/log -name "*.log" -mtime +7 -delete
五、网络诊断(4个命令)
- ping — 测试网络连通性
用法
--------------------------------------------------------------------------
ping yvps.cn # 持续Ping,按Ctrl+C停止
ping -c 4 8.8.8.8 # 只发4个包
ping -c 100 -i 0.2 IP # 快速Ping100个包(测丢包率)
实战示例
--------------------------------------------------------------------------
ping -c 100 你的VPS_IP # 从本地测试到VPS的延迟和丢包
ping -c 100 114.114.114.114 # 从VPS测试到国内的连通性
- curl — 请求URL/下载文件/API调试
用法
--------------------------------------------------------------------------
curl yvps.cn # 获取网页内容
curl -I yvps.cn # 只看HTTP响应头
curl -o file.zip http://example.com/file.zip # 下载文件
curl -L yvps.cn # 跟随重定向
curl -H "User-Agent: Mozilla/5.0" yvps.cn # 自定义请求头
实战示例
--------------------------------------------------------------------------
curl -I localhost # 测试本地Nginx是否响应
curl -sSL https://get.docker.com | sh # 一键安装Docker
curl -X POST -d "key=value" http://api.example.com # API调试
- wget — 下载文件
用法
--------------------------------------------------------------------------
wget http://example.com/file.tar.gz # 普通下载
wget -c http://example.com/file.tar.gz # 断点续传
wget -O newname.zip http://example.com/old.zip # 指定保存文件名
wget --no-check-certificate https://... # 忽略证书错误
实战示例
--------------------------------------------------------------------------
wget https://wordpress.org/latest.tar.gz # 下载WordPress
wget -c http://example.com/10GB.iso # 大文件断点续传
- netstat / ss — 查看端口和连接
用法
--------------------------------------------------------------------------
netstat -tunlp # 查看所有监听的TCP/UDP端口和对应进程
ss -tunlp # 同上,但速度更快(推荐)
ss -s # 查看连接统计
实战示例
--------------------------------------------------------------------------
ss -tunlp | grep :80 # 查看80端口被哪个进程占用
ss -tunlp | grep nginx # 查看Nginx监听了哪些端口
输出解读
--------------------------------------------------------------------------
LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
# 表示Nginx进程(PID 1234)正在监听80端口
六、进程与服务管理(3个命令)
- ps — 查看进程
用法
--------------------------------------------------------------------------
ps aux # 查看所有进程的详细信息
ps aux | grep nginx # 过滤出Nginx相关进程
ps -ef | grep mysql # 另一种格式查看
输出字段解读
--------------------------------------------------------------------------
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1234 0.5 2.1 89212 8456 ? Ss 10:20 0:01 nginx: master
关键字段
--------------------------------------------------------------------------
PID 进程ID,kill命令需要用到
%CPU CPU占用率
%MEM 内存占用率
STAT 进程状态(R运行/S睡眠/Z僵尸)
- kill / killall — 终止进程
用法
--------------------------------------------------------------------------
kill 1234 # 向PID 1234发送终止信号(优雅关闭)
kill -9 1234 # 强制终止(SIGKILL,进程无法拦截)
killall nginx # 按名称杀死所有Nginx进程
pkill -f php-fpm # 按完整命令行匹配杀死进程
实战示例
--------------------------------------------------------------------------
top # 找到CPU飙高的进程PID
kill -9 PID # 强制结束(如果普通kill无效)
- nohup — 后台运行程序
用法
--------------------------------------------------------------------------
nohup python3 script.py & # 后台运行,关闭终端不中断
nohup ./start.sh > app.log 2>&1 & # 后台运行,输出重定向到日志文件
实战示例
--------------------------------------------------------------------------
nohup python3 /opt/bot/main.py > /var/log/bot.log 2>&1 &
# 运行聊天机器人,日志写入文件,断开SSH后依然运行
七、权限与安全(3个命令)
- chmod — 修改文件权限
用法
--------------------------------------------------------------------------
chmod 755 file # 所有者读写执行,其他用户读执行
chmod 644 file # 所有者读写,其他用户只读
chmod -R 755 /var/www # 递归修改目录及子文件权限
权限数字对照
--------------------------------------------------------------------------
7 = rwx (读写执行)
6 = rw- (读写)
5 = r-x (读执行)
4 = r-- (只读)
0 = --- (无权限)
三位数字分别代表:所有者/所属组/其他用户
实战示例
--------------------------------------------------------------------------
chmod 755 /var/www/html/index.php # 网站入口文件
chmod 644 /var/www/html/wp-config.php # 配置文件(不给执行权限)
chmod -R 755 /var/www/html/uploads # 上传目录需要执行权限
- chown — 修改文件所有者
用法
--------------------------------------------------------------------------
chown www-data:www-data file.txt # 修改所有者和所属组
chown -R www-data:www-data /var/www # 递归修改
实战示例
--------------------------------------------------------------------------
# Nginx/Apache默认以www-data用户运行,网站目录需归属该用户
chown -R www-data:www-data /var/www/html
- passwd — 修改密码
用法
--------------------------------------------------------------------------
passwd # 修改当前用户密码
passwd username # 修改指定用户密码(需root权限)
安全建议
--------------------------------------------------------------------------
VPS到手后立即修改root密码
密码长度至少16位,包含大小写字母+数字+符号
更安全的做法:禁用root密码登录,改用SSH密钥
八、30个命令速查表(建议截图保存)
分类 命令 核心用途
------------------------------------------------------------------------------------------
连接导航 ssh 远程登录VPS
pwd 查看当前路径
ls 列出目录内容
cd 切换目录
clear 清屏
文件操作 mkdir 创建目录
cp 复制文件/目录
mv 移动/重命名
rm 删除(高危)
touch 创建空文件
find 查找文件
系统监控 df 查看磁盘空间
du 查看目录大小
free 查看内存
top 实时进程监控
htop 增强版进程监控
软件管理 apt/yum 安装/卸载软件
systemctl 管理服务
crontab 定时任务
网络诊断 ping 测试连通性
curl 请求URL/API
wget 下载文件
ss/netstat 查看端口占用
进程管理 ps 查看进程
kill/killall 终止进程
nohup 后台运行
权限安全 chmod 修改权限
chown 修改所有者
passwd 修改密码
九、新手常见错误与避坑
错误1:rm -rf 后面路径写错
危险操作
--------------------------------------------------------------------------
rm -rf / var/www/html # 注意空格!这会先删根目录,再删var/www/html
rm -rf /var/www/html / # 多打了一个斜杠,后果同上
正确做法
--------------------------------------------------------------------------
rm -rf /var/www/html # 路径确认无误再执行
# 或者先用 ls /var/www/html 确认目标存在
错误2:修改配置文件前不做备份
正确做法
--------------------------------------------------------------------------
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%F)
nano /etc/nginx/nginx.conf # 现在可以安心修改了
错误3:直接修改生产环境配置
正确做法
--------------------------------------------------------------------------
nginx -t # 修改后先测试配置语法
systemctl reload nginx # 语法通过后再重载(不要restart,会断连接)
错误4:忘记加sudo或以root乱操作
正确做法
--------------------------------------------------------------------------
# 日常操作使用普通用户
sudo apt update # 需要root权限时加sudo
# 如果已经是root,执行危险命令前再三确认
whoami # 确认当前用户
pwd # 确认当前目录
十、进阶:命令组合技巧
技巧1:管道符 | 组合多个命令
--------------------------------------------------------------------------
cat /var/log/nginx/access.log | grep "404" | wc -l
# 查看日志中404错误的数量
技巧2:重定向 > 和 >>
--------------------------------------------------------------------------
echo "hello" > file.txt # 覆盖写入
echo "world" >> file.txt # 追加写入
command > /dev/null 2>&1 # 丢弃所有输出(后台任务常用)
技巧3:&& 和 || 逻辑组合
--------------------------------------------------------------------------
apt update && apt upgrade -y # 前一条成功才执行后一条
ping -c 1 yvps.cn || echo "网站挂了" # 前一条失败才执行后一条
技巧4:Tab自动补全
--------------------------------------------------------------------------
输入路径时按Tab键自动补全文件名,按两次Tab列出所有候选
这是防止路径输入错误最有效的手段
总结
Linux命令不是背出来的,是用出来的。新VPS到手,建议按这个顺序操作一遍:
ssh连上服务器apt update && apt upgrade -y更新系统df -h和free -h查看资源apt install -y vim htop curl wget安装必备工具passwd修改root密码- 配置SSH密钥登录,禁用密码(参考本站安全加固文章)
把这30个命令在真实环境中用3-5遍,基本就能脱离"新手"标签。遇到不会的命令,优先用 man 命令名 或 命令名 --help 查看官方文档,养成查手册的习惯比背命令更重要。




