
1. Linux命令基础与CentOS 7环境准备作为Linux系统管理员掌握常用命令是日常工作的基本功。CentOS 7作为企业级Linux发行版的代表其稳定性和安全性使其成为服务器环境的首选。在开始命令学习前我们需要先理解几个核心概念Shell用户与Linux内核交互的接口CentOS 7默认使用BashBourne Again Shell终端提供命令行界面的程序可以是物理控制台或SSH远程连接命令结构通常由命令 [选项] [参数]组成选项用-或--引导提示所有命令都区分大小写建议在虚拟机或测试环境中练习避免直接在生产环境操作1.1 CentOS 7最小化安装建议对于学习命令的环境推荐使用最小化安装# 查看系统版本确认环境 cat /etc/redhat-release uname -r典型最小化安装后的初始操作# 更新系统 yum update -y # 安装常用工具 yum install -y vim wget curl net-tools # 创建练习用的测试用户 useradd testuser passwd testuser2. 文件与目录操作命令精要2.1 基础导航命令pwd # 显示当前工作目录 cd # 切换目录 ls # 列出目录内容实际应用场景示例# 进入用户家目录 cd ~ # 列出所有文件包括隐藏文件 ls -la # 递归列出/var目录内容 ls -lR /var | less2.2 文件操作进阶技巧# 创建多层目录结构 mkdir -p project/{src,doc,log} # 批量创建测试文件 touch file{1..10}.txt # 安全删除交互式确认 rm -i *.txt # 查找并删除7天前的日志文件 find /var/log -name *.log -mtime 7 -exec rm {} \;注意rm -rf命令极其危险执行前务必确认路径。曾有工程师因误删根目录导致重大事故3. 系统信息查询与监控3.1 硬件信息获取# CPU信息 lscpu cat /proc/cpuinfo # 内存使用情况 free -h vmstat 1 5 # 每1秒刷新共5次 # 磁盘信息 lsblk df -hT3.2 进程管理实战# 查看进程树 pstree -p # 动态监控进程 top # 更友好的替代方案 htop # 需额外安装yum install htop # 杀死进程的几种方式 kill -9 PID # 强制终止 pkill -f nginx # 按名称终止4. 用户与权限深度管理4.1 用户组管理示例# 创建开发组 groupadd developers # 添加用户到组 usermod -aG developers testuser # 验证组成员 groups testuser4.2 权限控制实践理解Linux权限模型rwx r-x r-x │││ │││ │││ │││ │││ └─ 其他用户权限 │││ └┴─── 所属组权限 └┴┴───── 所有者权限设置特殊权限位# 设置SUID执行时以所有者身份运行 chmod us /usr/bin/testapp # 设置目录的SGID新建文件继承组 chmod gs /shared_dir # 设置粘滞位只有所有者能删除 chmod ot /tmp/restricted5. 软件包管理全攻略5.1 YUM仓库配置# 备份原有仓库配置 mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ # 配置阿里云镜像源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache5.2 软件管理常用操作# 搜索软件包 yum search nginx # 查看软件信息 yum info nginx # 安装特定版本 yum install nginx-1.20.1 # 查看已安装软件 yum list installed | grep nginx # 安全移除软件 yum autoremove nginx6. 网络配置与故障排查6.1 基础网络命令# 查看IP配置 ip addr show # 测试连通性 ping -c 4 baidu.com # 路由追踪 traceroute google.com # 查看开放端口 ss -tulnp6.2 网络服务管理# 传统服务管理 service network restart # 现代systemd方式 systemctl restart network # 查看服务状态 systemctl status firewalld # 设置开机启动 systemctl enable httpd7. 文本处理三剑客7.1 grep文本搜索# 递归搜索目录中的关键词 grep -r error /var/log/ # 显示匹配行前后内容 grep -A 3 -B 2 critical system.log # 使用正则表达式 grep -E ^[0-9]{3}-[0-9]{4} contacts.txt7.2 sed流编辑器# 替换文件内容 sed -i s/old/new/g file.txt # 删除空白行 sed /^$/d input.txt output.txt # 提取特定行 sed -n 10,20p access.log7.3 awk数据处理# 统计日志中不同状态码出现次数 awk {print $9} access.log | sort | uniq -c # 计算CSV文件某列总和 awk -F, {sum$3} END {print sum} data.csv # 格式化输出系统用户 awk -F: {printf %-15s %s\n, $1, $6} /etc/passwd8. 磁盘管理与性能优化8.1 磁盘使用分析# 交互式磁盘使用分析 ncdu / # 需安装yum install ncdu # 查找大文件 find / -type f -size 100M -exec ls -lh {} \; # 监控磁盘I/O iotop -oP8.2 LVM基础操作# 查看物理卷 pvdisplay # 创建卷组 vgcreate vg_data /dev/sdb # 创建逻辑卷 lvcreate -L 10G -n lv_mysql vg_data # 扩展逻辑卷 lvextend -L 5G /dev/vg_data/lv_mysql resize2fs /dev/vg_data/lv_mysql9. 系统服务与日志分析9.1 journalctl日志管理# 查看系统日志 journalctl -xe # 按时间筛选 journalctl --since 2023-01-01 --until 2023-01-02 # 按服务筛选 journalctl -u nginx # 实时监控新日志 journalctl -f9.2 定时任务配置# 编辑当前用户crontab crontab -e # 查看系统crontab cat /etc/crontab # 常见示例 - 每天凌晨备份 0 3 * * * /usr/bin/rsync -avz /data/ backup:/backups10. 安全加固实践10.1 SSH安全配置/etc/ssh/sshd_config关键参数PermitRootLogin no PasswordAuthentication no AllowUsers admin backup Port 2222应用配置systemctl restart sshd # 测试连接前保持现有会话 ssh -p 2222 adminserver10.2 防火墙规则示例# 放行HTTP/HTTPS firewall-cmd --permanent --add-servicehttp firewall-cmd --permanent --add-servicehttps # 限制SSH访问IP firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.100 service namessh accept # 重载配置 firewall-cmd --reload11. 性能监控与优化11.1 实时系统监控# 综合监控 glances # 需安装yum install glances # 内存分析 smem -s swap -r # 网络流量监控 nload11.2 调优参数示例# 临时修改内核参数 sysctl -w vm.swappiness10 # 永久生效 echo vm.swappiness 10 /etc/sysctl.conf sysctl -p12. 备份与恢复策略12.1 文件系统备份# 完整备份 tar -cvpzf /backups/full_backup_$(date %F).tar.gz \ --exclude/backups \ --exclude/proc \ --exclude/tmp \ /12.2 数据库备份示例# MySQL备份 mysqldump -u root -p --all-databases | gzip /backups/mysql_$(date %F).sql.gz # PostgreSQL备份 pg_dumpall | gzip /backups/pgsql_$(date %F).sql.gz13. 容器化环境基础13.1 Docker快速入门# 安装Docker yum install -y docker systemctl start docker # 运行测试容器 docker run -it --rm centos:7 bash # 查看运行容器 docker ps13.2 Podman替代方案# 安装Podman yum install -y podman # 无守护进程运行容器 podman run -d -p 8080:80 nginx # 生成systemd服务文件 podman generate systemd --name my_nginx /etc/systemd/system/my_nginx.service14. 自动化运维基础14.1 Shell脚本示例#!/bin/bash # 备份脚本示例 BACKUP_DIR/backups/$(date %F) mkdir -p $BACKUP_DIR # 备份重要目录 tar -czf $BACKUP_DIR/etc.tar.gz /etc tar -czf $BACKUP_DIR/var_www.tar.gz /var/www # 保留最近7天备份 find /backups -type d -mtime 7 -exec rm -rf {} \;14.2 计划任务集成# 每天凌晨执行备份 0 2 * * * /usr/local/bin/backup_script.sh # 每周日执行安全检查 0 4 * * 0 /usr/local/bin/security_check.sh15. 常见问题排查指南15.1 启动故障处理# 查看启动日志 journalctl -b # 救援模式操作 # 1. 重启并在GRUB界面按e编辑 # 2. 在linux16行末尾添加 init/bin/bash # 3. Ctrlx启动进入单用户模式15.2 性能瓶颈定位# 综合检查 sar -u 1 3 # CPU使用率 sar -r 1 3 # 内存使用 sar -b 1 3 # I/O统计 # 进程级监控 pidstat 116. 命令使用高级技巧16.1 命令组合应用# 统计当前目录各种类型文件数量 find . -type f | awk -F. {print $NF} | sort | uniq -c | sort -nr # 监控目录变化 watch -n 1 ls -l | awk {print \$5,\$9}16.2 历史命令优化# 设置历史命令格式 export HISTTIMEFORMAT%F %T # 忽略重复命令 export HISTCONTROLignoredups # 增加历史记录数量 export HISTSIZE1000017. 终端效率工具17.1 tmux多会话管理# 新建会话 tmux new -s dev # 分离会话 Ctrlb d # 恢复会话 tmux attach -t dev # 多窗口管理 Ctrlb c # 新建窗口 Ctrlb n # 下一个窗口17.2 终端复用技巧# 同时操作多台服务器 # 安装工具 yum install -y epel-release yum install -y clusterssh # 配置集群 cssh server1 server2 server318. 系统调优实战18.1 文件系统优化# 调整ext4文件系统参数 tune2fs -o journal_data_writeback /dev/sda1 tune2fs -O ^has_journal /dev/sda1 # 优化挂载选项 vim /etc/fstab # 添加noatime,nodiratime,datawriteback18.2 内核参数优化/etc/sysctl.conf关键参数# 提高TCP性能 net.ipv4.tcp_fin_timeout 30 net.ipv4.tcp_tw_reuse 1 # 提高内存管理 vm.swappiness 10 vm.dirty_ratio 4019. 版本控制集成19.1 Git基础操作# 安装Git yum install -y git # 克隆仓库 git clone https://github.com/user/repo.git # 提交更改 git add . git commit -m 更新配置 git push origin master19.2 配置管理示例# 备份重要配置文件 git init /etc git add /etc/ssh/sshd_config git commit -m 初始SSH配置 # 后续更改跟踪 git diff git commit -a -m 更新SSH配置20. 持续学习建议手册页任何命令后加--help或man 命令查看详细文档信息页info 命令获取更结构化文档如coreutils在线资源Linux文档项目(tldp.org)RHEL官方文档(access.redhat.com)实践环境# 创建安全的练习环境 docker run -it --rm centos:7 bash最后分享一个实用技巧使用alias创建常用命令的快捷方式例如alias llls -alF alias grepgrep --colorauto alias updateyum update -y yum upgrade -y将这些添加到~/.bashrc中可永久生效