目录
目录
什么是CentOS?
CentOS的历史与版本
主要版本历程
CentOS的特点
CentOS的安装
4.1 硬件要求
4.2 安装步骤
4.3 常见安装选项
初始配置
5.1 更新系统
5.2 配置网络
5.3 设置主机名
包管理
6.1 YUM简介
6.2 常用YUM命令
6.3 配置YUM仓库
用户与权限管理
7.1 添加与删除用户
7.2 用户组管理
7.3 权限与所有权
文件系统与目录结构
8.1 常见目录介绍
8.2 挂载与分区管理
网络配置
9.1 配置静态IP
9.2 配置动态IP(DHCP)
9.3 网络服务管理
防火墙与安全
10.1 配置Firewalld
10.2 安装与配置SELinux
10.3 SSH安全配置
服务管理
11.1 Systemd简介
11.2 常用Systemd命令
11.3 配置开机自启服务
日志管理
12.1 日志文件位置
12.2 使用Journalctl查看日志
12.3 日志轮转与清理
软件安装与编译
13.1 从源代码编译
13.2 使用RPM包安装
常用命令行工具
14.1 文件与目录操作
14.2 文本处理工具
14.3 系统监控工具
总结
参考资料
版权声明
结束语
CentOS(Community ENTerprise Operating System)是一款广泛应用于服务器环境的Linux发行版,以其稳定性、可靠性和企业级特性而著称。作为Red Hat Enterprise Linux(RHEL)的免费替代品,CentOS在企业、开发者和系统管理员中拥有广泛的用户群体。本篇文章将详细介绍CentOS的基础知识,帮助初学者快速入门。
什么是CentOS?
CentOS,全称为Community ENTerprise Operating System,是一个基于Red Hat Enterprise Linux(RHEL)的自由开源操作系统。CentOS通过移除RHEL中的品牌和商标,提供了一个与RHEL高度兼容的系统,使用户能够在不支付商业支持费用的情况下,享受到企业级的稳定性和性能。
主要特点包括:
- 开源与免费:CentOS遵循开源协议,用户可以自由下载、使用和修改。
- 稳定性:基于RHEL的稳定版本,经过严格测试,适合生产环境。
- 社区支持:拥有活跃的社区,提供丰富的文档和技术支持。
CentOS的历史与版本
CentOS项目最初由Gregory Kurtzer于2004年创建,旨在为用户提供一个免费且功能强大的企业级Linux发行版。2007年,CentOS与Red Hat建立了紧密的合作关系,进一步提升了其在企业市场的影响力。
主要版本历程
| 版本 | 发布年份 | 基于RHEL | 主要特性 |
|---|
| CentOS 3 | 2004 | RHEL 3 | 初始发布,稳定的企业级环境 |
| CentOS 4 | 2005 | RHEL 4 | 引入SELinux,增强安全性 |
| CentOS 5 | 2007 | RHEL 5 | 支持64位,改进的文件系统与网络功能 |
| CentOS 6 | 2011 | RHEL 6 | Systemd前身的初始化系统,增强的虚拟化支持 |
| CentOS 7 | 2014 | RHEL 7 | 引入Systemd,支持Docker容器 |
| CentOS 8 | 2019 | RHEL 8 | 模块化包管理,增强的安全特性 |
| CentOS Stream 8/9 | 2020/2021 | RHEL前瞻版本 | 滚动更新模式,介于Fedora与RHEL之间 |
注意:2020年,Red Hat宣布将CentOS从传统的发布模式转变为CentOS Stream,这引起了社区的广泛关注和讨论。CentOS Stream作为RHEL的上游版本,旨在更快地引入新特性和更新。
CentOS的特点
CentOS凭借其独特的特点,成为了许多企业和开发者的首选操作系统。
- 稳定性与可靠性:基于RHEL,经过严格测试,确保系统的稳定运行,适合生产环境。
- 安全性:提供了多层次的安全机制,包括SELinux、Firewalld等,保护系统免受威胁。
- 长期支持:每个主要版本通常提供10年的支持周期,保证长期的安全更新与补丁。
- 广泛的硬件支持:支持多种硬件架构,包括x86_64、ARM等。
- 丰富的软件仓库:通过YUM仓库,用户可以方便地安装和管理软件包。
- 活跃的社区:拥有庞大的用户群体和开发者社区,提供丰富的资源和支持。
CentOS的安装
安装CentOS是入门的第一步,以下将详细介绍CentOS的安装过程。
4.1 硬件要求
安装CentOS需要满足一定的硬件要求,具体如下:
| 组件 | 最低要求 | 推荐配置 |
|---|
| 处理器 | 1 GHz或更高 | 多核处理器,2 GHz及以上 |
| 内存 | 1 GB RAM | 2 GB RAM及以上 |
| 存储空间 | 最少20 GB硬盘空间 | 40 GB硬盘空间或更大 |
| 网络 | 网卡支持,建议有稳定的网络连接 | 高速网络连接 |
| 显示器 | 1024x768分辨率 | 更高分辨率支持 |
4.2 安装步骤
以下以CentOS 8为例,介绍安装步骤:
-
下载CentOS镜像:
- 访问CentOS官方网站下载ISO镜像文件。
- 选择适合的版本(如DVD ISO)和架构(如x86_64)。
-
制作启动介质:
- 使用工具(如Rufus、Etcher)将ISO镜像烧录到USB闪存驱动器,制作启动盘。
-
启动安装程序:
- 将启动盘插入目标计算机,设置BIOS/UEFI从USB启动。
- 启动后,选择“Install CentOS 8”进入安装界面。
-
选择安装语言:
- 选择适合的语言和区域设置,点击“Continue”。
-
配置安装目标:
- 选择安装的硬盘或分区,可以选择自动分区或手动分区。
-
配置网络与主机名:
- 启用网络接口,设置主机名(如server.example.com)。
-
设置安全策略:
-
创建用户与设置密码:
-
开始安装:
- 确认所有配置无误后,点击“Begin Installation”开始安装过程。
-
完成安装:
- 安装完成后,重启系统,移除安装介质,进入CentOS系统。
4.3 常见安装选项
-
图形界面安装与最小化安装:
- 图形界面适合新手用户,提供直观的安装体验。
- 最小化安装适合服务器环境,减少不必要的软件包,提高系统性能。
-
软件包选择:
- 可以根据需求选择不同的软件包组,如Web服务器、开发工具等。
-
磁盘分区:
- 推荐使用LVM(逻辑卷管理),方便后续的磁盘管理和扩展。
初始配置
安装完成后,需要进行一些初始配置,以确保系统的正常运行和安全性。
5.1 更新系统
确保系统处于最新状态是保障安全和稳定的第一步。
sudo yum update -y
该命令将更新所有已安装的软件包到最新版本。
5.2 配置网络
配置网络是使系统能够访问外部资源的关键步骤。
-
查看网络接口:
ip addr
-
编辑网络配置文件(以eth0为例):
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
示例配置(静态IP):
TYPE=Ethernet BOOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
-
重启网络服务:
sudo systemctl restart network
5.3 设置主机名
设置主机名有助于在网络中识别和管理系统。
sudo hostnamectl set-hostname server.example.com
验证主机名:
hostnamectl
包管理
在CentOS中,YUM(Yellowdog Updater, Modified)是主要的包管理工具,用于安装、更新和删除软件包。
6.1 YUM简介
YUM通过配置文件中的软件仓库(repositories)获取软件包。默认情况下,CentOS已经配置了基础的软件仓库,但用户可以根据需求添加额外的仓库。
6.2 常用YUM命令
| 命令 | 说明 |
|---|
| sudo yum update | 更新所有已安装的软件包到最新版本 |
| sudo yum install package_name | 安装指定的软件包 |
| sudo yum remove package_name | 删除指定的软件包 |
| sudo yum search keyword | 搜索包含关键字的软件包 |
| sudo yum list installed | 列出所有已安装的软件包 |
| sudo yum clean all | 清理YUM缓存 |
| sudo yum info package_name | 查看指定软件包的详细信息 |
| sudo yum groupinstall "Group Name" | 安装软件包组,如“Development Tools” |
6.3 配置YUM仓库
用户可以通过添加新的仓库配置文件,扩展YUM的软件源。
-
添加EPEL仓库(Extra Packages for Enterprise Linux):
sudo yum install epel-release -y
EPEL提供了大量额外的软件包,增强了CentOS的功能。
-
添加Remi仓库(PHP等软件的最新版本):
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm sudo yum install yum-utils -y sudo yum-config-manager --enable remi
用户与权限管理
有效的用户与权限管理是保障系统安全的基础。
7.1 添加与删除用户
7.2 用户组管理
用户组用于管理一组用户的权限。
7.3 权限与所有权
文件和目录的权限控制是Linux系统的重要特性。
权限说明:
权限通过数字或符号表示。例如,755表示所有者有读、写、执行权限,组和其他用户有读和执行权限。
文件系统与目录结构
理解Linux的文件系统结构有助于更好地管理和操作系统。
8.1 常见目录介绍
| 目录 | 说明 |
|---|
| / | 根目录,所有文件和目录的起点 |
| /bin | 基本命令二进制文件,如ls、cp |
| /sbin | 系统管理命令,如ifconfig、reboot |
| /etc | 配置文件目录,存放系统和应用程序配置文件 |
| /home | 用户主目录,存放用户个人文件 |
| /var | 可变数据文件,如日志、缓存 |
| /tmp | 临时文件目录 |
| /usr | 用户程序和数据文件 |
| /lib | 系统库文件 |
| /opt | 可选的附加应用程序软件包 |
| /mnt | 临时挂载文件系统的挂载点 |
| /media | 可移动媒体设备挂载点,如USB、CD-ROM |
8.2 挂载与分区管理
挂载是将存储设备或分区接入文件系统的过程。
注意:操作分区和文件系统前,请确保数据备份,避免数据丢失。
网络配置
网络配置是确保系统能够与外部通信的重要环节。
9.1 配置静态IP
静态IP适用于服务器环境,确保系统IP地址不变。
-
编辑网络配置文件(以eth0为例):
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
-
示例配置:
TYPE=Ethernet BOOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
-
重启网络服务:
sudo systemctl restart network
9.2 配置动态IP(DHCP)
DHCP适用于客户端设备,自动获取IP地址。
-
编辑网络配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
-
示例配置:
TYPE=Ethernet BOOTPROTO=dhcp NAME=eth0 DEVICE=eth0 ONBOOT=yes
-
重启网络服务:
sudo systemctl restart network
9.3 网络服务管理
-
查看网络状态:
ip a
-
查看路由表:
ip route
-
测试网络连通性:
ping -c 4 google.com
防火墙与安全
保障系统安全,防止未经授权的访问是维护服务器的重要任务。
10.1 配置Firewalld
Firewalld是CentOS默认的防火墙管理工具,提供动态防火墙配置。
-
启动Firewalld:
sudo systemctl start firewalld sudo systemctl enable firewalld
-
查看当前防火墙状态:
sudo firewall-cmd --state
-
允许特定服务通过防火墙(以SSH为例):
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
-
开放特定端口:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
-
移除服务或端口:
sudo firewall-cmd --permanent --remove-service=ftp sudo firewall-cmd --permanent --remove-port=8080/tcp sudo firewall-cmd --reload
10.2 安装与配置SELinux
SELinux(Security-Enhanced Linux)提供了强制访问控制机制,增强系统安全性。
-
查看SELinux状态:
sestatus
-
修改SELinux模式(编辑/etc/selinux/config):
sudo vi /etc/selinux/config
示例配置:
SELINUX=enforcing SELINUXTYPE=targeted
-
临时更改SELinux模式:
sudo setenforce 0 # 关闭 sudo setenforce 1 # 开启
注意:在更改SELinux配置前,建议了解其工作机制,以避免影响系统功能。
10.3 SSH安全配置
SSH是远程访问系统的重要工具,合理配置可以提升安全性。
-
编辑SSH配置文件:
sudo vi /etc/ssh/sshd_config
推荐配置:
PermitRootLogin no PasswordAuthentication no Port 2222
-
重启SSH服务:
sudo systemctl restart sshd
-
使用密钥认证:
-
生成SSH密钥对(在客户端):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
将公钥复制到服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip
注意:修改SSH端口(如2222)可以减少被扫描的风险,但需确保防火墙已开放新端口。
服务管理
在CentOS中,服务管理主要通过Systemd完成,它取代了旧的SysVinit系统,提供了更强大的服务管理功能。
11.1 Systemd简介
Systemd是Linux系统中的初始化系统和服务管理器,负责启动和管理系统进程和服务。
11.2 常用Systemd命令
| 命令 | 说明 |
|---|
| sudo systemctl start service | 启动指定服务 |
| sudo systemctl stop service | 停止指定服务 |
| sudo systemctl restart service | 重启指定服务 |
| sudo systemctl enable service | 设置服务开机自启 |
| sudo systemctl disable service | 取消服务开机自启 |
| sudo systemctl status service | 查看服务状态 |
| sudo systemctl list-units --type=service | 列出所有正在运行的服务 |
示例:
启动Nginx服务:
sudo systemctl start nginx
设置Nginx开机自启:
sudo systemctl enable nginx
11.3 配置开机自启服务
通过enable命令,可以将服务设置为开机自启。例如,配置MariaDB数据库开机自启:
sudo systemctl enable mariadb
日志管理
日志是系统管理和故障排除的重要资源,了解如何查看和管理日志有助于维护系统健康。
12.1 日志文件位置
CentOS的日志文件通常存放在/var/log目录下,常见的日志文件包括:
- /var/log/messages:系统消息日志
- /var/log/secure:安全相关日志,如SSH登录记录
- /var/log/boot.log:启动过程日志
- /var/log/dmesg:内核环行缓冲区日志
- /var/log/httpd/:Apache HTTP服务器日志
12.2 使用Journalctl查看日志
Systemd引入了journalctl工具,用于查看和管理日志。
12.3 日志轮转与清理
为了防止日志文件过大,系统会定期进行日志轮转。用户也可以手动管理日志文件。
软件安装与编译
除了使用YUM安装软件外,有时需要从源代码编译安装软件,或者使用RPM包进行安装。
13.1 从源代码编译
编译源代码适用于需要特定配置或最新版本的软件。
-
安装开发工具:
sudo yum groupinstall "Development Tools" -y
-
下载源代码:
wget https://example.com/software.tar.gz tar -xzvf software.tar.gz cd software
-
编译与安装:
./configure make sudo make install
注意:编译安装的软件通常不会自动更新,需要手动管理。
13.2 使用RPM包安装
RPM(Red Hat Package Manager)是CentOS的软件包格式,可以通过YUM或手动安装。
-
通过YUM安装RPM包:
sudo yum install package.rpm
-
手动安装RPM包:
sudo rpm -ivh package.rpm
-
升级RPM包:
sudo rpm -Uvh package.rpm
-
删除RPM包:
sudo rpm -e package_name
注意:建议优先使用YUM进行RPM包管理,以自动解决依赖关系。
常用命令行工具
熟练掌握命令行工具是高效管理CentOS系统的关键。
14.1 文件与目录操作
| 命令 | 说明 |
|---|
| ls | 列出目录内容 |
| cd | 切换当前工作目录 |
| pwd | 显示当前工作目录路径 |
| cp | 复制文件或目录 |
| mv | 移动或重命名文件或目录 |
| rm | 删除文件或目录(-r递归删除,-f强制删除) |
| mkdir | 创建新目录 |
| rmdir | 删除空目录 |
| find | 查找文件或目录 |
| tar | 压缩与解压文件 |
| chmod | 修改文件或目录权限 |
| chown | 修改文件或目录所有者及所属组 |
示例:
复制文件:
cp /path/to/source /path/to/destination
移动并重命名文件:
mv oldname.txt newname.txt
删除目录及其内容:
rm -rf /path/to/directory
14.2 文本处理工具
| 命令 | 说明 |
|---|
| cat | 显示文件内容 |
| less | 分页查看文件内容 |
| head | 查看文件开头部分 |
| tail | 查看文件结尾部分,-f选项用于实时查看日志 |
| grep | 搜索文件内容,支持正则表达式 |
| awk | 文本处理与报告生成工具 |
| sed | 流编辑器,用于文本替换与处理 |
| cut | 按列提取文件内容 |
| sort | 对文件内容排序 |
| uniq | 去除重复行 |
| wc | 统计文件的行数、字数和字节数 |
示例:
搜索文件中的关键词:
grep "error" /var/log/messages
查看日志文件的最后10行并实时更新:
tail -f /var/log/secure
使用awk提取特定列:
awk '{print $1, $3}' /etc/passwd
14.3 系统监控工具
| 命令 | 说明 |
|---|
| top | 实时显示系统进程和资源使用情况 |
| htop | top的增强版,提供更友好的用户界面 |
| ps | 显示当前运行的进程 |
| df | 显示文件系统的磁盘空间使用情况 |
| du | 显示目录或文件的磁盘空间使用情况 |
| free | 显示内存使用情况 |
| vmstat | 报告虚拟内存统计信息 |
| iostat | 显示CPU和I/O设备的使用统计 |
| netstat | 显示网络连接、路由表和接口统计信息 |
| ss | 更快速的网络套接字统计工具,替代netstat |
| uptime | 显示系统运行时间及负载平均值 |
示例:
查看系统当前的CPU和内存使用情况:
top
查看磁盘空间使用情况:
df -h
查看网络连接:
ss -tuln
总结
本文详细介绍了CentOS入门所需的基础知识,从系统的概述、历史与版本,到安装、初始配置、包管理、用户与权限管理、文件系统、网络配置、防火墙与安全、服务管理、日志管理、软件安装与编译以及常用命令行工具。通过掌握这些基础知识,初学者可以有效地安装、配置和管理CentOS系统,为进一步深入学习和应用打下坚实的基础。
进一步学习建议:
- 深入学习Systemd:了解更高级的服务管理和配置。
- 探索SELinux策略:学习如何编写和管理SELinux策略,提高系统安全性。
- 自动化管理工具:学习使用Ansible、Puppet等工具进行自动化运维。
- 虚拟化与容器化:掌握KVM、Docker等技术,提升系统部署和管理能力。
- 参与社区:加入CentOS社区,参与讨论和贡献,获取最新资讯和支持。
通过持续学习和实践,您将能够更加熟练地运用CentOS,满足各种企业和开发需求。
参考资料
- CentOS 官方网站
- CentOS Wiki
- YUM 手册
版权声明
本文由ChatGPT撰写,基于开放AI技术生成,内容仅供参考。请根据实际需求进行调整和应用。
结束语
掌握CentOS的基础知识是成为一名合格的系统管理员或开发者的重要一步。希望本篇文章能够帮助您快速上手,并在未来的学习和工作中取得更大的进步。