🐧 Linux 命令与运维终极手册(2025 完整版)
✅ 覆盖文件操作、系统监控、网络、服务管理、定时任务、自定义服务等
✅ 所有命令均经验证,可直接复制使用
✅ 适用于 Ubuntu / CentOS / Debian 等主流发行版
一、📁 文件与目录操作
| 命令 | 说明 | 
|---|
ls | 列出当前目录下的文件和目录 | 
ls -a | 显示包括隐藏文件(以 . 开头)在内的所有内容 | 
ls -l | 以详细格式列出文件(权限、所有者、大小、时间等) | 
ls -la | 详细格式 + 显示隐藏文件 | 
ls -lt | 按修改时间排序(最新在前) | 
ls -ltr | 按修改时间逆序(最新在后) | 
ls -lS | 按文件大小降序排列 | 
ls -lX | 按文件扩展名/类型排序 | 
pwd | 显示当前工作目录的完整路径 | 
cd 目录名 | 进入指定目录 | 
cd .. | 返回上一级目录 | 
cd ../.. | 返回上两级目录 | 
mkdir 目录名 | 创建一个新目录 | 
mkdir -p a/b/c | 递归创建多级目录(若父目录不存在则自动创建) | 
rmdir 目录名 | 删除空目录 | 
rm 文件名 | 删除文件 | 
rm -r 目录名 | 递归删除非空目录及其内容(⚠️谨慎使用) | 
rm -f 文件名 | 强制删除(不提示确认) | 
cp 源文件 目标文件 | 复制文件 | 
cp -r 源目录 目标目录 | 递归复制整个目录 | 
mv 旧名称 新名称 | 重命名文件或目录 | 
mv 源文件 目标路径 | 移动文件或目录 | 
find /path -name "文件名" | 在指定路径下按名称查找文件(支持通配符如 *.log) | 
二、📄 文件内容查看与文本处理
| 命令 | 说明 | 
|---|
cat 文件名 | 显示文件全部内容(适合小文件) | 
less 文件名 | 分页查看文件(按 q 退出,/关键词 搜索) | 
more 文件名 | 简单分页查看(仅支持向下翻页) | 
head 文件名 | 显示文件前 10 行 | 
head -n N 文件名 | 显示文件前 N 行 | 
tail 文件名 | 显示文件后 10 行 | 
tail -n N 文件名 | 显示文件后 N 行 | 
tail -f 文件名 | 实时跟踪文件末尾内容(常用于日志监控,按 Ctrl+C 退出) | 
grep "关键词" 文件名 | 在文件中搜索包含关键词的行 | 
grep -n "关键词" 文件名 | 搜索并显示行号 | 
grep -r "关键词" /路径/ | 递归搜索目录下所有文件 | 
grep -i "关键词" 文件名 | 忽略大小写搜索 | 
sed 's/旧文本/新文本/g' 文件名 | 替换文本(不修改原文件,仅输出结果) | 
awk '{print $1}' 文件名 | 提取每行的第一列(默认以空格分隔) | 
wc -l 文件名 | 统计文件行数 | 
三、🖥️ 系统信息查看
| 命令 | 说明 | 
|---|
whoami | 显示当前登录用户名 | 
date | 显示当前系统日期和时间 | 
date "+%Y-%m-%d %H:%M:%S" | 自定义时间格式输出(常用于脚本) | 
date -Iseconds | 输出 ISO 8601 格式时间(如 2025-10-13T09:00:00+08:00) | 
date -R | 输出 RFC 2822 格式时间(用于邮件、HTTP 头) | 
uname -a | 显示内核版本、主机名、系统架构等完整信息 | 
hostname | 显示当前主机名 | 
uptime | 显示系统运行时间及 1/5/15 分钟负载平均值 | 
df -h | 以人类可读方式(KB/MB/GB)显示磁盘空间使用情况 | 
du -h 目录名 | 显示指定目录的磁盘使用量 | 
free -h | 以人类可读方式显示内存和交换空间使用情况 | 
四、⚙️ 进程与端口管理
| 命令 | 说明 | 
|---|
ps aux | 显示所有进程的详细信息 | 
ps aux | grep 进程名 | 查找特定进程 | 
top | 实时动态查看系统资源和进程(按 q 退出) | 
htop | 更友好的交互式进程查看器(需安装:sudo apt install htop) | 
kill PID | 终止指定进程(PID 为进程 ID) | 
kill -9 PID | 强制终止进程(不可被捕获) | 
netstat -tuln | 显示所有监听的 TCP/UDP 端口(传统命令) | 
ss -tuln | 更快的现代替代命令(推荐) | 
netstat -tuln | grep :8080 | 查看 8080 端口是否被监听 | 
lsof -i :端口号 | 查看占用指定端口的进程(如 lsof -i :3306) | 
fuser 8080/tcp | 显示使用 8080 TCP 端口的进程 ID | 
sudo kill -9 $(lsof -t -i:8080) | 一键杀死占用 8080 端口的进程 | 
五、📦 打包与解压
5.1 tar 格式(未压缩)
| 命令 | 说明 | 
|---|
tar -cvf archive.tar 目录/ | 打包目录为 .tar 文件 | 
tar -xvf archive.tar | 解压 .tar 文件 | 
tar -xvf archive.tar -C /目标目录 | 解压到指定目录 | 
5.2 tar.gz 格式(gzip 压缩)
| 命令 | 说明 | 
|---|
tar -czvf archive.tar.gz 目录/ | 打包并压缩为 .tar.gz | 
tar -xzvf archive.tar.gz | 解压 .tar.gz 文件 | 
tar -xzvf archive.tar.gz -C /目标目录 | 解压到指定目录 | 
5.3 zip 格式(跨平台兼容)
| 命令 | 说明 | 
|---|
zip -r archive.zip 目录/ | 压缩目录为 .zip 文件 | 
unzip archive.zip | 解压 .zip 文件 | 
unzip archive.zip -d /目标目录 | 解压到指定目录 | 
💡 提示:.tar.gz 压缩率高,适合 Linux;.zip 兼容 Windows/macOS。
六、🌐 远程操作
| 命令 | 说明 | 
|---|
ssh 用户名@服务器IP | 远程登录服务器(如 ssh user@192.168.1.100) | 
exit | 退出 SSH 会话 | 
scp 本地文件 user@host:/远程路径 | 从本地复制文件到远程服务器 | 
scp -r 本地目录 user@host:/远程路径 | 递归复制整个目录到远程 | 
scp user@host:/远程文件 ./本地目录/ | 从远程服务器下载文件到本地 | 
scp -r user@host:/远程目录 ./本地目录/ | 从远程下载整个目录到本地 | 
rsync -avz 源/ user@host:/目标/ | 高效同步文件(增量传输,推荐用于备份) | 
七、⚙️ 环境变量与配置
| 命令 | 说明 | 
|---|
printenv | 查看所有环境变量 | 
echo $PATH | 查看单个环境变量(如 PATH) | 
export VAR=value | 设置临时环境变量(当前会话有效) | 
echo 'export VAR=value' >> ~/.bashrc | 将变量写入配置文件(永久生效) | 
source ~/.bashrc | 重新加载配置文件,使变量立即生效 | 
八、🔐 权限与用户管理
| 命令 | 说明 | 
|---|
chmod 755 文件名 | 修改文件权限(rwxr-xr-x) | 
chmod +x 脚本.sh | 给文件添加可执行权限 | 
chown user:group 文件名 | 修改文件所有者和所属组 | 
sudo 命令 | 以超级用户权限执行命令 | 
passwd 用户名 | 修改用户密码 | 
九、🔄 服务管理(systemd)
| 命令 | 说明 | 
|---|
sudo systemctl start 服务名 | 启动服务(如 nginx, myapp) | 
sudo systemctl stop 服务名 | 停止服务 | 
sudo systemctl restart 服务名 | 重启服务 | 
sudo systemctl reload 服务名 | 重载配置(不中断服务) | 
sudo systemctl status 服务名 | 查看服务运行状态与日志片段 | 
sudo systemctl enable 服务名 | 设置开机自启 | 
sudo systemctl disable 服务名 | 禁用开机自启 | 
systemctl list-units --type=service --state=running | 列出所有正在运行的服务 | 
sudo journalctl -u 服务名 | 查看服务完整日志 | 
sudo journalctl -f -u 服务名 | 实时跟踪服务日志 | 
自定义服务文件模板(/etc/systemd/system/myapp.service)
[Unit]
Description=My Custom Application
After=network.target
Wants=network.target[Service]
Type=simple
User=myuser
Group=myuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/python3 /opt/myapp/app.py
Restart=always
RestartSec=10
Environment=PYTHONUNBUFFERED=1[Install]
WantedBy=multi-user.target
部署流程:
sudo nano /etc/systemd/system/myapp.service   
sudo systemctl daemon-reload                  
sudo systemctl start myapp                    
sudo systemctl enable myapp                   
sudo systemctl status myapp                   
sudo journalctl -u myapp -f                   
✅ 最佳实践:
- 使用非 root 用户运行服务
 ExecStart 必须使用绝对路径(用 which python3 查询)- 虚拟环境路径示例:
ExecStart=/home/user/app/venv/bin/gunicorn app:app 
十、⏰ 定时任务(Cron)
| 命令 | 说明 | 
|---|
crontab -e | 编辑当前用户的定时任务 | 
crontab -l | 列出当前用户的定时任务 | 
crontab -r | 删除当前用户的所有定时任务(⚠️谨慎!) | 
Cron 表达式格式(5 个时间字段):
# 分 时 日 月 周  命令
# *  *  *  *  *  /path/to/command
常见示例:
0 2 * * * /usr/bin/mysqldump -u root -pMyPass db > /backup/db_$(date +\%F).sql
*/5 * * * * systemctl is-active nginx || systemctl start nginx
0 9 * * 1 find /var/log -name "*.log" -mtime +7 -delete
⚠️ 注意:在 crontab 中 % 需转义为 \%,否则会被视为换行符。
系统级定时任务目录(无需 crontab -e)
| 目录 | 执行频率 | 
|---|
/etc/cron.hourly/ | 每小时执行一次 | 
/etc/cron.daily/ | 每天执行一次 | 
/etc/cron.weekly/ | 每周执行一次 | 
/etc/cron.monthly/ | 每月执行一次 | 
脚本需有执行权限:chmod +x /etc/cron.daily/mybackup
✅ 使用建议:
- 新手优先掌握:
ls, cd, grep, ps, systemctl, crontab, scp, tar - 所有命令均可直接复制到终端运行(替换示例中的文件名/路径即可)