尧图精选

零基础学Linux:从虚拟机搭建到Nginx部署实战

🕒 发布时间:2026/9/6 2:30:58 📁 来源:尧图网络
很多刚接触运维或 Linux 的朋友最开始都会遇到同样的问题想学 Linux 但不敢在真实电脑上折腾怕弄坏系统看了一堆命令却不知道在什么场景下用跟着教程装好了系统又不知道下一步该干什么。这篇文章就是为这个阶段准备的。我会从虚拟机搭建开始带着你在 Windows 电脑上创建一个安全的 Linux 实验环境然后逐步讲解最核心的 Linux 命令、用户与权限、系统管理、网络配置最后用一个 Nginx 静态服务器部署案例把前面所有知识串联起来。内容针对零基础入门设计所有操作都会说明目的和验证方式照着敲一遍就能建立完整的 Linux 运维基础框架。1. 为什么要用虚拟机学 Linux1.1 虚拟机解决了什么问题Linux 是一个开源操作系统广泛运行在服务器、嵌入式设备、超级计算机等场景。对于运维工程师来说Linux 是必须掌握的基础技能。但直接在物理机上安装 Linux 有几个现实问题可能影响原有工作环境、硬件驱动兼容性不确定、安装过程一旦出错恢复成本较高。虚拟机Virtual Machine通过软件模拟出一台完整的计算机硬件环境在这台“虚拟电脑”上可以正常安装和运行操作系统。宿主机你的 Windows 电脑与虚拟机之间相互隔离虚拟机里系统崩溃了宿主机不受影响实验做完可以随时删除重建。这样一来学习 Linux 的风险几乎降为零你可以大胆尝试各种命令、配置和实验。1.2 学习 Linux 的正确路径很多初学者容易陷入两个极端一是只背命令不建环境看完就忘二是遇到问题就重装系统跳过排查过程。比较推荐的学习路径是先搭建虚拟机环境理解 Linux 的安装过程和磁盘分区逻辑。掌握命令行基础操作包括文件管理、目录结构、文本编辑。学习用户权限和系统管理理解 Linux 多用户设计思想。掌握网络配置和远程连接贴近服务器真实使用方式。通过部署实际服务如 Nginx、SSH 服务串联知识。养成查看日志和排查问题的习惯。本文会按照这个路径逐步展开。关于虚拟机和 Linux 发行版的更多背景知识可以查阅 VMware 官网文档和 Red Hat 官方文档。2. 环境准备与版本说明2.1 硬件与宿主机要求学习阶段对硬件要求并不高。建议宿主机内存不低于 8GB磁盘剩余空间不低于 30GBCPU 为双核以上即可。如果你的电脑配置较低可以适当调低虚拟机分配的资源但最低建议给虚拟机分配 2GB 内存和 20GB 磁盘空间。版本需要根据你的项目实际情况调整本文示例以常见环境为例重点演示配置思路。操作系统方面本文演示基于 Windows 10/11 宿主机虚拟化软件使用 VMware WorkstationLinux 发行版使用 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 WorkstationVMware 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普通用户的家目录。/rootroot 用户的家目录。/tmp临时文件目录。ls命令列出目录内容常用参数有-l长格式显示、-a显示隐藏文件、-h人类可读大小ls -lh /etccd命令切换目录cd /etc cd ~ cd / cd ..cd ~回到当前用户家目录cd ..返回上级目录。这些是最基础但出现频率最高的命令。4.2 文件操作touch、mkdir、cp、mv、rm创建文件用touchtouch test.txt创建目录用mkdir创建多级目录加-p参数mkdir mydir mkdir -p a/b/c复制文件用cpcp test.txt /tmp/test.txt移动或重命名用mvmv test.txt mydir/test2.txt删除文件或目录用rm删除目录加-r递归参数rm test.txt rm -r mydir删除命令要特别注意。rm -rf是企业环境中服务器故障的常见原因之一执行前一定要确认路径是否正确。建议刚开始学习时删除前先ls看一下目标内容避免误操作。4.3 查看文件内容cat、less、tailcat直接输出全部内容适合小文件cat /etc/hostnameless分页查看大文件按空格翻页按q退出less /var/log/messagestail查看文件末尾内容-f参数可以实时跟踪文件新增内容这是排查日志最常用的方式tail -20 /var/log/messages tail -f /var/log/messages按Ctrl C可以退出tail -f的实时跟踪模式。4.4 文本处理三剑客grep、sed、awkgrep用于文本搜索在日志和配置排查中使用频率极高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 替换成 newg表示全局替换。awk用于按列提取文本awk {print $1} /etc/passwd上面命令会输出/etc/passwd文件每行的第一列即用户名列。这三个命令是运维工作中最核心的文本处理工具后续排查日志、批量修改配置都离不开它们。5. 用户与权限管理5.1 Linux 用户体系Linux 是多用户操作系统每个用户都有自己的家目录和文件权限。用户分为两类root 超级用户拥有系统最高权限可以执行任何操作。普通用户权限受限只能操作自己有权限访问的文件和目录。/etc/passwd文件保存用户基本信息和家目录路径。查看所有用户cat /etc/passwd每行格式为用户名:x:UID:GID:描述:家目录:登录ShellUID 为 0 表示 root 用户。5.2 创建与管理用户创建用户用useradd设置密码用passwduseradd devuser passwd devuser按照提示输入两次密码即可。切换到该用户su - devuser退出当前用户回到 rootexit删除用户userdel -r devuser-r参数会同时删除用户家目录不加则保留。5.3 文件权限详解执行ls -l可以查看文件权限ls -l test.txt输出类似-rw-r--r--共 10 位。第 1 位表示文件类型-文件d目录后面 9 位每 3 位一组分别代表文件所有者、所属组、其他用户的权限。r表示读w表示写x表示执行。修改权限用chmod。数字表示法中r4w2x1。chmod 755 file表示所有者有全部权限7421组和其他用户有读和执行权限541chmod 755 test.txt chmod 644 test.txt修改文件所属用户和组用chownchown 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 --typeservice --staterunning6.2 进程管理查看系统进程用psps -ef ps -ef | grep sshdps -ef输出所有进程配合grep可以精确查找。top命令动态显示系统资源占用和进程列表按q退出top结束进程用kill需要先通过ps查找到进程 PIDkill 12345 kill -9 12345kill -9是强制杀死进程正常情况先尝试不带参数的可优雅终止。企业中重启 Java 应用时经常需要先找到进程 PID 再 kill然后重新启动应用。6.3 磁盘与内存查看df -h查看磁盘空间使用情况df -hfree -h查看内存使用情况free -hdu -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/messages6.5 网络配置与 SSH 远程连接查看网络状态ip addr ping -c 4 www.baidu.comip addr查看网卡 IP 地址ping测试网络连通性-c 4表示发送 4 个包后停止。查看 SSH 服务是否运行systemctl status sshdSSH 是 Linux 服务器远程管理的主要方式默认端口是 22。如果服务未启动systemctl start sshd systemctl enable sshd查看本机 IP 地址ip addr show在输出中找inet后面的地址。如果是 NAT 模式类似192.168.xxx.xxx。然后在 Windows 宿主机上打开终端Windows 10 以上自带 OpenSSH 客户端执行ssh root192.168.xxx.xxx输入密码即可登录虚拟机。这模拟了真实工作中远程管理服务器的场景。如果没有 SSH 客户端也可以安装 Xshell 或 FinalShell图形化界面操作更友好。7. 部署一个静态网站Nginx7.1 安装 Nginx前面掌握了命令和系统管理基础后下面通过部署 Nginx 静态网站把知识串联起来。Nginx 是全球使用率极高的 Web 服务器和反向代理服务器学习它能为后续的 Web 运维打基础。CentOS 7 默认源中没有 Nginx需要先添加官方仓库。创建一个仓库配置文件vim /etc/yum.repos.d/nginx.repo输入以下内容[nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/7/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key保存退出后安装yum install -y nginx7.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 h1Hello Linux, Hello Nginx!/h1 /usr/share/nginx/html/index.html刷新浏览器页面内容变为刚才写入的内容。至此一个最简单的网站已经上线。7.3 防火墙配置如果你的虚拟机访问不了 Nginx 页面很可能是防火墙没有放行端口。查看防火墙状态systemctl status firewalld放行 80 端口firewall-cmd --permanent --add-port80/tcp firewall-cmd --reload--permanent表示永久生效--reload重新加载配置。生产环境中最小权限原则同样适用只放行业务需要的端口其他端口保持关闭。7.4 使用 systemctl 管理 Nginx部署完成后你每天可能用到的运维操作就是启动、重启、查看状态、查看日志。重启 Nginxsystemctl 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/下网卡配置文件确保ONBOOTyes提示“客户机操作系统已禁用 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 TechnologyIntel 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% 的时间都在命令行上好的习惯能显著减少操作失误。第一输入命令前先确认当前用户和所在目录。执行whoami和pwd可以快速确认环境。特别是涉及删除、修改配置、重启服务的操作一定要明确当前处于什么环境。第二用 Tab 键自动补全命令和文件名既提高效率又减少拼写错误。第三慎用rm -rf。建议在.bashrc中添加别名给删除命令加个确认提示alias rmrm -i第四善用history查看历史命令配合grep快速找回之前执行过的命令history | grep nginx9.2 配置管理习惯修改配置文件前先备份这是运维工作中最重要的习惯之一cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak修改配置后使用nginx -t等语法检查命令验证配置是否正确再重新加载服务nginx -t systemctl reload nginx注意reload和restart的区别restart先停止再启动会造成短暂服务中断reload平滑重载配置不会中断现有连接。生产环境优先考虑reload。9.3 日志与监控习惯日志是运维排错的第一手资料。遇到问题先看日志不要凭感觉猜测。建立固定排错流程查看状态 → 查看日志 → 定位原因 → 修复 → 验证。排查思路可以按以下顺序systemctl status 服务名确认服务状态。tail -50 /var/log/messages查看系统日志。tail -50 /var/log/应用日志查看应用日志。根据日志关键字用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 配置、增加页面、设置访问控制把基础命令用熟练。如果本文对你有帮助可以收藏备用也欢迎在评论区交流你在搭建虚拟机和部署服务时遇到的报错一起查缺补漏。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →