零基础学Linux:从虚拟机搭建到Nginx部署实战
2026/9/6 2:30:51 网站建设 项目流程

很多刚接触运维或 Linux 的朋友,最开始都会遇到同样的问题:想学 Linux 但不敢在真实电脑上折腾,怕弄坏系统;看了一堆命令却不知道在什么场景下用;跟着教程装好了系统,又不知道下一步该干什么。这篇文章就是为这个阶段准备的。我会从虚拟机搭建开始,带着你在 Windows 电脑上创建一个安全的 Linux 实验环境,然后逐步讲解最核心的 Linux 命令、用户与权限、系统管理、网络配置,最后用一个 Nginx 静态服务器部署案例,把前面所有知识串联起来。内容针对零基础入门设计,所有操作都会说明目的和验证方式,照着敲一遍就能建立完整的 Linux 运维基础框架。

1. 为什么要用虚拟机学 Linux?

1.1 虚拟机解决了什么问题

Linux 是一个开源操作系统,广泛运行在服务器、嵌入式设备、超级计算机等场景。对于运维工程师来说,Linux 是必须掌握的基础技能。但直接在物理机上安装 Linux 有几个现实问题:可能影响原有工作环境、硬件驱动兼容性不确定、安装过程一旦出错恢复成本较高。

虚拟机(Virtual Machine)通过软件模拟出一台完整的计算机硬件环境,在这台“虚拟电脑”上可以正常安装和运行操作系统。宿主机(你的 Windows 电脑)与虚拟机之间相互隔离,虚拟机里系统崩溃了,宿主机不受影响;实验做完可以随时删除重建。这样一来,学习 Linux 的风险几乎降为零,你可以大胆尝试各种命令、配置和实验。

1.2 学习 Linux 的正确路径

很多初学者容易陷入两个极端:一是只背命令不建环境,看完就忘;二是遇到问题就重装系统,跳过排查过程。比较推荐的学习路径是:

  1. 先搭建虚拟机环境,理解 Linux 的安装过程和磁盘分区逻辑。
  2. 掌握命令行基础操作,包括文件管理、目录结构、文本编辑。
  3. 学习用户权限和系统管理,理解 Linux 多用户设计思想。
  4. 掌握网络配置和远程连接,贴近服务器真实使用方式。
  5. 通过部署实际服务(如 Nginx、SSH 服务)串联知识。
  6. 养成查看日志和排查问题的习惯。

本文会按照这个路径逐步展开。关于虚拟机和 Linux 发行版的更多背景知识,可以查阅 VMware 官网文档和 Red Hat 官方文档。

2. 环境准备与版本说明

2.1 硬件与宿主机要求

学习阶段对硬件要求并不高。建议宿主机内存不低于 8GB,磁盘剩余空间不低于 30GB,CPU 为双核以上即可。如果你的电脑配置较低,可以适当调低虚拟机分配的资源,但最低建议给虚拟机分配 2GB 内存和 20GB 磁盘空间。

版本需要根据你的项目实际情况调整,本文示例以常见环境为例,重点演示配置思路。操作系统方面,本文演示基于 Windows 10/11 宿主机,虚拟化软件使用 VMware Workstation,Linux 发行版使用 CentOS 7.9 的镜像进行讲解。

2.2 所需软件清单

软件作用获取方式
VMware Workstation虚拟化软件,用于创建和管理虚拟机VMware 官网下载
CentOS 7.9 镜像Linux 操作系统安装介质各镜像站获取
Xshell 或 FinalShellSSH 远程连接工具(可选)官网下载
WinSCP 或 FileZilla文件传输工具(可选)官网下载

并不是所有软件都必须安装。如果你只想在虚拟机窗口里操作,只需要 VMware 和 Linux 镜像就够了。但作为运维工程师,SSH 远程连接是日常工作必备技能,建议后面还是装一个终端工具。

需要说明的是,CentOS 7 已经进入维护周期尾声,CentOS Stream 和 Rocky Linux、AlmaLinux 都是常见的替代方案。本文以 CentOS 7.9 为例是因为社区资料最丰富,遇到问题容易搜索到解决方案。实际生产环境建议根据公司技术栈选择。

2.3 安装 VMware Workstation

VMware Workstation 的安装过程比较直接,双击安装包,按向导提示操作即可。安装完成后打开软件,界面左侧是虚拟机库,右侧是快速创建入口。

安装时注意以下几点:

  • 安装路径不要放在 C 盘系统盘,避免占用系统盘空间。
  • 网络类型选择“仅主机模式”和“NAT 模式”等选项可以后续配置,安装默认即可。
  • 如果安装过程中提示需要重启电脑,保存其他工作后重启。

3. 创建第一台 Linux 虚拟机

3.1 新建虚拟机向导

打开 VMware Workstation,点击“创建新的虚拟机”,选择“典型(推荐)”配置方式。典型模式会帮你处理大部分默认设置,适合新手。

在安装来源界面,选择“稍后安装操作系统”,这样可以先创建空白虚拟机,再手动挂载镜像。如果你直接选“安装程序光盘映像文件”,VMware 会自动检测系统类型,但某些 Linux 发行版检测结果不准确,可能影响后续安装。

虚拟机名称建议写得清晰一些,比如centos7-learn,位置选择磁盘空间充足的目录。磁盘大小设置为 20GB,选择“将虚拟磁盘拆分成多个文件”,方便迁移和备份。

3.2 虚拟机硬件设置

创建完成后,在虚拟机库中右键该虚拟机,选择“设置”,进行以下调整:

  • 内存:建议 2GB,如果你的宿主机内存是 16GB,可以给 4GB。
  • 处理器:至少 1 个处理器、2 个核心。
  • CD/DVD:选择“使用 ISO 镜像文件”,浏览到刚才下载的 CentOS 镜像。
  • 网络适配器:选择“NAT 模式”。NAT 模式让虚拟机通过宿主机上网,虚拟机之间相互隔离,适合学习环境。

确认配置后点击“确定”保存。

3.3 安装 CentOS 7.9

启动虚拟机,进入 CentOS 安装引导界面。默认第一项是“Install CentOS 7”,直接回车。等待加载后会出现安装欢迎界面,选择中文或 English 都可以,本文以中文界面演示。

关键配置项如下:

安装位置:选择“自动配置分区”即可。学习阶段不需要手动分区,但你应该了解 Linux 目录结构:根目录/、启动分区/boot、用户目录/home、交换分区 swap。后续学习磁盘管理时会深入理解。

软件选择:如果希望系统自带图形界面,选择“GNOME 桌面”;如果追求轻量、贴近服务器环境,选择“最小安装”。这里建议选择“GNOME 桌面”,因为零基础阶段图形界面可以帮助你建立直观认识,同时不影响命令行学习。

网络与主机名:打开“以太网”开关,确保网卡处于连接状态。主机名可以改为centos-learn

设置 root 密码时,建议设置为root123这类简单密码方便实验,但务必清楚生产环境必须使用强密码。如果提示密码过短,点击“完成”两次确认即可。

安装过程约 10 到 20 分钟,取决于电脑性能。安装完成后重启,接受许可协议,完成初始化设置。

4. Linux 核心命令实战

4.1 目录结构与 pwd、ls、cd

安装完成后输入 root 用户名和密码登录。Linux 一切皆文件,一切操作都围绕文件系统展开。理解目录结构是命令操作的基础。

执行pwd查看当前所在目录:

pwd

输出/root表示当前在 root 用户的家目录。Linux 目录结构中有几个重要的目录:

  • /:根目录,所有目录的起点。
  • /etc:系统配置文件所在目录。
  • /var:经常变化的文件,如日志、缓存。
  • /home:普通用户的家目录。
  • /root:root 用户的家目录。
  • /tmp:临时文件目录。

ls命令列出目录内容,常用参数有-l(长格式显示)、-a(显示隐藏文件)、-h(人类可读大小):

ls -lh /etc

cd命令切换目录:

cd /etc cd ~ cd / cd ..

cd ~回到当前用户家目录,cd ..返回上级目录。这些是最基础但出现频率最高的命令。

4.2 文件操作:touch、mkdir、cp、mv、rm

创建文件用touch

touch test.txt

创建目录用mkdir,创建多级目录加-p参数:

mkdir mydir mkdir -p a/b/c

复制文件用cp

cp test.txt /tmp/test.txt

移动或重命名用mv

mv test.txt mydir/test2.txt

删除文件或目录用rm,删除目录加-r(递归)参数:

rm test.txt rm -r mydir

删除命令要特别注意。rm -rf是企业环境中服务器故障的常见原因之一,执行前一定要确认路径是否正确。建议刚开始学习时,删除前先ls看一下目标内容,避免误操作。

4.3 查看文件内容:cat、less、tail

cat直接输出全部内容,适合小文件:

cat /etc/hostname

less分页查看大文件,按空格翻页,按q退出:

less /var/log/messages

tail查看文件末尾内容,-f参数可以实时跟踪文件新增内容,这是排查日志最常用的方式:

tail -20 /var/log/messages tail -f /var/log/messages

Ctrl + C可以退出tail -f的实时跟踪模式。

4.4 文本处理三剑客:grep、sed、awk

grep用于文本搜索,在日志和配置排查中使用频率极高:

grep "error" /var/log/messages grep -i "error" /var/log/messages grep -r "root" /etc/

-i忽略大小写,-r递归搜索目录。

sed用于文本替换和行处理:

sed -i 's/old/new/g' test.txt

这里的-i表示直接修改文件,s/old/new/g表示把 old 替换成 new,g表示全局替换。

awk用于按列提取文本:

awk '{print $1}' /etc/passwd

上面命令会输出/etc/passwd文件每行的第一列,即用户名列。这三个命令是运维工作中最核心的文本处理工具,后续排查日志、批量修改配置都离不开它们。

5. 用户与权限管理

5.1 Linux 用户体系

Linux 是多用户操作系统,每个用户都有自己的家目录和文件权限。用户分为两类:

  • root 超级用户:拥有系统最高权限,可以执行任何操作。
  • 普通用户:权限受限,只能操作自己有权限访问的文件和目录。

/etc/passwd文件保存用户基本信息和家目录路径。查看所有用户:

cat /etc/passwd

每行格式为用户名:x:UID:GID:描述:家目录:登录Shell,UID 为 0 表示 root 用户。

5.2 创建与管理用户

创建用户用useradd,设置密码用passwd

useradd devuser passwd devuser

按照提示输入两次密码即可。切换到该用户:

su - devuser

退出当前用户回到 root:

exit

删除用户:

userdel -r devuser

-r参数会同时删除用户家目录,不加则保留。

5.3 文件权限详解

执行ls -l可以查看文件权限:

ls -l test.txt

输出类似-rw-r--r--,共 10 位。第 1 位表示文件类型(-文件,d目录),后面 9 位每 3 位一组,分别代表文件所有者、所属组、其他用户的权限。r表示读,w表示写,x表示执行。

修改权限用chmod。数字表示法中r=4w=2x=1chmod 755 file表示所有者有全部权限(7=4+2+1),组和其他用户有读和执行权限(5=4+1):

chmod 755 test.txt chmod 644 test.txt

修改文件所属用户和组用chown

chown devuser:devuser test.txt

写一个简单的 shell 脚本演示执行权限:

echo '#!/bin/bash' > hello.sh echo 'echo "Hello Linux"' >> hello.sh chmod 755 hello.sh ./hello.sh

输出Hello Linux。如果没有执行权限,直接运行./hello.sh会提示Permission denied

5.4 sudo 提权

普通用户使用sudo可以临时执行 root 权限命令,但需要被授权。执行:

visudo

会打开 sudoers 配置文件,找到root ALL=(ALL) ALL这一行,在下面添加:

devuser ALL=(ALL) ALL

保存退出后,切换到 devuser,执行:

sudo ls /root

会提示输入 devuser 的密码,然后可以查看 root 家目录内容。这样既保证了日常操作不直接用 root,又在必要时拥有提权能力,这是企业环境常见的管理方式。

6. 系统管理核心技能

6.1 systemctl 服务管理

CentOS 7 及之后版本使用 systemd 管理系统服务和进程。查看服务状态:

systemctl status sshd

启动、停止、重启服务:

systemctl start sshd systemctl stop sshd systemctl restart sshd

设置开机自启:

systemctl enable sshd systemctl disable sshd

查看所有运行中的服务:

systemctl list-units --type=service --state=running

6.2 进程管理

查看系统进程用ps

ps -ef ps -ef | grep sshd

ps -ef输出所有进程,配合grep可以精确查找。top命令动态显示系统资源占用和进程列表,按q退出:

top

结束进程用kill,需要先通过ps查找到进程 PID:

kill 12345 kill -9 12345

kill -9是强制杀死进程,正常情况先尝试不带参数的可优雅终止。企业中重启 Java 应用时,经常需要先找到进程 PID 再 kill,然后重新启动应用。

6.3 磁盘与内存查看

df -h查看磁盘空间使用情况:

df -h

free -h查看内存使用情况:

free -h

du -sh查看指定目录占用空间:

du -sh /var/log

系统出现问题的时候,第一件事就是检查磁盘和内存。日志会持续写入而撑爆磁盘,JVM 应用内存泄漏会导致内存耗尽,这些命令可以帮助你快速定位问题方向。

6.4 查看系统日志

Linux 的系统日志通常存放在/var/log/目录:

  • /var/log/messages:系统整体日志,包括内核信息、服务状态。
  • /var/log/secure:安全日志,包括用户登录、认证信息。
  • /var/log/cron:计划任务日志。

排查问题时养成先看日志的习惯:

tail -50 /var/log/messages grep -i "error" /var/log/messages

6.5 网络配置与 SSH 远程连接

查看网络状态:

ip addr ping -c 4 www.baidu.com

ip addr查看网卡 IP 地址,ping测试网络连通性,-c 4表示发送 4 个包后停止。

查看 SSH 服务是否运行:

systemctl status sshd

SSH 是 Linux 服务器远程管理的主要方式,默认端口是 22。如果服务未启动:

systemctl start sshd systemctl enable sshd

查看本机 IP 地址:

ip addr show

在输出中找inet后面的地址。如果是 NAT 模式,类似192.168.xxx.xxx。然后在 Windows 宿主机上打开终端(Windows 10 以上自带 OpenSSH 客户端),执行:

ssh root@192.168.xxx.xxx

输入密码即可登录虚拟机。这模拟了真实工作中远程管理服务器的场景。如果没有 SSH 客户端,也可以安装 Xshell 或 FinalShell,图形化界面操作更友好。

7. 部署一个静态网站(Nginx)

7.1 安装 Nginx

前面掌握了命令和系统管理基础后,下面通过部署 Nginx 静态网站把知识串联起来。Nginx 是全球使用率极高的 Web 服务器和反向代理服务器,学习它能为后续的 Web 运维打基础。

CentOS 7 默认源中没有 Nginx,需要先添加官方仓库。创建一个仓库配置文件:

vim /etc/yum.repos.d/nginx.repo

输入以下内容:

[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key

保存退出后,安装:

yum install -y nginx

7.2 启动 Nginx 并验证

启动 Nginx 并设置开机自启:

systemctl start nginx systemctl enable nginx systemctl status nginx

如果状态显示active (running),说明启动成功。在浏览器地址栏输入虚拟机的 IP 地址(前面ip addr查到的地址),会看到 Nginx 默认欢迎页面。

查看 Nginx 默认站点配置:

cat /etc/nginx/conf.d/default.conf

默认站点根目录在/usr/share/nginx/html。创建一个测试页面:

echo "<h1>Hello Linux, Hello Nginx!</h1>" > /usr/share/nginx/html/index.html

刷新浏览器,页面内容变为刚才写入的内容。至此,一个最简单的网站已经上线。

7.3 防火墙配置

如果你的虚拟机访问不了 Nginx 页面,很可能是防火墙没有放行端口。查看防火墙状态:

systemctl status firewalld

放行 80 端口:

firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload

--permanent表示永久生效,--reload重新加载配置。生产环境中最小权限原则同样适用,只放行业务需要的端口,其他端口保持关闭。

7.4 使用 systemctl 管理 Nginx

部署完成后,你每天可能用到的运维操作就是启动、重启、查看状态、查看日志。

重启 Nginx:

systemctl restart nginx

查看错误日志:

tail -50 /var/log/nginx/error.log

查看访问日志:

tail -50 /var/log/nginx/access.log

访问日志记录了每一次客户端请求的来源 IP、请求路径、HTTP 状态码等信息,在排查问题和分析流量时非常有用。比如有人扫描你的服务器,日志里会明确记录扫描痕迹。

8. 常见问题与排查思路

问题现象常见原因解决思路
VMware 启动虚拟机后提示“无法连接虚拟机”VMware 服务未启动或服务损坏找到 VMware 主进程,右键管理员身份重新打开;如果无效,重启 VMware 服务
虚拟机安装 Linux 后无法上网网卡未启用或未配置 IP检查/etc/sysconfig/network-scripts/下网卡配置文件,确保ONBOOT=yes
提示“客户机操作系统已禁用 CPU”虚拟化未被 BIOS 开启或兼容性问题重启电脑进入 BIOS,开启 Intel VT-x 或 AMD-V;检查 VMware 硬件兼容性设置
SSH 连接被拒绝SSH 服务未启动或端口被防火墙拦截systemctl status sshd,启动服务;检查防火墙是否放行 22 端口
rm -rf误删文件路径写错或对通配符理解不深删除前先ls确认,避免在根目录使用通配符;重要数据提前备份
磁盘空间已满日志文件过大或大文件堆积df -h查看分区占用,du -sh定位大文件,及时清理日志
yum 安装软件提示找不到包软件源未更新或源不可用yum clean all && yum makecache,检查源配置文件
服务启动失败,状态显示 failed配置错误或端口被占用查看/var/log/messages或应用日志;使用ss -lntp查看端口占用

8.1 VMware 常见报错处理

很多读者第一次安装 Linux 就在 VMware 环节卡住。这里专门说明几个高频问题的处理方向。

提示“VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问该程序使用的所有临时文件”时,可以先以管理员身份重新运行 VMware Workstation。如果仍然报错,在 Windows 服务管理器中找到 VMware 相关服务,确认它们处于运行状态,必要时重启这些服务。

提示“unable to find the vmx binary”通常是因为虚拟机路径发生变化,或 VMware 安装位置异常。检查虚拟机配置文件指向的可执行文件路径是否存在,如果移动过 VMware 安装目录,需要重新配置路径。

提示“客户机操作系统已禁用 CPU。请关闭或重置虚拟机”一般与虚拟化技术有关。重启电脑进入 BIOS,开启 Intel Virtualization Technology(Intel VT-x)或 AMD SVM,保存重启后再启动虚拟机。同时确认虚拟机设置中“虚拟化引擎”选项没有不兼容配置。

8.2 Linux 使用中常见报错

Permission denied是最常见的权限报错。执行ls -l查看文件权限,确认当前用户是否有相应权限。必要时使用chmod调整权限,或使用sudo提权执行。

command not found表示命令不存在。可能是命令拼写错误、软件未安装、环境变量 PATH 没有包含命令路径。先确认拼写,再确认包是否安装,最后检查which 命令名

No space left on device表示磁盘空间已满。用df -h查看哪个分区满了,然后用du -sh逐层定位大文件,确定可以清理后释放空间。

服务启动失败时,不要盲目重启。先查看日志,日志会准确告诉你问题出在哪里。错误日志的排查顺序是:systemctl status 服务名/var/log/messages→ 应用自身日志,如 Nginx 的/var/log/nginx/error.log

9. 最佳实践与运维习惯

9.1 命令行使用习惯

运维工作 80% 的时间都在命令行上,好的习惯能显著减少操作失误。

第一,输入命令前先确认当前用户和所在目录。执行whoamipwd可以快速确认环境。特别是涉及删除、修改配置、重启服务的操作,一定要明确当前处于什么环境。

第二,用 Tab 键自动补全命令和文件名,既提高效率又减少拼写错误。

第三,慎用rm -rf。建议在.bashrc中添加别名,给删除命令加个确认提示:

alias rm='rm -i'

第四,善用history查看历史命令,配合grep快速找回之前执行过的命令:

history | grep nginx

9.2 配置管理习惯

修改配置文件前先备份,这是运维工作中最重要的习惯之一:

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

修改配置后,使用nginx -t等语法检查命令验证配置是否正确,再重新加载服务:

nginx -t systemctl reload nginx

注意reloadrestart的区别:restart先停止再启动,会造成短暂服务中断;reload平滑重载配置,不会中断现有连接。生产环境优先考虑reload

9.3 日志与监控习惯

日志是运维排错的第一手资料。遇到问题先看日志,不要凭感觉猜测。建立固定排错流程:查看状态 → 查看日志 → 定位原因 → 修复 → 验证。

排查思路可以按以下顺序:

  1. systemctl status 服务名确认服务状态。
  2. tail -50 /var/log/messages查看系统日志。
  3. tail -50 /var/log/应用日志查看应用日志。
  4. 根据日志关键字用grep精确定位。

9.4 安全边界

学习阶段使用 root 和简单密码没问题,但一旦涉及生产环境或公网访问,必须遵守以下安全底线:

  • root 密码使用高强度密码,最小 12 位以上,包含大小写字母、数字和特殊符号。
  • 关闭不必要端口,只开放业务所需端口。
  • 不要使用默认端口配置对外服务,SSH 可以修改默认端口降低被扫描攻击的概率。
  • 定期更新系统和软件补丁:yum update -y
  • 涉及生产环境变更前,必须备份数据并评估影响范围;涉及数据库删除或更新操作时,先确认数据备份完整可用。

10. 总结与下一步学习方向

10.1 本文知识回顾

从虚拟机环境搭建开始,你已经完成了 Linux 入门的第一阶段。现在你应该掌握这些内容:

  • 使用 VMware Workstation 创建和配置虚拟机,理解 NAT 网络模式的作用。
  • 掌握 Linux 目录结构、文件操作命令、文本处理三剑客(grep、sed、awk)的基本用法。
  • 理解 Linux 用户体系和安全模型,会创建用户、分配权限、配置 sudo。
  • 会使用 systemctl 管理系统服务,掌握查看日志、排查服务故障的基本思路。
  • 完成 Nginx 静态网站部署,理解从安装到配置到验证的完整流程。

10.2 下一步学什么

基础入门之后,建议按以下顺序深入:

  • Shell 脚本编程:将重复性操作封装成脚本,是运维自动化的起点。
  • 网络基础:理解 IP、端口、DNS、防火墙、TCP 协议,对排查网络问题至关重要。
  • Linux 磁盘管理:掌握 LVM 逻辑卷、磁盘分区、挂载操作。
  • 服务部署进阶:部署 MySQL、Redis、Tomcat 等常用中间件。
  • 自动化运维:学习 Ansible,实现批量服务器管理。
  • 容器化:Docker 和 Kubernetes 是现代运维的必备技能。

10.3 给初学者的建议

学习 Linux 最重要的是保持动手频率。命令不用就会生疏,环境不折腾就学不深。遇到问题先自己查日志、搜资料,实在解决不了再提问。虚拟机的优势就在于随便折腾,系统坏了重装也就十几分钟的事。

建议接下来每天抽出半小时,在虚拟机上练习命令操作,逐步把常用命令变成肌肉记忆。可以把 Nginx 部署的流程重复做几遍,然后尝试修改 Nginx 配置、增加页面、设置访问控制,把基础命令用熟练。如果本文对你有帮助,可以收藏备用;也欢迎在评论区交流你在搭建虚拟机和部署服务时遇到的报错,一起查缺补漏。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询