
你是不是也有过这种情况:想查一下服务器还剩多少磁盘空间,df -h还是du -sh?想看看哪个进程在吃CPU,top进去之后按哪个键排序来着?
不是你不会,是你记不住。这很正常。Linux命令几百个,参数上千种,没人能全记住。
今天不教你“精通Linux”,只给你一份常备手册。按分类整理,附常用参数和说明。建议收藏,用到的时候翻出来查。
先看一个数据
Stack Overflow的开发者调查显示,超过70%的开发者每天使用Linux命令行。但同一项调查中,超过60%的人承认“经常需要查命令参数”。
你不是一个人。工具是拿来用的,不是拿来背的。
一、文件与目录操作
| 命令 | 常用参数 | 说明 |
|---|---|---|
| ls | -l 详细列表,-a 显示隐藏文件,-h 人类可读大小 | 列出目录内容 |
| cd | cd .. 上级目录,cd ~ 回家目录 | 切换目录 |
| pwd | 无 | 显示当前路径 |
| mkdir | -p 递归创建父目录 | 创建目录 |
| rm | -r 递归删除,-f 强制不提示,-rf 删库跑路 | 删除文件或目录 |
| cp | -r 递归复制,-a 保留权限和时间 | 复制文件或目录 |
| mv | 无 | 移动或重命名 |
| touch | 无 | 创建空文件或更新时间戳 |
| find | -name 按名找,-type f 只找文件,-mtime 按修改时间 | 查找文件 |
| grep | -i 忽略大小写,-r 递归目录,-n 显示行号,-A/B 显示上下文 | 搜索文件内容 |
示例:
bash
# 找最近7天修改过的日志文件
find /var/log -name "*.log" -mtime -7
# 在代码里搜某个函数
grep -r "function_name" /var/www/html
二、权限管理
| 命令 | 常用参数 | 说明 |
|---|---|---|
| chmod | 755 文件权限,+x 添加执行权限 | 修改文件权限 |
| chown | user:group 修改所有者和组,-R 递归 | 修改文件所有者 |
| whoami | 无 | 显示当前用户 |
| sudo | 无 | 以root身份执行命令 |
| useradd | -m 创建家目录,-s 指定shell | 添加用户 |
权限数字速查:
- 7 = 读+写+执行 (4+2+1)
- 6 = 读+写 (4+2)
- 5 = 读+执行 (4+1)
- 4 = 只读
示例:
bash
# 给脚本加执行权限
chmod +x script.sh
# 把网站目录的所有权给www-data用户
chown -R www-data:www-data /var/www/html
三、进程管理
| 命令 | 常用参数 | 说明 |
|---|---|---|
| top | P 按CPU排序,M 按内存排序,q 退出 | 实时查看进程 |
| htop | 需要单独安装,更直观 | 增强版top |
| ps | aux 显示所有进程,-ef 另一种格式 | 查看进程列表 |
| kill | -9 强制杀死,-15 优雅终止 | 结束进程 |
| pkill | 按进程名杀 | 批量结束进程 |
| jobs | -l 显示PID | 查看后台任务 |
| bg/fg | 无 | 将任务放到后台/前台运行 |
示例:
bash
# 找到进程名包含php-fpm的PID
ps aux | grep php-fpm
# 强制杀掉进程ID为1234的进程
kill -9 1234
# 杀掉所有nginx进程
pkill nginx
反常识点:kill -9不是首选。它直接切断进程,可能导致文件损坏或资源没释放。优先用kill -15(默认),给进程5秒钟清理资源。
四、磁盘与存储
| 命令 | 常用参数 | 说明 |
|---|---|---|
| df | -h 人类可读,-i 查看inode | 看磁盘分区使用情况 |
| du | -sh 总大小,-h --max-depth=1 看一级目录 | 看目录或文件大小 |
| lsblk | 无 | 列出所有块设备(硬盘分区) |
| mount | 无 | 查看挂载点 |
示例:
bash
# 看磁盘还剩多少空间
df -h
# 找根目录下最大的10个文件夹
du -sh /* 2>/dev/null | sort -hr | head -10
五、网络排查
| 命令 | 常用参数 | 说明 |
|---|---|---|
| ping | -c 4 只发4次 | 测试连通性和延迟 |
| curl | -I 只看响应头,-o /dev/null -s -w '%{time_total}' 测响应时间 | 测试HTTP请求 |
| wget | -O 指定输出文件名 | 下载文件 |
| netstat | -tunlp 看监听端口和对应进程 | 查看网络连接 |
| ss | -tunp 比netstat更快 | 查看网络连接(新版) |
| traceroute | 无 | 追踪路由路径 |
| nslookup / dig | 无 | 查询DNS解析 |
示例:
bash
# 查看哪个进程在监听80端口
netstat -tunlp | grep :80
# 查看当前所有TCP连接
ss -tunp
# 测试网站响应时间
curl -o /dev/null -s -w 'Total: %{time_total}s\n' https://example.com
六、系统信息与资源
| 命令 | 常用参数 | 说明 |
|---|---|---|
| uptime | 无 | 查看系统运行时间和负载 |
| free | -h 人类可读 | 查看内存使用 |
| uname | -a 所有信息 | 查看内核版本 |
| cat /etc/os-release | 无 | 查看操作系统版本 |
| dmesg | -T 显示时间戳 | 查看内核日志 |
| systemctl | status 状态,start/stop/restart 启停,enable/disable 开机自启 | 管理systemd服务 |
示例:
bash
# 查看系统负载(1分钟、5分钟、15分钟平均值)
uptime
# 查看内存和swap使用
free -h
# 重启nginx服务
systemctl restart nginx
七、压缩与打包
| 命令 | 常用参数 | 说明 |
|---|---|---|
| tar | -czf 创建压缩,-xzf 解压,-tf 查看内容 | 最常用打包工具 |
| zip/unzip | -r 递归压缩 | zip格式 |
| gzip/gunzip | 无 | 单文件压缩 |
示例:
bash
# 打包并压缩整个目录
tar -czf backup.tar.gz /var/www/html
# 解压到当前目录
tar -xzf backup.tar.gz
# 查看压缩包内容(不解压)
tar -tf backup.tar.gz
八、常用快捷键
| 快捷键 | 作用 |
|---|---|
| Ctrl+C | 终止当前命令 |
| Ctrl+Z | 暂停当前命令(放后台) |
| Ctrl+D | 退出当前终端(相当于exit) |
| Ctrl+L | 清屏(相当于clear) |
| Ctrl+A | 光标移到行首 |
| Ctrl+E | 光标移到行尾 |
| Ctrl+U | 删除光标前所有内容 |
| Ctrl+K | 删除光标后所有内容 |
| Tab | 自动补全命令或路径 |
| ↑/↓ | 浏览命令历史 |
一个真实案例
一个刚入行的运维朋友,每天要在不同服务器上排查问题。开始的时候,每执行一个操作都要百度查命令,效率很低。
后来我把这份手册发给他,存在手机备忘录里。他说:“以前查一个chmod参数要2分钟,现在10秒看一眼就行。”
一个月后,他不需要翻手册也能直接敲了。不是背下来了,是用多了自然就记住了。
最后一句
命令手册不是让你背的,是让你用的。遇到不确定的参数,翻出来看一眼。
你会发现,你需要的不是“精通所有命令”,而是“知道有哪些命令可用,用的时候能快速查到”。
存下这份手册。下次忘了,回来翻。