CentOS 7.9入门指南:从安装到Shell脚本编程

发布时间:2026/9/14 23:31:38

CentOS 7.9入门指南:从安装到Shell脚本编程 1. 为什么选择CentOS作为Linux学习起点在众多Linux发行版中CentOS特别适合作为学习起点。作为Red Hat Enterprise LinuxRHEL的社区版本它继承了RHEL的稳定性和企业级特性同时完全免费。我最初选择CentOS时最看重的是它在服务器领域的广泛应用——全球超过30%的企业服务器运行在RHEL/CentOS系统上。CentOS 7.9是目前最成熟的稳定版本其生命周期将持续到2024年。与Ubuntu等发行版相比CentOS的软件包管理工具yum/dnf和系统服务管理systemd更贴近企业实际环境。记得我第一次在CentOS上配置Apache服务时就深刻体会到它的配置文件结构和权限管理对企业运维的友好性。提示虽然CentOS 8已停止维护但CentOS Stream作为滚动发行版仍可选用。不过对初学者建议从CentOS 7.9开始建立完整知识体系。2. 基础环境搭建实战2.1 虚拟机安装要点使用VMware Workstation安装CentOS时有几个关键设置常被忽略虚拟磁盘建议选择将虚拟磁盘拆分成多个文件这样迁移更方便内存分配不应低于2GB特别是要运行GUI时网络适配器选择NAT模式最易上手安装过程中分区方案需要特别注意。我推荐以下分区结构/boot 500MB (标准ext4) / 30GB (xfs文件系统) swap 内存大小的1.5倍不超过8GB /home 剩余所有空间2.2 首次登录后的5个必做配置网络配置nmcli connection modify ens192 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 nmcli connection up ens192关闭SELinux学习阶段建议sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config setenforce 0配置EPEL仓库yum install -y epel-release安装开发工具集yum groupinstall -y Development Tools设置时区timedatectl set-timezone Asia/Shanghai3. Shell脚本编程核心精要3.1 从Hello World到实战脚本初学者常犯的错误是直接复制复杂脚本。我建议从这样的结构开始#!/bin/bash # 作者你的名字 # 日期$(date %F) # 描述这个脚本的功能说明 # 严格模式 set -euo pipefail # 函数定义 usage() { echo 用法$0 [参数] exit 1 } # 主逻辑 main() { local input_file while getopts f: opt; do case $opt in f) input_file$OPTARG ;; *) usage ;; esac done [[ -z $input_file ]] usage # 业务逻辑 if [[ ! -f $input_file ]]; then echo 错误文件不存在 2 exit 2 fi # 处理文件内容 grep -v ^# $input_file | awk {print $1} } main $3.2 定时任务的高级用法crontab的常见误区是环境变量问题。这是我常用的crontab模板# 每分钟检查一次服务 * * * * * source /home/user/.bashrc /path/to/script.sh /var/log/myscript.log 21 # 每天9:30执行 30 9 * * * /usr/bin/flock -xn /tmp/mytask.lock -c /path/to/daily_task.sh关键技巧使用flock防止脚本重复执行明确指定命令全路径通过source加载环境变量错误输出重定向到日志文件4. 开发环境搭建实战4.1 Java环境配置避坑指南OpenJDK安装看似简单但版本管理常出问题。推荐这样安装# 安装OpenJDK 11 yum install -y java-11-openjdk-devel # 多版本管理 alternatives --config java # 环境变量配置写入~/.bashrc cat EOF ~/.bashrc export JAVA_HOME$(dirname $(dirname $(readlink -f $(which java)))) export PATH\$JAVA_HOME/bin:\$PATH EOF常见问题排查执行java -version无输出 → 检查JAVA_HOME设置ClassNotFound异常 → 检查CLASSPATH或jar包路径内存不足 → 调整JVM参数-Xms512m -Xmx1024m4.2 Python多版本管理方案CentOS 7自带的Python 2.7需要与现代Python共存# 安装Python 3.8 yum install -y python38 python38-devel # 创建虚拟环境 python3.8 -m venv /opt/myenv source /opt/myenv/bin/activate # 安装常用包 pip install --upgrade pip pip install numpy pandas requests我习惯用这样的目录结构管理Python项目~/projects/ ├── venvs/ # 所有虚拟环境 ├── src/ # 项目源代码 └── logs/ # 各项目日志5. 系统管理进阶技巧5.1 磁盘扩容完整流程当虚拟机磁盘空间不足时扩容操作需要多个步骤配合在VMware中扩展虚拟磁盘大小在Linux中识别新空间echo 1 /sys/class/scsi_disk/0\:0\:0\:0/device/rescan扩展物理卷pvresize /dev/sda2扩展逻辑卷lvextend -l 100%FREE /dev/centos/root调整文件系统xfs_growfs / # 对xfs文件系统 # 或 resize2fs /dev/centos/root # 对ext45.2 系统服务管理深度解析systemd是现代Linux的核心掌握这些命令至关重要# 查看失败的服务 systemctl --failed # 分析服务启动耗时 systemd-analyze blame # 自定义服务单元示例/etc/systemd/system/myapp.service [Unit] DescriptionMy Custom Application Afternetwork.target [Service] Typesimple Userappuser WorkingDirectory/opt/myapp ExecStart/usr/bin/python3 /opt/myapp/main.py Restarton-failure RestartSec5s [Install] WantedBymulti-user.target重载配置的完整流程systemctl daemon-reload systemctl enable myapp systemctl start myapp journalctl -u myapp -f # 跟踪日志6. 网络配置与防火墙6.1 防火墙规则优化firewalld的富规则(Rich Rules)比直接使用iptables更易管理# 允许特定IP访问SSH firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.100/32 service namessh accept # 开放自定义端口 firewall-cmd --permanent --add-port8080/tcp firewall-cmd --reload # 查看生效规则 firewall-cmd --list-all6.2 网络故障排查工具箱这些命令组合使用能解决90%的网络问题# 连通性测试 ping -c 4 8.8.8.8 mtr --report google.com # 端口检查 telnet example.com 80 nc -zv example.com 443 # DNS解析 dig short example.com nslookup example.com # 路由追踪 traceroute -T -p 80 example.com # 网络统计 ss -tulnp netstat -s7. 安全加固实践7.1 SSH安全配置/etc/ssh/sshd_config的关键修改项Port 2222 # 修改默认端口 PermitRootLogin no MaxAuthTries 3 LoginGraceTime 1m AllowUsers yourusername ClientAliveInterval 300 ClientAliveCountMax 2 PasswordAuthentication no # 强制使用密钥生成更安全的SSH密钥ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed255197.2 定期安全检查脚本这是我每周运行的检查脚本框架#!/bin/bash # 检查未授权的SUID文件 find / -perm -4000 -type f -exec ls -la {} \; 2/dev/null /tmp/suid_check.txt # 检查空密码账户 awk -F: ($2 ) {print $1} /etc/shadow /tmp/empty_passwd.txt # 检查最近修改的文件 find / -mtime -3 -type f -exec ls -la {} \; 2/dev/null /tmp/recent_files.txt # 发送报告 mail -s 安全检查报告 adminexample.com (echo 详见附件; uuencode /tmp/*_check.txt)
延伸阅读

更多相关文章

2026/9/14 9:13:25

静电吸盘(ESC)原理与半导体制造应用解析

1. 静电吸盘(ESC)的基本概念与工作原理静电吸盘(Electrostatic Chuck,简称ESC)是一种利用静电力固定物体的装置,在半导体制造、精密加工等领域发挥着关键作用。它的核心原理是通过施加电压在吸盘表面产生静…

2026/9/14 23:30:33

Web开发中MIME类型配置详解与实战

1. MIME类型基础概念解析MIME(Multipurpose Internet Mail Extensions)类型是互联网上标识文件格式的标准方法,最初设计用于电子邮件系统,后来被广泛应用于HTTP协议。它由类型(type)和子类型(su…

2026/9/10 10:32:13

内容推荐系统三阶混合加权设计与落地实践

1. 项目概述:这不是一个按钮,而是一套内容分发逻辑“Recommended Articles”——看到这个词组,很多人的第一反应是“哦,就是文章页右下角那个带小图的推荐栏”。但干了十多年内容系统搭建和信息流优化的老手都知道,这四…

2026/9/14 23:31:15

支付宝游戏灵画师简易步骤整理

个人经验,仅供参考第一步:收获一波 活动 鱼获,秘宝 每日奖励, 仙盟商店,仙盟灵池, 画中阁,灵田,第二步:挑战一波 精英怪, 仙盟对决,仙盟挑战&…

2026/9/14 23:31:15

Kafka速记:从消息队列原理到集群部署与调优实战

Kafka这三个字母,后端和数据方向的同学基本天天都能碰到。它既是最常用的分布式消息队列,也是实时数据管道的事实标准,凡是涉及日志采集、削峰填谷、事件驱动架构、流式处理的系统,背后大概率都有一组Kafka集群在撑着。“Kafka速记…

2026/9/14 23:31:15

Window server2016远程桌面问题

远程是出现这个问题:解决方法:在 Server2016 虚拟机控制台里面 修改 RDP,关闭 NLA(网络级别身份验证)虚拟机控制台登录 Server2016右键此电脑 → 属性 → 远程设置远程选项卡,取消勾选:仅允许运…

2026/9/14 23:31:15

Spring AI高阶用法实战:模型微调与性能优化

1. Spring AI高阶用法概述Spring AI作为当前最热门的开源AI应用框架之一,其高阶用法在实际项目落地中扮演着关键角色。不同于基础API调用,高阶用法涉及模型微调、性能优化、复杂场景适配等深度技术点,能够显著提升AI应用的质量和效率。在真实…

2026/9/14 23:26:14

全栈创新提升AI硬件竞争力

一句话刚说完, 紧接着立刻有话音响起并表示, “小维小维, 我有点热”, 随后一台风扇就开始自动调整挡位, 然后伴随作出调整, 送出的风也跟着加大了。这是深圳集贤科技有限公司展厅内的日常演示场景 , 存在这样的一种情况 , 看似仅仅只不过是一次并不怎么复杂的对话 , 然而实际上…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码