1. CentOS 命令合集:系统管理的瑞士军刀
作为Linux发行版中的常青树,CentOS以其稳定性和企业级特性著称。但真正让运维人员效率倍增的,是那些经过时间检验的命令行工具。记得刚接触CentOS时,面对黑底白字的终端窗口,那种无从下手的窘迫感至今难忘。直到一位前辈告诉我:"掌握50个核心命令,你就能解决90%的服务器问题"。这份合集正是基于这样的实战经验整理而成,涵盖从基础操作到高级排错的完整知识链。
2. 文件与目录操作命令
2.1 基础导航与查看
# 查看当前路径 pwd # 列出目录内容(-l详细信息 -a显示隐藏文件 -h人性化大小) ls -lah /var/log # 切换目录(~用户主目录 - 上次目录 ..上级目录) cd /etc/sysconfig/network-scripts/实际经验:在排查网络问题时,
/etc/sysconfig/network-scripts/目录下的ifcfg-*文件是关键,但直接vim编辑可能造成配置损坏。建议先cp ifcfg-eth0 ifcfg-eth0.bak备份。
2.2 文件操作四件套
# 复制文件(-r递归目录 -p保留属性) cp -rp /home/user/data /backups/ # 移动/重命名(跨设备移动相当于复制+删除) mv old_filename new_filename # 删除文件(-f强制 -r递归) rm -rf /tmp/cache/* # 创建目录(-p创建多级目录) mkdir -p /project/{src,log,backup}磁盘空间异常排查案例:
# 查看磁盘使用情况(-h易读格式 -T显示文件系统类型) df -hT # 找出大文件(--max-depth目录层级 -x不跨越文件系统) du -h --max-depth=1 / | sort -hr # 特殊场景:当df和du结果差异大时,可能是被删除但仍被进程占用的文件 lsof | grep deleted3. 系统监控与性能分析
3.1 实时监控三剑客
# 动态进程监控(1秒刷新 按CPU排序) top -c -d 1 # 增强版top(颜色区分 树状显示) htop # 综合监控工具(内存/磁盘/网络) nmon3.2 网络状态诊断
# 查看监听端口 netstat -tulnp # 现代替代方案 ss -plnt # 路由追踪(-n不解析域名 -q每跳探测包数) traceroute -n -q 1 8.8.8.8 # 持续PING测试(Windows风格-c指定次数) ping -c 10 www.example.com网络配置实战示例:
# 临时修改IP(重启失效) ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # 永久生效需修改(CentOS 7+) vim /etc/sysconfig/network-scripts/ifcfg-ens192 # 重启网络服务(传统方式) service network restart # 新版本系统 systemctl restart NetworkManager4. 软件包管理与服务控制
4.1 YUM/DNF包管理
# 搜索软件包(--showduplicates显示所有版本) yum search nginx # 安装(-y自动确认) yum install -y epel-release # 查看可用版本 yum --showduplicates list mysql-server # 降级软件包 yum downgrade package-version4.2 系统服务管理
# 查看服务状态 systemctl status firewalld # 设置开机启动 systemctl enable nginx # 重启服务(比直接restart更优雅) systemctl reload nginx遇到"没有可用软件包"错误时的解决方案:
# 先清理缓存 yum clean all # 重建缓存 yum makecache # 检查仓库配置 ls -l /etc/yum.repos.d/ # 临时禁用问题仓库 yum --disablerepo=problem_repo install package5. 日志分析与故障排查
5.1 日志查看技巧
# 实时查看最新日志(-f跟踪 -n显示行数) tail -f /var/log/messages # 按时间筛选(--since --until) journalctl --since "2023-08-01" --until "2023-08-02" # 合并查看多个日志 multitail /var/log/nginx/access.log /var/log/nginx/error.log5.2 常见故障处理
案例1:磁盘空间不足
# 快速定位大文件 ncdu / # 查找并删除7天前的日志 find /var/log -type f -name "*.log" -mtime +7 -exec rm {} \;案例2:服务启动失败
# 查看详细错误 journalctl -xe # 测试配置文件语法 nginx -t # 恢复误删配置文件(需安装yum-utils) yum history undo last6. 安全加固与权限管理
6.1 防火墙配置
# 查看开放端口 firewall-cmd --list-all # 永久开放端口 firewall-cmd --permanent --add-port=8080/tcp # 重载配置 firewall-cmd --reload6.2 用户与权限
# 创建系统用户(-r系统用户 -s指定shell) useradd -r -s /sbin/nologin appuser # 修改文件权限(数字模式更精确) chmod 750 /opt/app # 递归修改属主 chown -R appuser:appgroup /dataSELinux问题处理:
# 查看当前状态 getenforce # 临时关闭 setenforce 0 # 修改文件安全上下文 chcon -t httpd_sys_content_t /var/www/html7. 高级技巧与自动化
7.1 命令组合艺术
# 统计当前目录文件数 find . -type f | wc -l # 批量重命名(将.txt改为.md) rename 's/\.txt$/\.md/' *.txt # 并行解压多个文件 ls *.gz | xargs -n1 -P4 gunzip7.2 计划任务管理
# 编辑当前用户crontab crontab -e # 示例:每天3点备份 0 3 * * * /usr/bin/rsync -avz /data /backup # 查看日志 grep CRON /var/log/cron8. 虚拟机与容器相关
8.1 虚拟机管理
# 查看内核模块 lsmod | grep kvm # 检查虚拟化支持 egrep -c '(vmx|svm)' /proc/cpuinfo # 重置忘记的密码(单用户模式) grubby --update-kernel=ALL --args="init=/bin/bash"8.2 Docker基础命令
# 查看运行容器 docker ps # 清理无用镜像 docker image prune -a # 容器内执行命令 docker exec -it nginx bash9. 历史记录与效率工具
9.1 历史命令妙用
# 显示带时间戳的历史记录 export HISTTIMEFORMAT="%F %T " # 快速执行历史命令 !number # 搜索历史命令 Ctrl+R9.2 终端多路复用
# 新建会话 tmux new -s session_name # 分离会话 Ctrl+B D # 恢复会话 tmux attach -t session_name10. 应急恢复与救援
10.1 文件系统修复
# 强制检查文件系统 fsck -y /dev/sda1 # 救援模式挂载 mount -o remount,rw /10.2 网络救援命令
# 临时HTTP下载 python -m SimpleHTTPServer 8000 # 通过网络传输文件 nc -l 1234 > backup.tar # 接收端 nc receiver_ip 1234 < data.tar # 发送端这份命令合集不是简单的罗列,而是基于真实运维场景的解决方案集。每个命令背后都有其设计哲学,比如ls -l的输出格式其实反映了Unix"一切皆文件"的设计理念。建议读者先掌握前20%最常用的命令,再逐步扩展到其他场景。遇到问题时,记住man command永远是最权威的参考手册。