前言本文按基础操作、文件目录、文本处理、用户权限、进程服务、网络、磁盘、压缩、软件安装、定时任务、高级三剑客、服务器运维排错分类适配 CentOS7/8、Ubuntu、Debian所有指令附带实战示例后端 / 电商服务器日常运维全覆盖。一、基础入门指令1. 帮助手册bash运行man ls # 查看完整命令手册 ls --help # 简短帮助信息 whatis ls # 一句话简述命令功能 history # 查看执行过的所有历史命令 !120 # 执行history中第120行命令 !! # 重复上一条命令2. 路径与目录定位bash运行pwd # 打印当前所在绝对路径 cd /usr/local # 切换到指定目录 cd ~ # 回到当前用户家目录 cd - # 切换回上一次所在目录 cd .. # 上级目录 cd ../soft # 上级目录下soft文件夹3. 系统基础信息bash运行whoami # 查看当前登录用户名 who # 查看所有登录服务器用户 w # 登录用户负载运行时间 hostname # 主机名 hostnamectl set-hostname sp-server # 修改主机名 date # 当前系统时间 date -s 2026-07-08 10:00:00 # 修改系统时间 cal # 日历 uname -a # 完整内核版本信息 uptime # 开机时长、系统负载 clear # 清屏4. Shell 常用快捷键plaintextCtrl c 终止当前运行命令 Ctrl z 后台暂停程序 Ctrl l 清屏等价clear Ctrl a 光标跳到行首 Ctrl e 光标跳到行尾 Ctrl r 搜索历史命令 Tab 自动补全文件/命令二、文件与目录操作1. 查看目录列表 lsbash运行ls # 列出当前目录文件 ls -l # 详细信息权限、所有者、大小、时间 ls -ll # 等价ls -l ls -a # 显示隐藏文件.开头 ls -lh # 人性化显示文件大小 KB/MB/GB ls -lt # 按修改时间倒序 ls -ltr # 按修改时间正序 ls /opt/java # 查看指定目录内容 ls *.log # 只查看后缀log文件2. 创建、删除、复制、移动bash运行# 创建文件夹 mkdir test mkdir -p /opt/project/pay # 递归创建多级目录 # 创建空文件 touch app.log touch test{1..5}.txt # 批量创建test1~test5.txt # 复制 cp cp app.jar /opt/ cp -r pay/ /opt/ # -r 复制文件夹 cp -rf pay/ /opt/ # 强制覆盖不提示 # 移动/重命名 mv mv test.txt demo.txt # 重命名 mv demo.txt /opt/ # 移动文件 mv pay /opt/pay-v1 # 移动并重命名文件夹 # 删除 rm高危慎用 rm test.txt rm -f test.log # 强制删除不询问 rm -r temp/ # 删除文件夹 rm -rf temp/ # 强制递归删除生产谨慎3. 查找文件 findbash运行# 在/opt下查找所有jar包 find /opt -name *.jar # 查找名为application.yml的文件 find / -name application.yml # 查找大于100M的日志文件 find /logs -size 100M # 查找30天前的日志并删除 find /logs -name *.log -mtime 30 -delete # 查找文件并执行复制 find /opt -name *.log -exec cp {} /backup \;4. 软链接 lnbash运行ln -s /opt/jdk1.8 /usr/local/jdk # 创建软链接 ls -l /usr/local/jdk # 查看链接指向 rm -rf /usr/local/jdk # 删除软链接不加/三、文本查看与编辑指令1. 文件内容查看bash运行cat app.log # 一次性输出全部内容小文件 cat -n app.log # 带行号 tac app.log # 倒序输出文件 more app.log # 分页查看空格翻页 q退出 less app.log # 增强分页支持上下翻页 /搜索字符串 head -n 20 app.log # 查看前20行 tail -n 50 app.log # 查看最后50行 tail -f app.log # 实时跟踪日志控制台打印 tail -F app.log # 日志切割后依然跟踪生产日志首选 tail -n 1000 -f app.log # 最后1000行实时刷新2. 文本编辑 nano/vimbash运行# nano简易编辑器 nano test.txt # 保存 CtrlO 退出 CtrlX # vim高级编辑器 vim test.txt # i 编辑模式esc :w 保存:q 退出:wq 保存退出:q! 强制不保存退出 # :set nu 显示行号/关键词 搜索3. 文件对比bash运行diff a.txt b.txt # 对比两个文件差异 vimdiff a.txt b.txt # 可视化对比四、用户、用户组、权限管理1. 用户管理bash运行# 添加用户 useradd dev useradd -m ops -s /bin/bash # 自动创建家目录指定shell # 设置密码 passwd dev # 删除用户 userdel dev userdel -r dev # 删除用户家目录 # 切换用户 su dev # 切换用户环境变量不变 su - dev # 完整切换用户加载用户环境 # 查看用户列表 cat /etc/passwd # 查看登录日志 last lastlog2. 用户组管理bash运行groupadd pay-group usermod -aG pay-group dev # 将dev加入组pay-group groups dev # 查看用户所属组3. 权限 chmod权限数字说明4 读 r 2 写 w 1 执行 xbash运行# 数字权限 chmod 755 start.sh # 所有者rwx 组rx 其他rx chmod 777 test.txt # 所有人全部权限禁止生产使用 chmod 644 app.yml # 文件默认权限 rw-r--r-- # 符号权限 chmod ux start.sh # 给所有者增加执行权限 chmod g-w test.txt # 取消组写入权限 chmod or test.txt # 其他用户仅可读 chmod -R 755 /opt/pay # 递归修改文件夹所有文件权限4. 修改文件归属 chownbash运行chown dev:dev app.jar # 文件所有者所属组改为dev chown -R dev:dev /opt/pay # 递归修改目录所有文件归属 chown dev app.log # 仅修改所有者5. sudo 权限配置bash运行visudo # 配置dev免密sudo dev ALL(ALL) NOPASSWD:ALL五、进程、服务、端口管理1. 查看进程bash运行ps aux # 完整进程列表 ps -ef # 树形进程 ps -ef | grep java # 过滤java进程 pgrep java # 只输出java进程PID top # 实时资源监控 CPU/内存 htop # 增强版top需安装2. 终止进程 killbash运行kill 1234 # 优雅关闭进程PID1234 kill -9 1234 # 强制杀死无法回收资源尽量少用 pkill -f java # 批量杀死所有java进程 pkill nginx # 按进程名杀死3. 端口占用排查bash运行# CentOS7 netstat -tulpn | grep 8080 ss -tulpn | grep 8080 # ss比netstat更快 # lsof 查看端口占用 lsof -i :8080 lsof -i tcp:33064. systemd 服务管理bash运行systemctl start nginx # 启动服务 systemctl stop nginx # 停止 systemctl restart nginx # 重启 systemctl status nginx # 查看运行状态 systemctl enable nginx # 开机自启 systemctl disable nginx # 取消开机自启 systemctl list-units --typeservice # 列出所有服务 journalctl -u nginx -f # 实时查看服务日志六、网络操作1. 连通测试bash运行ping www.baidu.com ping -c 4 www.baidu.com # 只发4个包停止 traceroute www.baidu.com # 路由追踪 curl https://xxx.com/api/pay/notify # 访问接口测试回调地址 wget https://xxx.com/file.jar # 下载文件2. IP、网卡信息bash运行ip addr # 查看本机网卡IP ifconfig # 老版本网卡查看 hostname -i # 本机内网IP cat /etc/hosts # 本地域名映射3. 文件远程传输 scp/rsyncbash运行# 本地文件传到远程服务器 scp app.jar root192.168.1.100:/opt/ # 远程文件夹拉取到本地 scp -r root192.168.1.100:/logs ./ # rsync增量同步生产备份首选 rsync -avz /opt/pay root192.168.1.100:/backup/4. 防火墙 firewalldCentOSbash运行systemctl status firewalld # 开放8080端口永久放行 firewall-cmd --add-port8080/tcp --permanent firewall-cmd --reload # 重载生效 firewall-cmd --list-ports # 查看放行端口 # 关闭防火墙测试环境 systemctl stop firewalld5. DNS 域名解析bash运行nslookup baidu.com dig baidu.com七、磁盘、内存、挂载管理1. 磁盘整体使用率bash运行df -h # 人性化查看磁盘分区占用 df -i # 查看inode占用小文件过多会爆满 du -sh /opt # 查看文件夹总大小 du -h --max-depth1 /opt # 一级目录大小统计2. 内存、Swap 查看bash运行free -h # 内存、交换分区使用 cat /proc/meminfo # 详细内存参数 vmstat 2 # 每2秒输出系统IO/内存状态3. 磁盘挂载 / 卸载bash运行mount /dev/vdb1 /data # 挂载磁盘分区到/data umount /data # 卸载目录 # 开机自动挂载写入/etc/fstab八、压缩与解压1. tar.gz 最常用bash运行# 压缩 tar -zcvf pay.tar.gz /opt/pay # 解压到当前目录 tar -zxvf pay.tar.gz # 解压到指定文件夹 tar -zxvf pay.tar.gz -C /backup/ # 不解压查看包内文件 tar -ztvf pay.tar.gz参数说明z (gz 压缩) c (打包) x (解压) v (打印过程) f (指定文件名)2. zip/unzipbash运行# 压缩 zip -r pay.zip /opt/pay # 解压 unzip pay.zip unzip pay.zip -d /backup九、软件包安装CentOS yum / Ubuntu aptCentOS / RHEL / Rockyyum/dnfbash运行yum list installed # 查看已安装软件 yum search nginx # 搜索软件 yum install nginx -y # 安装 yum remove nginx -y # 卸载 yum update # 全系统更新 yum clean all # 清理缓存 # rpm本地包安装 rpm -ivh mysql.rpm rpm -qa | grep mysql # 查询安装包 rpm -e mysql # 卸载rpm包Ubuntu / Debianaptbash运行apt update apt install nginx -y apt remove nginx apt list --installed十、文本处理三剑客grep、sed、awk1. grep 过滤文本 / 日志搜索bash运行grep 支付成功 app.log grep -i error app.log # 忽略大小写 grep -v info app.log # 反向匹配排除info grep -n Exception app.log # 输出匹配行号 grep -r order_no /logs # 递归目录搜索所有文件 # 多条件同时匹配 grep 2026-07-08 app.log | grep 支付失败2. sed 流式编辑bash运行# 替换文件中所有8080为8090-i直接修改原文件 sed -i s/8080/8090/g application.yml # 删除包含debug的行 sed -i /debug/d logback.xml # 在第10行新增内容 sed -i 10a new line test.txt3. awk 结构化文本统计bash运行# 打印文件第1、3列 awk {print $1,$3} data.txt # 过滤日志中响应时间大于500ms awk $5500 {print $0} app.log # 统计访问IP次数 awk {print $1} access.log | sort | uniq -c | sort -nr十一、定时任务 crontab1. 基础用法bash运行crontab -e # 编辑当前用户定时任务 crontab -l # 查看定时任务列表 crontab -r # 删除所有定时任务2. 时间格式分 时 日 月 周plaintext# 每分钟执行 * * * * * /opt/script/clean-log.sh # 每天凌晨2点执行 0 2 * * * /opt/backup/pay-backup.sh # 每30分钟执行 */30 * * * * java -jar monitor.jar # 每周一凌晨3点 0 3 * * 1 /opt/script/order-stat.sh十二、服务器运维综合排错高频组合命令1. 日志实时排查bash运行tail -F /logs/pay/app.log | grep -i exception2. 快速定位占用磁盘大文件bash运行du -h --max-depth1 / | sort -hr3. 查找占用 CPU 最高进程bash运行ps aux --sort-%cpu | head -104. 批量杀死僵尸 java 进程bash运行ps -ef | grep java | grep -v grep | awk {print $2} | xargs kill -95. 统计 Nginx 访问量 Top10 IPbash运行awk {print $1} /usr/local/nginx/logs/access.log | sort | uniq -c | sort -nr | head -106. 批量替换配置文件密钥bash运行sed -i s/old_key/new_key/g /opt/pay/*.yml十三、生产环境安全禁用 / 谨慎指令清单rm -rf /绝对禁止会清空系统根目录chmod 777禁止用于业务配置、密钥文件kill -9尽量不用优先kill优雅关闭服务定时任务不要使用 root 执行业务脚本最小权限原则线上不要随意执行yum update避免依赖升级引发服务故障禁止把密钥、密码明文写入 shell 脚本避免泄露