CentOS 入门必备基础知识

目录

目录

什么是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 32004RHEL 3初始发布,稳定的企业级环境
CentOS 42005RHEL 4引入SELinux,增强安全性
CentOS 52007RHEL 5支持64位,改进的文件系统与网络功能
CentOS 62011RHEL 6Systemd前身的初始化系统,增强的虚拟化支持
CentOS 72014RHEL 7引入Systemd,支持Docker容器
CentOS 82019RHEL 8模块化包管理,增强的安全特性
CentOS Stream 8/92020/2021RHEL前瞻版本滚动更新模式,介于Fedora与RHEL之间

注意:2020年,Red Hat宣布将CentOS从传统的发布模式转变为CentOS Stream,这引起了社区的广泛关注和讨论。CentOS Stream作为RHEL的上游版本,旨在更快地引入新特性和更新。

CentOS的特点

CentOS凭借其独特的特点,成为了许多企业和开发者的首选操作系统。

  1. 稳定性与可靠性:基于RHEL,经过严格测试,确保系统的稳定运行,适合生产环境。
  2. 安全性:提供了多层次的安全机制,包括SELinux、Firewalld等,保护系统免受威胁。
  3. 长期支持:每个主要版本通常提供10年的支持周期,保证长期的安全更新与补丁。
  4. 广泛的硬件支持:支持多种硬件架构,包括x86_64、ARM等。
  5. 丰富的软件仓库:通过YUM仓库,用户可以方便地安装和管理软件包。
  6. 活跃的社区:拥有庞大的用户群体和开发者社区,提供丰富的资源和支持。

CentOS的安装

安装CentOS是入门的第一步,以下将详细介绍CentOS的安装过程。

4.1 硬件要求

安装CentOS需要满足一定的硬件要求,具体如下:

组件最低要求推荐配置
处理器1 GHz或更高多核处理器,2 GHz及以上
内存1 GB RAM2 GB RAM及以上
存储空间最少20 GB硬盘空间40 GB硬盘空间或更大
网络网卡支持,建议有稳定的网络连接高速网络连接
显示器1024x768分辨率更高分辨率支持

4.2 安装步骤

以下以CentOS 8为例,介绍安装步骤:

  1. 下载CentOS镜像

    • 访问CentOS官方网站下载ISO镜像文件。
    • 选择适合的版本(如DVD ISO)和架构(如x86_64)。
  2. 制作启动介质

    • 使用工具(如Rufus、Etcher)将ISO镜像烧录到USB闪存驱动器,制作启动盘。
  3. 启动安装程序

    • 将启动盘插入目标计算机,设置BIOS/UEFI从USB启动。
    • 启动后,选择“Install CentOS 8”进入安装界面。
  4. 选择安装语言

    • 选择适合的语言和区域设置,点击“Continue”。
  5. 配置安装目标

    • 选择安装的硬盘或分区,可以选择自动分区或手动分区。
  6. 配置网络与主机名

    • 启用网络接口,设置主机名(如server.example.com)。
  7. 设置安全策略

    • 选择合适的安全策略,默认即可。
  8. 创建用户与设置密码

    • 设置root用户密码,创建普通用户账户。
  9. 开始安装

    • 确认所有配置无误后,点击“Begin Installation”开始安装过程。
  10. 完成安装

    • 安装完成后,重启系统,移除安装介质,进入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 添加与删除用户

  • 添加用户

    sudo adduser username sudo passwd username

  • 删除用户

    sudo userdel -r username

    -r选项将删除用户的主目录及其文件。

7.2 用户组管理

用户组用于管理一组用户的权限。

  • 创建组

    sudo groupadd groupname

  • 将用户添加到组

    sudo usermod -aG groupname username

  • 删除组

    sudo groupdel groupname

7.3 权限与所有权

文件和目录的权限控制是Linux系统的重要特性。

  • 查看权限

    ls -l /path/to/file

  • 修改权限

    chmod 755 /path/to/file

  • 修改所有者

    sudo chown user:group /path/to/file

权限说明

  • 读(r):4
  • 写(w):2
  • 执行(x):1

权限通过数字或符号表示。例如,755表示所有者有读、写、执行权限,组和其他用户有读和执行权限。

文件系统与目录结构

理解Linux的文件系统结构有助于更好地管理和操作系统。

8.1 常见目录介绍

目录说明
/根目录,所有文件和目录的起点
/bin基本命令二进制文件,如lscp
/sbin系统管理命令,如ifconfigreboot
/etc配置文件目录,存放系统和应用程序配置文件
/home用户主目录,存放用户个人文件
/var可变数据文件,如日志、缓存
/tmp临时文件目录
/usr用户程序和数据文件
/lib系统库文件
/opt可选的附加应用程序软件包
/mnt临时挂载文件系统的挂载点
/media可移动媒体设备挂载点,如USB、CD-ROM

8.2 挂载与分区管理

挂载是将存储设备或分区接入文件系统的过程。

  • 查看当前挂载点

    mount | grep "^/"

  • 挂载设备

    sudo mount /dev/sdb1 /mnt

  • 卸载设备

    sudo umount /mnt

  • 永久挂载(编辑/etc/fstab):

    sudo vi /etc/fstab

    示例条目

    /dev/sdb1 /mnt ext4 defaults 0 0

  • 创建文件系统

    sudo mkfs.ext4 /dev/sdb1

注意:操作分区和文件系统前,请确保数据备份,避免数据丢失。

网络配置

网络配置是确保系统能够与外部通信的重要环节。

9.1 配置静态IP

静态IP适用于服务器环境,确保系统IP地址不变。

  1. 编辑网络配置文件(以eth0为例):

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

  2. 示例配置

    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

  3. 重启网络服务

    sudo systemctl restart network

9.2 配置动态IP(DHCP)

DHCP适用于客户端设备,自动获取IP地址。

  1. 编辑网络配置文件

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

  2. 示例配置

    TYPE=Ethernet BOOTPROTO=dhcp NAME=eth0 DEVICE=eth0 ONBOOT=yes

  3. 重启网络服务

    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

  • 使用密钥认证

    1. 生成SSH密钥对(在客户端):

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    2. 将公钥复制到服务器

      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工具,用于查看和管理日志。

  • 查看所有日志

    sudo journalctl

  • 查看实时日志

    sudo journalctl -f

  • 查看特定服务的日志

    sudo journalctl -u nginx

  • 查看特定时间范围的日志

    sudo journalctl --since "2024-04-01" --until "2024-04-30"

12.3 日志轮转与清理

为了防止日志文件过大,系统会定期进行日志轮转。用户也可以手动管理日志文件。

  • 手动轮转日志

    sudo logrotate /etc/logrotate.conf

  • 清理旧日志

    sudo journalctl --vacuum-time=2weeks

    该命令将删除两周前的日志。

软件安装与编译

除了使用YUM安装软件外,有时需要从源代码编译安装软件,或者使用RPM包进行安装。

13.1 从源代码编译

编译源代码适用于需要特定配置或最新版本的软件。

  1. 安装开发工具

    sudo yum groupinstall "Development Tools" -y

  2. 下载源代码

    wget https://example.com/software.tar.gz tar -xzvf software.tar.gz cd software

  3. 编译与安装

    ./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实时显示系统进程和资源使用情况
htoptop的增强版,提供更友好的用户界面
ps显示当前运行的进程
df显示文件系统的磁盘空间使用情况
du显示目录或文件的磁盘空间使用情况
free显示内存使用情况
vmstat报告虚拟内存统计信息
iostat显示CPU和I/O设备的使用统计
netstat显示网络连接、路由表和接口统计信息
ss更快速的网络套接字统计工具,替代netstat
uptime显示系统运行时间及负载平均值

示例

查看系统当前的CPU和内存使用情况:

top

查看磁盘空间使用情况:

df -h

查看网络连接:

ss -tuln

总结

本文详细介绍了CentOS入门所需的基础知识,从系统的概述、历史与版本,到安装、初始配置、包管理、用户与权限管理、文件系统、网络配置、防火墙与安全、服务管理、日志管理、软件安装与编译以及常用命令行工具。通过掌握这些基础知识,初学者可以有效地安装、配置和管理CentOS系统,为进一步深入学习和应用打下坚实的基础。

进一步学习建议

  1. 深入学习Systemd:了解更高级的服务管理和配置。
  2. 探索SELinux策略:学习如何编写和管理SELinux策略,提高系统安全性。
  3. 自动化管理工具:学习使用Ansible、Puppet等工具进行自动化运维。
  4. 虚拟化与容器化:掌握KVM、Docker等技术,提升系统部署和管理能力。
  5. 参与社区:加入CentOS社区,参与讨论和贡献,获取最新资讯和支持。

通过持续学习和实践,您将能够更加熟练地运用CentOS,满足各种企业和开发需求。

参考资料

版权声明

本文由ChatGPT撰写,基于开放AI技术生成,内容仅供参考。请根据实际需求进行调整和应用。

结束语

掌握CentOS的基础知识是成为一名合格的系统管理员或开发者的重要一步。希望本篇文章能够帮助您快速上手,并在未来的学习和工作中取得更大的进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值