CentOS核心命令实战指南:从基础到高级运维
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-depth1 / | 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 --disablerepoproblem_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-port8080/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-kernelALL --argsinit/bin/bash8.2 Docker基础命令# 查看运行容器 docker ps # 清理无用镜像 docker image prune -a # 容器内执行命令 docker exec -it nginx bash9. 历史记录与效率工具9.1 历史命令妙用# 显示带时间戳的历史记录 export HISTTIMEFORMAT%F %T # 快速执行历史命令 !number # 搜索历史命令 CtrlR9.2 终端多路复用# 新建会话 tmux new -s session_name # 分离会话 CtrlB 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永远是最权威的参考手册。