这次我们来看一套非常务实的 Linux 入门路线:从 VMware 虚拟机搭建开始,把系统装起来、命令敲熟、系统管理理清,最后把一台 Web 服务真正部署到服务器上对外访问。整个过程不绕弯,这条路跑通之后,你就把运维工程师日常最核心的主路径先走了一遍。
这套路线对硬件没有任何特殊要求,一台支持虚拟化的普通电脑就能开工。内存建议 8GB 起步,16GB 会更舒服;磁盘准备 50GB 以上空闲空间。你不需要先买云服务器,也不会因为误操作把生产环境搞崩,所有练习都放在虚拟机里完成,这是零基础阶段最安全的练手方式。
文章会带你完成五件事:装好 VMware 并创建一台 Linux 虚拟机;掌握文件、用户、权限等高频命令;学会用 systemd 管理系统服务;用 Nginx 部署一个能通过浏览器访问的站点;最后梳理常见问题和排查思路,覆盖“虚拟机装不上”“端口不通”“服务起不来”这些高频坑。
适合正在学 Linux 但不知道从哪下手的零基础同学、准备转行运维的新人,以及想快速搭一套本地实验环境的开发人员。
1. 核心能力速览
这套教程不是讲一个单一工具,而是一条可执行的学习路径。下面这张表先给你一个整体视角。
| 项目 | 说明 |
|---|---|
| 学习路径 | 虚拟机搭建 → Linux 基础命令 → 用户与权限 → 系统管理 → 服务部署 |
| 目标产出 | 一台可 SSH 登录、可部署 Web 服务的 Linux 虚拟机 |
| 推荐宿主配置 | CPU 支持虚拟化,内存 8GB 起步、16GB 更佳,空闲磁盘 50GB 以上 |
| 软件清单 | VMware Workstation、Linux 发行版镜像、SSH 客户端、浏览器 |
| 核心命令范围 | 文件操作、用户管理、权限管理、systemctl、网络排查 |
| 服务搭建 | Nginx + 静态页面,最终通过浏览器 IP 访问 |
| 上手难度 | 低,全程本地操作,不需要云服务器 |
| 可扩展方向 | Shell 脚本、Docker 容器、监控告警、Kubernetes、CI/CD |
很多新手卡在“命令记不住”或者“虚拟机装完不知道下一步干什么”,本质是缺少一条主线。这套路线的主线就是:先有一个能随便折腾的 Linux 环境,再围绕文件、用户、服务、网络、部署五个场景反复练习。命令不是背出来的,是用出来的。把这条主线走一遍,后面学 Shell 脚本、Docker、监控报警都会顺很多。
2. 适用场景与学习边界
2.1 适合谁
这套内容适合四类人:
- 零基础转运维的新人,需要一条从零到一的完整路径。
- 计算机相关专业的在校学生,课程学了操作系统,但没亲手搭过一台可用服务器。
- 后端和测试工程师,日常工作要频繁接触 Linux,但只是零散用命令,需要系统补一遍。
- 想搭本地实验环境的开发人员,在虚拟机里跑数据库、中间件、Web 服务,随用随删不心疼。
2.2 能解决什么问题
第一个问题是“没有环境可以练手”。物理机上装 Linux 要折腾双系统,云服务器要花钱还可能误操作影响公网服务。虚拟机把这两件事都解决了,快照一拍,系统随便折腾,坏了恢复即可。第二个问题是命令学完就忘。这套路线把命令嵌进真实场景:部署网站要改文件权限,排查网络要用 telnet,管理服务要敲 systemctl,命令和用途绑在一起,记忆自然牢固。第三个问题是“会敲命令但不会部署服务”。文章专门用一章从零部署 Nginx,把安装、启动、防火墙、访问验证整条链路串起来,这才是运维工作的日常形态。
2.3 学习边界与合规提醒
这套内容也有明确边界。虚拟机不是生产环境,快照不能替代备份,重要数据必须单独备份。系统镜像务必从官网下载,不要使用来路不明的修改版。做端口扫描、漏洞测试、渗透类操作时,必须在你拥有授权的主机和网络环境内进行,私自扫描他人服务器是违法行为。如果你用云服务器做实验,注意试用实例的到期时间和公网 IP 费用,避免不必要的扣费。如果后续工作中要接触国产化系统,统信 UOS、麒麟等系统的命令逻辑和主流 Linux 一致,这套基础同样适用。
3. 环境准备:虚拟化、VMware 与 Linux 镜像
3.1 确认 CPU 虚拟化
构建虚拟机的第一步,是确认 CPU 虚拟化已经开启。现代 CPU 基本都支持 Intel VT-x 或 AMD-V,但很多电脑默认没有打开。Windows 系统可以在任务管理器的“性能 - CPU”页面查看“虚拟化”是否显示“已启用”。如果显示未启用,需要重启电脑进入 BIOS/UEFI,找到 Intel Virtualization Technology 或 SVM Mode 选项并开启。这一步不做,后面创建虚拟机时会直接提示“客户机操作系统已禁用 CPU”,这是新手最常遇到的拦路虎之一。
3.2 安装 VMware Workstation
VMware Workstation 从官网下载即可,Windows 和 Linux 平台都有对应版本。安装过程基本可以一路默认,安装完成后建议重启一次宿主机。需要提醒的是,VMware Workstation 有自己的授权模式,个人学习和商业使用要遵守官方条款,尽量使用正版授权。如果安装后提示“VMware Workstation 无法连接到虚拟机”,优先考虑用管理员身份重新运行,并检查 VMware 相关服务是否被安全软件拦截。
3.3 选择 Linux 发行版
不同发行版选起来不用纠结,第一台虚拟机建议从这两类里选:
| 发行版 | 特点 | 适用场景 |
|---|---|---|
| Ubuntu Server LTS | 资料多、社区活跃、驱动兼容好 | 新手首选,遇到问题容易搜到答案 |
| Rocky Linux / AlmaLinux | 兼容 RHEL 生态,dnf 包管理 | 想走企业运维方向优先 |
| Debian | 稳定、轻量、占用低 | 老机器或追求简洁 |
| 统信 UOS / 麒麟 | 国产化系统,命令逻辑与 Linux 一致 | 工作环境涉及国产化替代时提前熟悉 |
推荐第一台虚拟机使用 Ubuntu Server LTS 或 Rocky Linux。这两类系统镜像都能在官网直接下载,选择 64 位 ISO 即可。不建议使用已经停止维护的 CentOS 8 或旧版本,新手会踩到软件源失效的坑。
3.4 准备 SSH 客户端
SSH 客户端用来远程连接虚拟机。Windows 上可以安装 Xshell、FinalShell,也可以直接用系统自带的 Windows Terminal 加 ssh 命令。我的建议是新手优先用 FinalShell 这类带文件管理和资源监控面板的工具,查看文件、上传脚本都很直观。下载工具时尽量去官网,避免使用来路不明的第三方打包版本。如果日常工作需要处理大量桌面终端,可以了解一些整合了网络诊断、远程协助功能的运维工具箱,但下载安装时必须确认来源可靠,涉及扫描功能的工具只能在授权范围内使用。
3.5 确定 VMware 网络模式
VMware 提供桥接、NAT、仅主机三种网络模式。对新手最推荐 NAT 模式:虚拟机通过宿主机访问外网,宿主机也能访问虚拟机,不用关心局域网 IP 冲突,操作最简单。后续部署 Web 服务时,重点记住虚拟机的 IP 地址,浏览器访问就靠它。
4. 搭建第一台 Linux 虚拟机
4.1 新建虚拟机
打开 VMware Workstation,按下面的流程创建虚拟机:
- 选择“创建新的虚拟机”,然后选“典型(推荐)”。
- 选择“稍后安装操作系统”,避免安装器自动检测出错。
- 客户机操作系统选择 Linux,版本根据镜像选择,比如 Ubuntu 64 位或 Rocky Linux 64 位。
- 设置虚拟机名称和存储位置,磁盘大小建议 40GB 到 60GB,选择“将虚拟磁盘存储为单个文件”。
- 自定义硬件:内存分配 2GB 到 4GB(宿主机 8GB 内存时推荐 2GB 到 4GB),CPU 分配 2 核,网络类型选 NAT。
- 在 CD/DVD 选项中,选择“使用 ISO 镜像文件”,指向下载好的 Linux 镜像。
- 点击开启虚拟机,进入安装引导。
4.2 安装 Linux 系统
启动虚拟机后进入安装界面。以 Ubuntu Server 为例,选择“Install Ubuntu Server”,语言建议选 English,可以减少终端编码问题;网络保持默认 DHCP;磁盘选择使用整个虚拟磁盘;然后创建普通用户并设置密码。这里要注意两点:第一,日常登录用普通用户加 sudo,不要直接用 root,降低误操作风险;第二,安装过程中保持网络畅通,安装器会更新软件包。安装重启后提示移除安装介质时,直接回车即可。
4.3 安装完成后的第一件事
系统装好只是开始,先做三件事:
# 1. 查看虚拟机 IP 地址 ip addr # 2. 更新软件源和系统(Ubuntu/Debian) sudo apt update && sudo apt upgrade -y # 3. 更新软件源和系统(Rocky/CentOS) sudo dnf update -yip addr输出中,ens33、ens160 等网卡下的 inet 地址就是虚拟机的 IP,后面 SSH 连接和浏览器访问都靠它。更新系统需要几分钟,网速取决于软件源。更新完成后,用 SSH 客户端连接虚拟机 IP,如果连接成功,说明这台虚拟机已经具备远程管理能力。建议先验证 SSH 可用,再去放行或关闭防火墙,避免把自己锁在外面。
4.4 高频安装坑
虚拟机安装 Linux 阶段最容易遇到四个问题:
- 提示“客户机操作系统已禁用 CPU,请关闭或重置虚拟机”:通常是 BIOS 没有开启虚拟化,回到 3.1 处理。
- 虚拟机安装 Linux 蓝屏:多半是虚拟化未启用、镜像文件损坏或 VMware 版本太旧。
- VMware Workstation 无法连接到虚拟机:用管理员身份运行 VMware,或检查 VMware 服务是否被禁用。
- VMware Tools 提示没有数字签名不能安装:优先下载与 VMware 版本匹配的最新版 Tools,按系统提示处理驱动签名问题,不要从奇怪来源下载。
5. Linux 基础命令:文件操作、用户与权限
5.1 目录与文件操作
登录进系统之后,最常用的是一组文件管理命令。
pwd # 查看当前目录 ls -lah # 查看目录内容,带权限、大小、时间 cd /data # 切换目录 mkdir -p /data/projects # 递归创建目录 touch test.txt # 创建空文件 cp -r src dst # 复制目录 mv old new # 移动或重命名 rm -rf /data/test # 强制删除目录,谨慎使用 ln -s /data/projects /home/user/projects # 创建软链接这里必须重点提醒:rm -rf对应的问题就是“linux 删除文件夹命令”怎么用。rm -rf在脚本或生产环境中一旦路径写错,系统文件可能瞬间被删,而且基本无法恢复。对新手来说,最安全的习惯是:删除前先用ls确认路径,能用mv移到临时目录观察,就不要直接rm -rf。
5.2 查看和编辑文件
查看文件内容有几种方式,按场景选择:
cat /etc/hostname # 查看完整内容(适合小文件) less /etc/nginx/nginx.conf # 分页查看(适合大文件) head -20 /var/log/syslog # 查看文件开头 tail -f /var/log/syslog # 实时跟踪日志输出,排查问题最常用 grep -i error /var/log/syslog # 过滤关键字文本编辑推荐先掌握 vim 的基本用法,对应热搜词“vim 命令”。第一次用 vim 时只记四件事:
vim /etc/nginx/nginx.conf # 按 i 进入编辑模式 # 编辑完成后按 Esc 退出编辑模式 # 输入 :wq 保存并退出 # 输入 :q! 不保存强制退出刚开始用 vim 会觉得别扭,但服务器上很多文件编辑都要靠它。坚持一周,基本操作就会形成肌肉记忆。
5.3 用户管理
运维工作里创建用户是高频操作,对应热搜词“linux 新建用户”。
# 创建用户 sudo useradd -m -s /bin/bash dev # 设置密码 sudo passwd dev # 把用户加入 sudo 组(Ubuntu) sudo usermod -aG sudo dev # 查看用户所属组 groups dev # 删除用户 sudo userdel -r dev日常管理原则是:root 权限只用于系统级操作,应用部署和日常登录用普通用户,再通过 sudo 临时提权。这样能减少误操作带来的损失,同时留下的操作记录也更清晰。
5.4 权限管理
文件权限是 Linux 面试高频题,掌握起来其实很简单。ls -l输出的第一列有十个字符,第一个表示文件类型,后面每三个一组,分别表示属主、属组、其他用户的权限。
chmod 755 script.sh # 属主可读写执行,其他人可读可执行 chmod -R 750 /data/projects # 递归修改目录权限 chown -R dev:dev /data/projects # 修改属主和属组sudo 用户的管理在/etc/sudoers文件中,日常用visudo命令编辑。不要直接给所有用户放开 root 权限,最小授权是运维的基本素养。
5.5 第一组练习
命令学完要立刻用。建议在虚拟机上完成这样一组练习:创建/data/projects目录;新建一个 dev 用户;把目录属主改成 dev;创建一个软链接指向该目录;用 vim 在里面写一个说明文件;再尝试以 dev 用户创建文件,观察权限拒绝的效果。这套练习做完,文件、用户、权限三个主题就串起来了。
6. 系统管理与网络排查
6.1 systemd 服务管理
现代 Linux 发行版基本都使用 systemd 管理服务。运维工作中,启动、停止、查看服务状态都靠 systemctl。
sudo systemctl start nginx # 启动服务 sudo systemctl stop nginx # 停止服务 sudo systemctl restart nginx # 重启服务 sudo systemctl enable nginx # 设置开机自启 sudo systemctl disable nginx # 取消开机自启 sudo systemctl status nginx # 查看服务状态 sudo systemctl enable --now nginx # 开启自启并立即启动查看服务是否监听端口,用ss -tlnp或netstat -tlnp。比如看到:80被 nginx 监听,说明 Web 服务已经起来了。端口 22 对应 SSH,端口 80 对应 HTTP,端口 443 对应 HTTPS,这些是运维排查网络时最常确认的端口。
6.2 查看系统资源占用
排查性能问题,按 CPU、内存、磁盘的顺序检查:
top # 实时查看 CPU 和内存占用,按 q 退出 free -h # 查看内存使用 df -h # 查看磁盘使用 ps aux | grep nginx # 查看指定进程如果服务器变慢,先开top看 CPU 占用最高的进程,再用free -h看内存是否不足,最后用df -h看磁盘是否写满。日志文件过大、磁盘写满导致的故障,在运维日常中非常常见。
6.3 时间同步
服务器时间不准会直接影响日志排查、证书校验和计划任务执行。对应热搜词“时间服务器”的通用操作如下:
# 查看当前时间状态 timedatectl status # 开启自动时间同步(systemd-timesyncd) sudo timedatectl set-ntp true # 如果使用 chrony(企业环境常用) sudo systemctl enable --now chronyd chronyc sources -v时间同步的方式有很多种,Debian/Ubuntu 默认走 systemd-timesyncd,RHEL 系默认使用 chronyd。新手只要记住:时间状态显示 NTP synchronized 就说明同步正常。
6.4 网络连接排查
网络排查有一套固定顺序,对应热搜词“telnet 命令怎么用”。从网卡配置到端口连通性,一层一层排查:
# 1. 查看网卡 IP 和路由 ip addr ip route # 2. 测试网络连通性 ping -c 4 127.0.0.1 ping -c 4 www.baidu.com # 3. 测试端口连通性(没有 telnet 先安装) sudo apt install telnet -y # Ubuntu sudo dnf install telnet -y # Rocky/CentOS telnet 192.168.x.x 80 # 4. 查看本机监听端口 ss -tlnp # 5. 用 curl 测试 HTTP 服务 curl -I http://127.0.0.1telnet 的经典用法就是“测端口通不通”。如果 telnet 能进入一个空的终端界面,说明目标端口可达;如果提示Connection refused,说明端口没监听或防火墙拒绝了连接。它本身没有加密能力,生产环境排查完要记得退出,不要用 telnet 传敏感信息。
7. 服务搭建实战:部署一台可访问的 Web 服务器
7.1 安装并启动 Nginx
前面的命令都是铺垫,这一章进入运维工作的核心场景:部署服务。这里用 Nginx 部署一个静态站点,过程简单但链路完整。
Ubuntu/Debian:
sudo apt update sudo apt install nginx -y sudo systemctl enable --now nginxRocky/CentOS:
sudo dnf install nginx -y sudo systemctl enable --now nginx安装完成后先做本地验证:
systemctl status nginx curl http://127.0.0.1 ss -tlnp | grep 80看到 curl 返回 HTML 内容,并且 80 端口处于 LISTEN 状态,说明 Nginx 安装成功。
7.2 修改默认站点
Nginx 的默认站点根目录一般在/var/www/html。可以把默认页面替换成自己的内容:
echo "<h1>Hello Linux</h1><p>My first web server.</p>" | sudo tee /var/www/html/index.html如果想新增站点,可以在/etc/nginx/conf.d/下新建配置文件,然后在 server 块里配置server_name和root。新手阶段先改默认首页即可,重点是跑通流程。
7.3 防火墙放行 80 端口
浏览器要访问虚拟机,除了服务本身要监听,防火墙也必须放行对应的端口。
Ubuntu 使用 ufw 时:
sudo ufw allow 80/tcp sudo ufw allow 22/tcp # 确保 SSH 不会被挡 sudo ufw enable sudo ufw statusRocky/CentOS 使用 firewalld 时:
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-all这里有一个安全顺序:先放行 22 端口和 80 端口,再开启防火墙。如果顺序反了,SSH 可能直接断开,尤其对云服务器远程操作时更危险。
7.4 浏览器访问验证
在宿主机浏览器输入http://虚拟机IP,如果能看到自己写的页面,整条部署链路就通了。这个验证过程虽然简单,但它包含了运维部署的标准动作:安装服务、启动服务、配置内容、放行防火墙、外部访问验证。后面部署 Java 应用、Python 服务、数据库,流程都是这个模式的延伸。
7.5 SSH 免密登录配置
服务部署到位后,日常管理基本都是远程操作。SSH 免密登录能避免每次输入密码,也方便后续跑脚本和自动化任务:
# 在宿主机生成密钥(如果还没有) ssh-keygen -t ed25519 # 把公钥拷贝到虚拟机 ssh-copy-id user@虚拟机IP # 测试免密登录 ssh user@虚拟机IP配置完之后,SSH 登录不再需要密码。密钥文件要妥善保管,私钥不要上传到公开仓库,也不要发给任何人。
7.6 部署顺序总结
部署任何一种服务,都可以按这套顺序操作:安装服务包 → 修改配置文件 → 启动并设置开机自启 → 检查监听端口 → 放行防火墙 → 本机 curl 验证 → 外部访问验证。遇到问题就逐层排查:先看服务状态,再看监听端口,最后查防火墙和日志。这套方法比死记命令更管用。
8. 常见问题与排查方法
下面是零基础学 Linux 和虚拟机部署阶段最常遇到的问题,整理成一张排查表。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 提示“客户机操作系统已禁用 CPU” | BIOS 未开启虚拟化 | 任务管理器查看虚拟化状态 | 重启进 BIOS,开启 Intel VT-x/AMD-V |
| 虚拟机安装 Linux 蓝屏 | 虚拟化未开启、镜像损坏 | 重新下载官网镜像 | 开启虚拟化,更新 VMware 版本 |
| VMware Workstation 提示无法连接虚拟机 | 服务未启动或权限不足 | 右键以管理员身份运行 | 重启 VMware 服务或重新安装组件 |
| VMware Tools 没有数字签名 | VMware Tools 版本过旧 | 查看 VMware 版本号 | 从官网下载匹配版本更新 |
| SSH 连接被拒绝 | sshd 未启动或 22 端口未放行 | systemctl status sshd | 启动 sshd,放行 22 端口 |
| 浏览器访问虚拟机 IP 打不开 | Nginx 未启动、防火墙拦截、网络模式不对 | 先 curl 本机,再 ss -tlnp | 启动服务、放行 80 端口、确认 NAT 模式 |
| telnet 命令不存在 | 未安装 telnet 客户端 | which telnet | 用 apt/dnf 安装 telnet |
| rm -rf 误删文件 | 手动误操作或脚本路径错误 | 无,基本无法恢复 | 习惯用 mv 代替 rm,删前先 ls 确认 |
| 软件源更新慢 | 默认源在国外或网络波动 | 查看 sources 配置 | 更换国内镜像源,如清华、阿里云源 |
| 虚拟机没有 IP 地址 | 网络服务未启动或 DHCP 异常 | ip addr / systemctl status NetworkManager | 重启网络服务,必要时配置静态 IP |
8.1 通用排查思路
除了表格里的问题,再补充几个通用排查思路。
服务起不来,先看日志。systemctl status只会给粗略状态,具体原因要看日志:
sudo journalctl -u nginx -n 50端口不通,先确认服务有没有监听,再看防火墙。如果ss -tlnp里没有 80 端口,说明 Nginx 没起来;如果端口在监听但外部连不上,基本是防火墙拦截,用ufw status或firewall-cmd --list-all确认放行规则。
网络不通,按“网关 → 外网 → 端口 → 防火墙”的顺序一层层查。先ip route看默认网关,再ping外网地址判断通往外网的路径是否正常,最后用 telnet 测试指定端口。每一层都有结果,故障位置就缩小了。
9. 最佳实践与后续学习路线
9.1 虚拟机操作好习惯
安装完成系统并更新后,先做一个快照。快照相当于系统的存档点,后续每次做危险实验前,比如改系统配置、装未知软件、调试脚本,都先拍一张快照。系统被折腾坏了,直接回滚,比重新安装快得多。需要提醒的是,快照不是备份,重要数据仍然要单独拷贝出来。
9.2 面试与晋升方向
要考 Linux 相关岗位或者准备面试,重点确认这几个方向:文件权限和软硬链接、systemd 服务管理、常见服务部署(Nginx、SSH、数据库)、磁盘和内存管理、网络问题排查。这些内容正好是前面几章练习过的。
面试和实际工作中,后面还有一条清晰的进阶路线:
- Shell 脚本:把重复操作写成脚本,批量创建用户、批量改配置。
- Docker 容器:用容器跑 Nginx、MySQL、Redis,环境隔离更方便。
- 监控告警:部署 Node Exporter 和 Prometheus,掌握资源指标采集。
- Kubernetes:学习 Pod、Deployment、Service 的基本概念,理解服务器集群的调度方式。
- CI/CD:用 GitLab CI 或 GitHub Actions 做自动构建和发布。
对应热搜词“containerd 命令”,它是 Kubernetes 节点上常见的容器运行时。后面学 K8s 时会用到ctr、crictl、nerdctl这些命令,现在不用急着学,先把 Linux 基础打牢。
对应热搜词“git 命令”,运维工程师也绕不开版本管理。至少掌握git clone、git add、git commit、git push四个命令,把脚本和配置文件放到 Git 仓库里管理,修改记录一目了然。
9.3 安全与合规提醒
无论学习还是工作,安全和合规永远是底线。虚拟机里的实验要遵守软件授权;下载镜像和工具只从官网获取;涉及安全测试工具,必须在你拥有授权的系统和网络范围内使用;云服务器试用要注意到期时间。对外暴露任何服务之前,都要确认端口最小开放,密码和密钥不能出现在公开代码仓库里。
9.4 本周可以先做的事
如果你刚从零开始,建议按这个优先级推进:先把虚拟机装好,跑通 SSH 登录;然后完成第 5 章的练习清单;再用 Nginx 部署一个页面,宿主机浏览器能访问就算过关;最后把第 8 章的排查表存下来,遇到问题时对照操作。这套流程跑完,你已经具备运维工程师最基本的动手能力,下一步就可以往 Shell 脚本和 Docker 方向继续走了。