Linux 命令与运维终极手册(2025 完整版)

🐧 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`
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

ini 复制代码
[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

部署流程:

bash 复制代码
sudo nano /etc/systemd/system/myapp.service   # 编写服务文件
sudo systemctl daemon-reload                  # 重载 systemd 配置
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

常见示例:

bash 复制代码
# 每天凌晨 2 点备份数据库
0 2 * * * /usr/bin/mysqldump -u root -pMyPass db > /backup/db_$(date +\%F).sql

# 每 5 分钟检查 Nginx 是否运行
*/5 * * * * systemctl is-active nginx || systemctl start nginx

# 每周一上午 9 点清理 7 天前的日志
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
  • 所有命令均可直接复制到终端运行(替换示例中的文件名/路径即可)
相关推荐
qq_398586546 小时前
小小电脑安装logisim-evolution
linux·proot
上海蓝色星球6 小时前
基于3DGIS+BIM的智慧园区运维平台价值分享
运维·人工智能·3d
一个处女座的暖男程序猿7 小时前
2G2核服务器安装ES 7X版本
服务器·elasticsearch·jenkins
塔能物联运维7 小时前
物联网设备物理环境自适应监控与运维策略优化
运维·物联网
oioihoii7 小时前
不止于Linux:百花齐放的开源世界与社区的力量
linux·运维·开源
打不了嗝 ᥬ᭄7 小时前
传输层协议TCP
linux·服务器·网络·c++·tcp/ip
moringlightyn7 小时前
基础开发工具--编译器g++/gcc 自动化构建make/Makefile
linux·运维·笔记·自动化·c·编译器·make/makefile
小白学大数据8 小时前
集成Scrapy与异步库:Scrapy+Playwright自动化爬取动态内容
运维·爬虫·scrapy·自动化
程序员陆通8 小时前
CentOS/AlmaLinux 9 中 SSH 服务启动失败:OpenSSL 版本不匹配解决
linux·centos·ssh