CentOS 7:深度解析其安装、配置与核心命令
CentOS 7 是什么? CentOS 7 是一个免费、开源的 Linux 发行版,以其稳定性和广泛的企业级应用而闻名。它基于 Red Hat Enterprise Linux (RHEL) 的源代码构建,提供了一个强大的服务器操作系统平台。
CentOS 7,作为一个曾经广受欢迎的 Linux 发行版,为众多企业和开发者提供了稳定、高效的服务器操作系统解决方案。它以其开源、免费的特性,以及与 Red Hat Enterprise Linux (RHEL) 的紧密联系,赢得了广泛的市场认可。虽然 CentOS 项目的未来发展方向有所调整(转向 CentOS Stream),但对于许多现有的 CentOS 7 系统而言,理解和掌握其安装、配置以及核心命令仍然至关重要。本文将围绕“CentOS 7”这一核心关键词,深入探讨其安装流程、关键配置步骤,以及那些最常用的系统管理命令,旨在为用户提供一个全面而详尽的指南。
CentOS 7 安装详解
安装 CentOS 7 是搭建一个稳定服务器环境的第一步。整个过程相对直观,但熟悉关键选项可以帮助您更有效地完成部署。
准备工作
- 系统镜像: 下载 CentOS 7 的 ISO 镜像文件。通常有 Minimal Install、DVD ISO 等选项,Minimal Install 更适合服务器环境,因为它只包含最基本的核心组件。
- 安装介质: 准备一个 U 盘(至少 4GB)或 DVD 光盘,用于创建可引导的安装介质。
- 硬件要求: 确保您的硬件满足 CentOS 7 的最低要求(通常是 64 位处理器、1GB RAM、10GB 硬盘空间,但推荐配置更高以获得更好性能)。
- 网络连接: 建议在安装过程中连接网络,以便获取更新和安装额外的软件包。
安装步骤
- 启动安装介质: 将制作好的安装介质插入计算机,并从该介质启动。在 BIOS/UEFI 设置中,需要将启动顺序调整为优先从 U 盘或光驱启动。
- 选择安装类型: 在启动菜单中,选择 "Install CentOS Linux 7"。
- 语言选择: 选择您偏好的安装语言,例如“中文”或“English”。
-
安装位置:
- 分区设置: 这是安装过程中一个重要的环节。您可以选择“自动分区”让系统自动划分,或者选择“自定义分区”(LVM 或标准分区)进行手动控制。对于服务器,推荐使用 LVM(Logical Volume Management),它提供了更灵活的磁盘管理能力,例如在线扩展分区大小。
- 常用分区建议(自定义):
- `/boot`:用于存放系统启动所需的文件,通常分配 500MB 左右。
- `swap`:交换分区,用于在物理内存不足时作为临时存储,大小通常为内存的 1-2 倍,但对于内存较大的服务器,可以适当减小。
- `/` (根分区):存放操作系统及其核心文件,建议至少分配 20GB。
- `/home`:用户家目录,存放用户数据,根据实际需求分配。
- `/var`:用于存放日志文件、缓存等动态数据,建议分配较大的空间,例如 10GB 或更多。
- `/usr`:存放应用程序及其相关数据。
- 网络与主机名: 配置服务器的主机名,并启用网络接口(通常是 `eth0` 或 `ensXXX`)。如果连接了网络,可以尝试配置静态 IP 地址或 DHCP。
- 软件选择: 在“软件选择”界面,您可以选择安装不同的软件组。对于服务器,通常推荐选择“最小安装”(Minimal Install),然后根据需求再手动安装所需软件包,这可以减少不必要的服务运行,提高安全性。如果您需要图形界面,可以选择“GNOME 桌面”。
- KDUMP 配置: 默认启用 KDUMP,用于在系统崩溃时捕获内存转储信息,便于后续调试。
- 系统安装: 点击“开始安装”,系统将开始复制文件并配置。
- 设置 Root 密码: 在安装过程中,会提示您设置 root 用户的密码。务必设置一个强密码,并牢记。
- 创建用户(可选): 您也可以在安装过程中创建一个普通用户账户。
- 完成安装: 安装完成后,系统会提示您重启。移除安装介质,然后重启服务器。
CentOS 7 核心配置
安装完成后,对 CentOS 7 进行必要的配置是确保其稳定运行和满足特定需求的关键。
网络配置
网络配置是服务器稳定运行的基础。
- 查看网络接口: 使用 `ip addr show` 命令查看当前的网络接口及其 IP 地址。
- 修改网络配置文件: 网络配置文件通常位于 `/etc/sysconfig/network-scripts/` 目录下,文件名格式为 `ifcfg-ethX` (X 是接口编号)。
- 编辑示例 (`ifcfg-eth0`):
TYPE=Ethernet BOOTPROTO=static # 或 dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth0 UUID=... DEVICE=eth0 ONBOOT=yes IPADDR=192.168.1.100 # 静态 IP 地址 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8
- 编辑示例 (`ifcfg-eth0`):
- 重启网络服务: 配置完成后,需要重启网络服务使之生效:
sudo systemctl restart network - 防火墙配置: CentOS 7 默认使用 firewalld 作为防火墙。
- 启用/禁用:
sudo systemctl enable firewalld # 启用 sudo systemctl start firewalld # 启动 sudo systemctl disable firewalld # 禁用 sudo systemctl stop firewalld # 停止 - 查看状态:
sudo systemctl status firewalld - 配置规则(示例): 允许 SSH (端口 22) 和 HTTP (端口 80) 访问。
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload - 查看已开放端口:
sudo firewall-cmd --list-all
- 启用/禁用:
SSH 服务配置
SSH (Secure Shell) 是远程管理服务器的主要方式。
- SSH 服务的安装与启动: SSH 服务器(openssh-server)通常在最小安装时已包含。
sudo systemctl enable sshd # 启用 SSH 服务开机自启 sudo systemctl start sshd # 启动 SSH 服务 sudo systemctl status sshd # 查看 SSH 服务状态 - 修改 SSH 端口(增强安全性): 建议更改默认的 22 端口以减少自动扫描的风险。
- 编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config - 找到 `Port 22` 行,修改为你想要的端口号(例如 `Port 2222`)。
- 保存并退出。
- 重启 SSH 服务:
sudo systemctl restart sshd - 确保防火墙开放了新端口。
- 编辑 SSH 配置文件:
- 禁用 Root 登录: 为了安全起见,通常会禁用 root 用户直接通过 SSH 登录。
- 编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config - 找到 `PermitRootLogin yes` 行,将其改为 `PermitRootLogin no`。
- 保存并退出。
- 重启 SSH 服务:
sudo systemctl restart sshd
- 编辑 SSH 配置文件:
系统更新
保持系统及时更新是至关重要的。
- 更新软件包:
sudo yum update -y`-y` 参数表示自动确认所有提示。 - 安装特定软件包:
sudo yum install
- 搜索软件包:
sudo yum search
- 卸载软件包:
sudo yum remove
CentOS 7 核心命令
熟练掌握以下核心命令,能够极大地提高您在 CentOS 7 环境下的操作效率。
文件与目录管理
- 显示当前目录:
pwd
- 列出目录内容:
ls [-lha]
- `-l`:详细列表格式。
- `-h`:以人类可读的格式显示文件大小。
- `-a`:显示所有文件,包括隐藏文件。
- 创建目录:
mkdir
- 切换目录:
cd
- `cd ..`:返回上一级目录。
- `cd ~` 或 `cd`:返回当前用户的主目录。
- 复制文件/目录:
cp
- 复制目录需要加上 `-r` 选项:
cp -r
- 复制目录需要加上 `-r` 选项:
- 移动/重命名文件/目录:
mv
- 删除文件:
rm
- 删除目录:
rmdir
(只能删除空目录)
rm -r
(删除非空目录) - 创建空文件:
touch
- 查看文件内容:
cat
(显示整个文件内容)
less
(分页显示,更适合大文件)
head
(显示文件开头部分)
tail
(显示文件结尾部分,常用于查看日志) - 查找文件:
find /path/to/search -name "filename"
系统进程管理
- 显示所有运行的进程:
ps aux
- 实时显示进程信息:
top
在 `top` 界面,按下 `k` 可以杀死进程,需要输入进程 ID (PID)。按下 `q` 退出。
- 根据进程名查找进程 ID (PID):
pgrep
- 杀死进程:
kill
(发送终止信号)
kill -9
(强制终止信号)
用户与权限管理
- 显示当前用户信息:
whoami
- 显示所有登录用户:
who
- 切换用户:
su -
(切换到指定用户,`-` 表示模拟登录,加载其环境变量)
su
(切换到 root 用户) - 赋予 root 权限执行命令:
sudo
(需要用户在 sudoers 文件中配置) - 修改文件权限:
chmod
权限表示:例如 `u+x` (为用户添加执行权限),`go-w` (移除组和其他人的写入权限),`755` (rwx for owner, rx for group and others)。
- 修改文件所有者:
chown
:
服务管理 (systemd)
CentOS 7 使用 systemd 作为其初始化系统。
- 启动服务:
sudo systemctl start
- 停止服务:
sudo systemctl stop
- 重启服务:
sudo systemctl restart
- 查看服务状态:
sudo systemctl status
- 设置服务开机自启:
sudo systemctl enable
- 禁用服务开机自启:
sudo systemctl disable
- 查看所有已加载的服务:
systemctl list-unit-files --type=service
系统信息
- 查看系统内核版本:
uname -a
- 查看 CPU 信息:
cat /proc/cpuinfo
- 查看内存信息:
free -h
- 查看磁盘空间使用情况:
df -h
- 查看目录空间使用情况:
du -sh
- 查看系统日志:
journalctl -xe
(显示错误日志)
journalctl -u
(查看特定服务的日志)
CentOS 7 作为一个成熟且可靠的操作系统,其强大的功能和灵活的配置选项使其能够满足各种服务器部署需求。无论是初次安装,还是日常的系统维护和管理,掌握上述知识都将为您提供坚实的基础。随着技术的发展,理解这些核心概念和命令,对于任何一位 Linux 系统管理员或开发者而言,都是不可或缺的技能。