1. VMware虚拟机创建与RHEL9系统安装实战
作为一名长期使用Linux系统的开发者,我经常需要在本地环境中搭建各种Linux发行版进行测试和开发。今天我将分享如何在VMware Workstation上创建虚拟机并安装RHEL9操作系统,以及后续的基础操作练习。这个流程对于初学者来说是个很好的起点,也能帮助有经验的用户快速搭建测试环境。
1.1 准备工作与环境配置
在开始之前,我们需要准备以下内容:
- VMware Workstation Pro 16或更高版本(个人推荐使用17版本,对RHEL9兼容性更好)
- RHEL9 ISO镜像文件(可以从Red Hat官网下载开发者版本)
- 至少50GB的可用磁盘空间
- 8GB以上内存(建议分配4GB给虚拟机)
提示:如果你是学生或开发者,可以注册Red Hat开发者账号免费获取RHEL订阅,这对于学习Linux非常有帮助。
1.2 创建虚拟机详细步骤
- 打开VMware Workstation,点击"创建新的虚拟机"
- 选择"自定义(高级)"安装类型,这样可以更灵活地配置虚拟机参数
- 硬件兼容性选择Workstation 16.x或17.x(根据你的VMware版本)
- 选择"稍后安装操作系统",这样我们可以先配置好硬件再安装系统
- 客户机操作系统选择"Linux",版本选择"Red Hat Enterprise Linux 9 64位"
- 为虚拟机命名并选择存储位置(建议放在SSD上以获得更好性能)
- 处理器配置:根据主机CPU情况,建议至少2个核心
- 内存分配:建议4096MB(4GB),这是RHEL9流畅运行的最低要求
- 网络类型选择"NAT"(适合大多数开发场景)
- SCSI控制器选择"LSI Logic"(RHEL9默认支持)
- 创建新虚拟磁盘,建议大小40GB(选择"将虚拟磁盘拆分成多个文件"更灵活)
- 磁盘文件名保持默认即可
完成这些步骤后,我们还需要进行一些关键配置调整:
- 在虚拟机设置中,点击"CD/DVD"选项,选择"使用ISO映像文件",浏览并选择下载的RHEL9 ISO文件
- 在"选项"标签中,将"引导选项"设置为"EFI"(这是RHEL9的推荐启动方式)
- 建议启用"虚拟化Intel VT-x/EPT或AMD-V/RVI"选项以获得更好性能
1.3 RHEL9系统安装过程
启动虚拟机后,我们将进入RHEL9安装界面:
-
选择"Install Red Hat Enterprise Linux 9"
-
选择安装语言(建议英文,减少后续开发中可能出现的编码问题)
-
在"安装信息摘要"界面,我们需要配置几个关键部分:
- 时间和日期:选择正确的时区(亚洲/上海)
- 软件选择:初学者建议选择"带GUI的服务器",这样有图形界面更方便学习
- 安装目标:选择我们创建的虚拟磁盘,点击"完成"即可(默认会自动分区)
- 网络和主机名:启用以太网连接,设置主机名(如server.example.com)
-
点击"开始安装",同时设置root密码和创建用户账户
-
安装完成后重启系统
重要提示:首次启动时,系统会要求你接受许可证协议并完成初始设置,不要跳过这一步,否则可能导致某些功能受限。
2. SSH远程连接配置与使用
2.1 虚拟机网络配置检查
在开始SSH连接前,我们需要确保网络配置正确:
bash复制# 查看IP地址
ip a
# 测试网络连接
ping 8.8.8.8
如果网络不通,可能需要检查:
- 虚拟机网络适配器设置(NAT模式通常最方便)
- VMware NAT服务是否运行
- 主机防火墙是否阻止了虚拟机网络
2.2 SSH服务端配置
RHEL9默认安装了SSH服务,但我们需要确认它正在运行:
bash复制# 检查SSH服务状态
systemctl status sshd
# 如果未运行,启动服务并设置开机自启
systemctl start sshd
systemctl enable sshd
为了安全考虑,建议修改SSH默认配置:
bash复制# 编辑SSH配置文件
vim /etc/ssh/sshd_config
修改以下参数:
- Port 22 → 改为其他端口如2222(减少暴力破解尝试)
- PermitRootLogin yes → 改为no(禁止root直接登录)
- PasswordAuthentication yes → 根据需求决定是否允许密码登录
修改后重启SSH服务:
bash复制systemctl restart sshd
2.3 从主机连接虚拟机
在Windows主机上,可以使用PuTTY或Windows Terminal进行连接。连接时需要知道虚拟机的IP地址:
bash复制# 在虚拟机中查看IP
ip a | grep inet
假设虚拟机IP是192.168.100.128,SSH端口是22(如果修改过则使用新端口):
bash复制# 在主机命令行连接
ssh username@192.168.100.128 -p 22
首次连接时会提示接受主机密钥,输入密码后即可登录。
实用技巧:配置SSH密钥认证可以免密码登录,更安全方便:
- 在主机生成密钥对:ssh-keygen
- 将公钥复制到虚拟机:ssh-copy-id username@192.168.100.128
- 之后登录就不需要输入密码了
3. Linux文件管理命令深度解析
3.1 基础目录结构理解
在开始文件操作前,了解Linux目录结构很重要:
- /:根目录
- /bin:基本命令二进制文件
- /etc:系统配置文件
- /home:用户主目录
- /opt:可选应用软件包
- /root:root用户主目录
- /tmp:临时文件
- /var:经常变化的文件(如日志)
3.2 实际操作练习与解析
让我们详细分析实验中的每个命令及其实际应用场景:
bash复制# 切换到/opt目录
cd /opt
cd命令是"change directory"的缩写,用于切换工作目录。/opt通常用于安装第三方软件。
bash复制# 显示当前工作目录
pwd
pwd(print working directory)显示当前所在目录的完整路径,这在复杂的目录结构中特别有用。
bash复制# 列出目录内容
ls
ls命令有几个常用选项:
-l:长格式显示,包含权限、所有者等信息-a:显示所有文件,包括隐藏文件(以.开头)-h:人类可读的文件大小(如K、M)
bash复制# 创建目录(原命令有误,应为mkdir tmp)
mkdir tmp
mkdir创建目录,常见错误是忘记空格(如原命令中的mkdirb)。建议使用mkdir -p可以创建多级目录。
bash复制# 进入tmp目录
cd tmp/
bash复制# 创建空文件
touch t1.txt
touch主要有两个作用:
- 创建新空文件
- 更新已有文件的时间戳
bash复制# 查看目录树结构
tree /opt
tree命令以树状图显示目录结构,如果未安装可以通过dnf install tree安装。
3.3 文件操作进阶技巧
- 批量创建文件:
bash复制touch file{1..10}.txt # 创建file1.txt到file10.txt
- 查看文件类型:
bash复制file t1.txt
- 查找文件:
bash复制find /opt -name "*.txt" # 查找/opt下所有txt文件
- 复制文件:
bash复制cp t1.txt t1_backup.txt
- 移动/重命名文件:
bash复制mv t1.txt new_name.txt
- 删除文件:
bash复制rm t1.txt
危险警告:Linux中没有回收站,
rm删除的文件通常无法恢复,使用时要特别小心。建议初学者先使用rm -i交互模式。
4. vi/vim编辑器深度使用指南
4.1 vim基础模式解析
vim有三种主要模式:
- 普通模式(Normal mode):移动光标、删除、复制等操作
- 插入模式(Insert mode):编辑文本内容
- 命令行模式(Command-line mode):保存、退出、搜索等
模式切换:
- 普通→插入:i(当前位置)、a(下一个位置)、o(新行)
- 插入→普通:Esc
- 普通→命令行::
4.2 实际操作分析
bash复制# 编辑t1.txt文件
vim t1.txt
进入vim后,按i进入插入模式,输入内容后:
-
保存并退出:
- 按Esc回到普通模式
- 输入
:wq(write and quit)
-
不保存退出:
:q!
实验中提到的"2026.6.12(保存后退出)"可能是输入的内容。
bash复制# 查看/boot/grub2/目录内容
ls /boot/grub2/
bash复制# 查看grub.cfg文件内容
cat /boot/grub2/grub.cfg
cat命令用于查看文件内容,但对于大文件,建议使用less或more。
bash复制# 将grub.cfg内容输出到新文件
cat /boot/grub2/grub.cfg > /opt/tmp/newfile
>是重定向符号,将命令输出写入文件(会覆盖原有内容),而>>是追加内容。
4.3 vim高级技巧
- 显示行号:
vim复制:set nu
- 跳转到指定行:
vim复制:10 # 跳转到第10行
- 搜索:
vim复制/pattern # 搜索pattern
n # 下一个匹配
N # 上一个匹配
- 替换:
vim复制:%s/old/new/g # 全局替换
- 多文件编辑:
vim复制:split file2.txt # 水平分割窗口
:vsplit file2.txt # 垂直分割窗口
- 撤销与重做:
vim复制u # 撤销
Ctrl+r # 重做
- 删除操作:
vim复制dd # 删除当前行
5dd # 删除5行
dw # 删除一个单词
实用技巧:vim配置可以保存在~/.vimrc文件中。初学者建议开启以下选项:
set nu " 显示行号
syntax on " 语法高亮
set tabstop=4 " Tab缩进4空格
set expandtab " Tab转为空格
5. 常见问题与解决方案
5.1 虚拟机创建问题
问题1:虚拟机启动时提示"Intel VT-x is disabled"
- 解决:进入主机BIOS,启用VT-x(Intel)或AMD-V(AMD)虚拟化支持
问题2:安装过程中找不到磁盘
- 解决:检查虚拟机设置中的磁盘控制器类型(RHEL9推荐LSI Logic)
问题3:安装后无法启动
- 解决:检查是否选择了正确的启动引导方式(UEFI或Legacy)
5.2 SSH连接问题
问题1:Connection refused
- 检查sshd服务是否运行:
systemctl status sshd - 检查防火墙是否允许SSH:
firewall-cmd --list-all
问题2:认证失败
- 检查用户名/密码是否正确
- 检查
/etc/ssh/sshd_config中是否允许密码认证
问题3:连接超时
- 检查虚拟机IP是否正确
- 检查主机和虚拟机网络是否连通(ping测试)
5.3 文件操作问题
问题1:Permission denied
- 检查当前用户是否有权限
- 使用
ls -l查看文件权限 - 必要时使用
sudo(但需谨慎)
问题2:误删重要文件
- 立即停止写入操作
- 尝试从备份恢复
- 可使用
extundelete等工具尝试恢复(不保证成功)
问题3:磁盘空间不足
bash复制# 查看磁盘使用情况
df -h
# 查找大文件
du -sh /* | sort -h
5.4 vim使用问题
问题1:陷入插入模式无法退出
- 按Esc多次,确保回到普通模式
- 如果终端无响应,尝试Ctrl+c
问题2:保存只读文件
vim复制:w !sudo tee % # 使用sudo权限保存
问题3:vim显示乱码
vim复制:set encoding=utf-8 # 设置编码
6. 系统管理与维护进阶
6.1 用户与权限管理
- 创建新用户:
bash复制adduser newuser
passwd newuser
- 修改文件权限:
bash复制chmod 755 file.txt # rwxr-xr-x
chown user:group file.txt
- 查看用户信息:
bash复制id username
6.2 软件包管理
RHEL9使用dnf作为包管理器(yum的替代):
- 搜索软件包:
bash复制dnf search package_name
- 安装软件:
bash复制dnf install package_name
- 更新系统:
bash复制dnf update
- 查看已安装软件:
bash复制dnf list installed
6.3 系统监控
- 查看系统资源:
bash复制top
htop # 需要安装
- 查看内存使用:
bash复制free -h
- 查看进程:
bash复制ps aux
- 查看日志:
bash复制journalctl -xe # 查看系统日志
6.4 定时任务
使用cron设置定时任务:
- 编辑当前用户的cron任务:
bash复制crontab -e
- 示例:每天凌晨3点备份:
bash复制0 3 * * * /path/to/backup_script.sh
- 查看当前任务:
bash复制crontab -l
7. 安全加固建议
7.1 基础安全措施
- 定期更新系统:
bash复制dnf update
- 禁用root SSH登录:
vim复制# /etc/ssh/sshd_config
PermitRootLogin no
- 使用防火墙:
bash复制firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
- 安装fail2ban防止暴力破解:
bash复制dnf install fail2ban
systemctl enable --now fail2ban
7.2 安全审计
- 查看登录记录:
bash复制last
- 检查异常登录:
bash复制grep 'Failed password' /var/log/secure
- 检查SUID文件:
bash复制find / -perm -4000 -type f 2>/dev/null
7.3 备份策略
- 重要配置文件备份:
bash复制tar -czvf etc_backup.tar.gz /etc
- 设置定期备份:
bash复制# 每周日凌晨2点全量备份
0 2 * * 0 tar -czvf /backups/full_$(date +\%Y\%m\%d).tar.gz /important_data
- 验证备份:
bash复制tar -tzvf backup.tar.gz
经过这些实践,我深刻体会到Linux系统的强大与灵活。每次操作都需要明确知道自己在做什么,特别是涉及系统修改或删除操作时。建议初学者在重要操作前先做好备份,并养成查看手册的习惯(man command)。Linux的学习曲线可能比较陡峭,但一旦掌握,将极大提高工作效率和问题解决能力。