1. Linux系统安装基础指南
对于初次接触Linux的新手来说,系统安装往往是第一个需要跨越的门槛。与Windows系统不同,Linux提供了多种安装方式和发行版选择,这让很多初学者感到困惑。我将从最基础的物理机安装开始,逐步介绍几种常见的安装方案。
1.1 物理机直接安装方案
物理机直接安装是最传统的方式,适合作为主力系统长期使用。目前主流的Linux发行版都提供了友好的图形化安装界面,安装过程已经变得十分简单。以Ubuntu 22.04为例,安装过程大致分为以下步骤:
- 从官网下载ISO镜像文件(约3GB)
- 使用Rufus或Etcher工具制作启动U盘
- 重启电脑进入BIOS设置U盘启动
- 跟随图形界面完成分区、用户设置等步骤
重要提示:安装前务必备份重要数据,特别是选择"清除整个磁盘"选项时,所有现有数据都将被删除。
对于双系统安装,需要特别注意分区设置。建议预留至少50GB空间给Linux系统,并手动创建以下分区:
- /boot (300MB)
- / (根分区,建议30GB以上)
- /home (用户数据分区)
- swap (交换分区,内存小于8G时可设为内存大小的1.5倍)
1.2 虚拟机安装方案
对于只是想体验Linux或开发测试用途的用户,虚拟机是更安全便捷的选择。VMware Workstation和VirtualBox是两个最常用的虚拟化工具。以下是使用VirtualBox安装CentOS 7的基本流程:
- 下载并安装VirtualBox
- 创建新虚拟机,选择Linux类型和对应版本
- 分配内存(建议不少于2GB)和硬盘空间(建议20GB以上)
- 挂载下载的ISO镜像并启动虚拟机
- 按照提示完成安装
虚拟机安装的优势在于可以随时创建快照,遇到问题时能快速回滚。对于学习Linux命令和基础操作,这种方案完全够用。
1.3 云服务器方案
随着云计算普及,直接在云服务商购买Linux实例成为另一种选择。阿里云、腾讯云等提供商都提供各种Linux发行版的镜像,用户只需选择配置即可快速获得一个可用的Linux环境。这种方案适合:
- 需要24小时在线的应用
- 团队协作开发
- 需要公网访问的服务
云服务器的优势是开箱即用,无需考虑硬件兼容性问题,而且可以随时调整配置。缺点是会产生持续的费用,且对网络依赖较大。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Linux软件包管理核心机制
Linux系统中最常见的两种软件包管理方式是RPM和DPKG,它们分别对应Red Hat系和Debian系的发行版。理解这些机制对系统管理至关重要。
2.1 RPM包管理系统详解
RPM(Red Hat Package Manager)是Red Hat、CentOS、Fedora等发行版使用的包管理格式。一个RPM包通常包含:
- 编译好的二进制文件
- 配置文件
- 文档
- 依赖信息
- 安装/卸载脚本
基本的RPM命令包括:
bash复制# 安装软件包
rpm -ivh package.rpm
# 升级软件包
rpm -Uvh package.rpm
# 查询已安装的包
rpm -qa | grep package_name
# 查看包信息
rpm -qi package_name
# 卸载软件包
rpm -e package_name
RPM的一个主要优点是它可以验证包的完整性和来源,通过GPG签名确保安全性。但它的缺点是依赖关系需要手动处理,这催生了YUM和DNF这类高级包管理工具。
2.2 YUM/DNF工具进阶使用
YUM(Yellowdog Updater Modified)和它的后继者DNF解决了RPM的依赖问题。它们会自动从配置的仓库中下载并安装依赖包。常用命令包括:
bash复制# 搜索软件包
yum search keyword
# 安装软件包
yum install package_name
# 更新所有软件包
yum update
# 删除软件包
yum remove package_name
DNF在CentOS 8/RHEL 8及以后版本中取代了YUM,提供了更好的性能和依赖解析。它们的配置文件位于/etc/yum.repos.d/目录下,用户可以添加第三方仓库来扩展软件来源。
2.3 源码编译安装方法
虽然包管理系统很方便,但有时我们需要从源码编译安装软件,特别是当:
- 需要最新版本
- 需要自定义编译选项
- 软件没有现成的包
典型的源码安装流程:
bash复制# 下载并解压源码包
wget http://example.com/package.tar.gz
tar -xzvf package.tar.gz
cd package
# 配置编译选项
./configure --prefix=/usr/local
# 编译
make
# 安装
sudo make install
源码安装的软件通常不会出现在包管理系统中,卸载时需要手动删除或使用make uninstall(如果支持)。
3. 常见软件安装实战案例
掌握了基础理论后,我们来看几个实际场景中的软件安装案例,这些是Linux管理员日常工作中经常遇到的任务。
3.1 OpenSSH服务器安装与升级
OpenSSH是Linux系统远程管理的标配工具。以在CentOS 7上升级到OpenSSH 10.3为例:
- 首先检查当前版本:
bash复制ssh -V
-
下载所需的RPM包。可以从EPEL仓库或厂商网站获取,注意架构匹配(x86_64或aarch64)。
-
安装依赖:
bash复制yum install zlib-devel openssl-devel
- 安装新版本(假设已下载好rpm包):
bash复制rpm -Uvh openssh-*.rpm
- 重启服务并验证:
bash复制systemctl restart sshd
ssh -V
注意:升级SSH时要确保有替代的登录方式,避免升级失败导致无法远程连接。
3.2 MySQL数据库安装配置
MySQL是广泛使用的关系型数据库。在CentOS 8上安装MySQL 8.4的步骤:
- 添加MySQL官方仓库:
bash复制rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-6.noarch.rpm
- 安装服务器:
bash复制dnf install mysql-community-server
- 启动服务并设置开机启动:
bash复制systemctl start mysqld
systemctl enable mysqld
- 获取临时密码并运行安全脚本:
bash复制grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
- 配置防火墙:
bash复制firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload
3.3 开发环境搭建:Python与Node.js
对于开发人员,语言环境的配置是基础工作。以下是Python和Node.js的安装示例:
Python 3安装(CentOS 7):
bash复制yum install epel-release
yum install python36 python36-devel
# 创建虚拟环境
python3.6 -m venv myenv
source myenv/bin/activate
Node.js安装(使用NodeSource仓库):
bash复制curl -sL https://rpm.nodesource.com/setup_16.x | bash -
yum install nodejs
# 验证安装
node -v
npm -v
对于需要多版本共存的情况,可以考虑使用nvm(Node Version Manager)或pyenv(Python版本管理工具)。
4. 系统管理与维护技巧
Linux系统的日常管理涉及许多实用技巧,掌握这些可以大大提高工作效率。
4.1 服务管理实战
systemd是现代Linux系统的服务管理工具。常用命令包括:
bash复制# 查看服务状态
systemctl status service_name
# 启动/停止/重启服务
systemctl start service_name
systemctl stop service_name
systemctl restart service_name
# 设置开机启动
systemctl enable service_name
# 禁止开机启动
systemctl disable service_name
# 查看所有服务
systemctl list-units --type=service
对于调试服务问题,journalctl是查看日志的强大工具:
bash复制# 查看特定服务的日志
journalctl -u service_name
# 实时查看最新日志
journalctl -f
# 按时间筛选
journalctl --since "2023-01-01" --until "2023-01-02"
4.2 进程管理与性能监控
当系统变慢时,需要快速定位问题进程:
bash复制# 动态查看系统资源使用情况
top
# 更友好的替代品
htop
# 按内存排序查看进程
ps aux --sort=-%mem | head
# 按CPU排序查看进程
ps aux --sort=-%cpu | head
# 查找特定进程
pgrep -lf process_name
对于长期监控,可以使用sar工具(需要安装sysstat包),它能记录系统资源的历史使用情况。
4.3 磁盘空间管理
磁盘空间不足是常见问题,管理技巧包括:
bash复制# 查看磁盘使用情况
df -h
# 查看目录大小
du -sh /path/to/directory
# 查找大文件
find / -type f -size +100M -exec ls -lh {} \;
# 清理旧的内核包(CentOS/RHEL)
package-cleanup --oldkernels --count=2
对于经常需要清理的日志文件,可以配置logrotate自动管理。配置文件位于/etc/logrotate.conf和/etc/logrotate.d/目录下。
4.4 网络配置与故障排查
网络问题是另一类常见故障,排查命令包括:
bash复制# 查看IP地址
ip addr show
# 测试网络连通性
ping google.com
# 跟踪路由路径
traceroute google.com
# 查看网络连接
netstat -tulnp
ss -tulnp
# DNS查询
dig google.com
nslookup google.com
对于防火墙管理,CentOS 7+使用firewalld:
bash复制# 查看开放端口
firewall-cmd --list-all
# 开放端口
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
5. 安全加固与最佳实践
系统安装配置完成后,安全加固是不可忽视的环节。以下是一些基本但重要的安全措施。
5.1 用户与权限管理
bash复制# 创建新用户
useradd -m -s /bin/bash username
passwd username
# 将用户加入sudo组
usermod -aG wheel username # CentOS/RHEL
usermod -aG sudo username # Ubuntu/Debian
# 查看用户权限
sudo -l -U username
建议禁用root直接SSH登录,修改/etc/ssh/sshd_config:
code复制PermitRootLogin no
然后重启SSH服务:
bash复制systemctl restart sshd
5.2 定期更新系统
保持系统更新是基本的安全措施:
bash复制# CentOS/RHEL
yum update -y
# Ubuntu/Debian
apt update && apt upgrade -y
可以设置自动安全更新:
bash复制# CentOS/RHEL
yum install yum-cron
systemctl enable yum-cron
systemctl start yum-cron
# Ubuntu/Debian
apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades
5.3 备份策略实施
任何系统都需要备份方案。简单的定时备份可以使用cron和tar:
bash复制# 每天凌晨备份重要目录
0 3 * * * tar -czf /backups/home_$(date +\%Y\%m\%d).tar.gz /home
对于更复杂的备份需求,可以考虑rsync或专门的备份工具如Bacula、Duplicity等。
5.4 入侵检测与日志分析
基本的入侵检测可以通过检查异常登录实现:
bash复制# 查看成功登录记录
last
# 查看失败登录尝试
grep "Failed password" /var/log/secure
# 查看当前登录用户
w
更高级的安全监控可以使用工具如fail2ban自动封锁暴力破解尝试,或OSSEC进行主机入侵检测。
