ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Linux系统安装到运维入门:虚拟机配置、常用命令与日志排查全攻略

Linux系统安装到运维入门:虚拟机配置、常用命令与日志排查全攻略 如果你正准备学 Linux并且目标是以后做运维相关工作那么最先要解决的不是背命令而是把环境跑起来。很多小白买课、收藏教程之后第一周就卡在系统安装这一步虚拟机不会配、镜像不会选、分区看不懂、装完不知道怎么验证。这篇文章就是把“Linux 系统安装 - 入门常用命令 - 运维日常操作”这条链路完整拆开适合零基础也适合已经在用 Windows、但想转服务端方向的人。我的建议很直接不要一上来就买服务器先在本地虚拟机里装一个 Linux 系统按本文走一遍比单纯看视频有效得多。学 Linux 不能靠“看会”。我见过太多人看了一两百集视频真正打开终端还是不知道从哪下手。原因很简单命令是记忆性的东西但系统理解是操作性的东西。只有自己动手装一次系统、敲一遍命令、启动一个服务、看一次日志你才知道运维每日到底在干什么。这篇文章我会按实际学习顺序来说先解决安装环境再进入常用命令然后是服务部署、网络配置、日志排查最后补充一条能持续进阶的学习路线。内容偏实操所有命令都可以在本地虚拟机里复现。镜像、版本、网络模式、分区方案这些地方我会给出判断标准而不是让你盲目照抄。1. 先分清你想学会“用 Linux”还是想“入行做运维”1.1 两种目标学习路径差别很大很多人看到“Linux 从入门到精通”“学完即可就业”这类标题就热血沸腾但实际学习时首先要做一个判断你是想学会日常使用 Linux比如配环境、跑程序、写脚本还是想进入运维岗位比如管理服务器、排查故障、部署服务、保障稳定性。如果是前者重点在常用命令、文件系统、权限、软件安装、Shell 脚本。如果是后者还要额外学网络、服务管理、日志、系统监控、故障排查、批量运维和虚拟化容器等内容。这篇文章默认你的目标是“入行运维”所以我不会只讲命令而是把安装系统之后的运维日常流程也一起带出来。这样你学完能知道自己每一步在做什么而不是单纯背了一堆命令。提醒一下运维不是“会敲命令”就能干的岗位。它更看排查思路、对系统结构的理解、对服务异常的处理速度。命令只是工具理解系统运行逻辑才是核心。1.2 零基础多久能上手零基础入行如果每天能保证 2 到 3 小时实操一般 1 到 2 个月可以掌握基础运维操作包括系统安装、命令操作、用户权限、网络配置、服务部署、日志查看。再往后想面试可以通过 Shell 脚本、Nginx、MySQL、容器等方向继续加深。但我不建议把“学完即可就业”理解成看完课程就能拿 Offer。实际面试会问你“服务起不来怎么排查”“磁盘满了怎么处理”“用户误删了文件怎么办”这类真实场景。这些能力只能靠实际操作积累所以从安装系统这一步开始就要养成亲自动手的习惯。1.3 本文环境说明我下面的步骤以本机 Windows 虚拟机软件 Linux 镜像为例。macOS 和 Linux 本机操作类似虚拟机软件换成对应版本即可。学习阶段不建议直接买云服务器因为本地虚拟机可以随便折腾装坏了重置快照就行成本为零。2. 安装之前先把虚拟机和镜像选对2.1 虚拟机软件怎么选常用的是 VMware Workstation 和 VirtualBox。前者稳定、功能全网上资料多适合大多数学习者后者免费开源对资源占用更低但某些情况下显卡和 USB 兼容性稍麻烦。不管是哪个虚拟机软件安装完都要确认CPU 虚拟化已在 BIOS 中开启。如果没开虚拟机启动时会报错比如“VT-x is not available”或“客户机操作系统已禁用 CPU”。这时要进 BIOS 开启 Intel VT-x 或 AMD-V。磁盘剩余空间至少 30GB 以上建议 50GB。虽然 Linux 系统本身占用不大但要装软件、下载镜像、存快照空间太小容易卡。内存 8GB 以上。虚拟机一般分 2GB 到 4GB 给 Linux如果物理机只有 4GB 内存虚拟机就别分太多否则跑起来很卡。2.2 镜像怎么选入行学习阶段镜像主要看你想走哪个方向方向推荐系统说明通用运维Rocky Linux / AlmaLinux属于 RHEL 系企业使用广泛命令体系偏 yum/dnf适合国内大多数运维岗位互联网应用开发Ubuntu / Debian包管理是 apt软件新社区资料多适合部署 Python、Node.js、Java 应用国产化环境银河麒麟 / openEuler如果所在地区或项目有国产化要求需要提前熟悉这些系统的安装和软件管理方式学习测试CentOS Stream适合练手但生产环境注意版本维护周期这里特别说一句老教程里大量使用 CentOS 7但 CentOS 7 已经停止维护新学习时不建议继续选它。应该选 Rocky Linux、AlmaLinux 这类替代发行版或者直接用 Ubuntu LTS 版本。原因是生产环境不能用无法获取安全更新的系统否则漏洞修复会非常被动。2.3 镜像下载注意事项官网下载镜像时优先选择离你最近的镜像站国内可以选择各高校或云厂商的镜像站下载速度更快。下载完成后核对校验值避免文件损坏。一般镜像站会提供 SHA256 校验值。安装时如果卡在某个界面先检查镜像文件是否完整再看虚拟机设置里的内存和磁盘是否足够。3. 从零完成一次 Linux 系统安装3.1 新建虚拟机的关键参数我现在以 VMware Workstation 和 Rocky Linux 为例其他发行版思路一致。创建虚拟机时几个关键参数建议这样设置操作系统类型选 Linux版本选对应内核或发行版。选错版本不会导致装不了但会影响虚拟机的默认硬件兼容性。内存建议 2048MB 以上如果你后面要跑图形界面或者编译程序可以分 4096MB。磁盘大小为 20GB 以上建议 40GB。注意选择“将虚拟磁盘拆分成多个文件”方便快照和备份。网络模式选 NAT。NAT 模式下虚拟机可以通过宿主机上网同时不影响宿主机原有网络学习阶段最省事。桥接模式会把虚拟机当成局域网内独立主机适合后续练习网络服务场景但初期容易遇到 IP 冲突。处理器核心数可以按物理机情况给 2 核或 4 核不要超过物理机逻辑核心数。3.2 识别安装界面和语言选择从镜像启动后界面一般会给你几个选项Install / 安装直接进行Test this media before installation 先测试介质再安装Troubleshooting 问题排查建议第一次安装时先跑一下介质校验。如果介质校验通过但安装还是报错就能排除镜像损坏的问题。语言选择上初学建议直接选 English。原因是运维环境里很多软件、日志、命令提示都以英文为主中文界面反而容易导致搜索资料时对不上。英文不好没关系装完系统再慢慢查单词。3.3 分区到底怎么分分区是新手最怕的一步其实入门阶段可以不用手动分区直接使用系统默认的自动分区。系统会自动建立 /boot、/根分区、swap 等分区足够学习使用。如果你以后要管理服务器建议理解这几个分区的含义/boot存放内核和引导文件一般 1GB 左右。/根分区存放系统文件和软件空间最大。swap交换分区当内存不够时充当“虚拟内存”。学习时给 2GB 到 4GB 即可或者用 swap 文件代替。/home用户目录。如果多用户使用可以独立分区方便备份和迁移。如果你不确定怎么分就选自动分区。手动分区时把 / 分区的空间留够最重要其他别乱动。注意分区操作有风险。如果你是在真实服务器上安装请先备份重要数据在本地虚拟机里练习则可以放心试装坏了重置重来即可。3.4 用户、密码和软件包选择安装过程中会让你设置 root 密码并创建一个普通用户。运维工作中平时用普通用户操作需要提权时用 sudo尽量少直接用 root。这样可以减少误操作风险也符合多数企业的安全习惯。软件包选择这一步学习阶段可以按“最小安装 常用工具”的思路。带图形界面的系统安装包更大、占用更多资源如果你打算长期在命令行下学习建议装最小安装或 Server 版本。等基础命令熟练后再考虑装图形界面。如果系统提示你选择“Software Selection”一般有Minimal Install 最小安装Server with GUI 带图形界面的服务器Workstation 工作站入门阶段如果怕命令行压力太大可以先选带图形界面的版本但学完系统基础后要尽快转到纯命令行环境因为生产环境服务器绝大多数没有图形界面。3.5 安装完成后的基础验证系统安装完成后先别急着装软件做这几件事确认环境正常查看 IP 地址ip addr如果 IP 为空说明网卡没有自动获取地址。查看配置文件nmcli connection show测试外网连通性ping -c 4 baidu.com能 ping 通说明网络正常。ping 不通时先检查虚拟机网络模式和 DNS 配置。查看系统信息cat /etc/os-release uname -r更新软件源sudo dnf update -yUbuntu/Debian 系统对应是sudo apt update sudo apt upgrade -y到这里你的 Linux 环境已经真正跑起来了。后面所有命令都可以在这个环境里随便试。4. 安装完成后先掌握这套核心命令和文件系统4.1 理解目录结构比背命令更重要命令可以查目录结构是理解系统行为的关键。你至少要知道/etc 存放系统配置文件/var 存放日志、缓存等经常变化的数据/tmp 临时文件目录重启后可能被清理/home 普通用户的家目录/root root 用户的家目录/usr 系统软件安装位置/opt 第三方软件可选安装目录运维日常大量操作都围绕这些目录展开。比如查配置去 /etc查日志去 /var/log装软件由包管理器处理手动安装的程序放 /opt 或 /usr/local。4.2 文件操作命令先会这些就够以下命令按使用频率排序ls -l # 查看文件详情 cd /etc # 切换目录 pwd # 查看当前目录 cp file1 file2 # 复制文件 mv file1 dir1/ # 移动或重命名 rm file1 # 删除文件 mkdir -p a/b/c # 递归创建目录 touch test.txt # 创建空文件或更新文件时间 cat /etc/hostname # 查看文件内容 less /var/log/messages # 分页查看大文件 grep error /var/log/messages # 在文件中过滤关键字 find /etc -name *.conf # 按文件名查找练习时可以故意创建一些文件和目录然后反复操作直到不假思索能完成。这里最容易犯的错是用 Windows 的思维去理解 Linux 路径和文件类型。Linux 里一切皆文件目录也是一种文件路径用斜杠 /不像 Windows 用反斜杠 \。4.3 文本处理三剑客grep、sed、awk如果你以后要做运维grep、sed、awk 这三样必须逐步掌握。它们不是一次性学完的但至少要从 grep 开始。grep 最简单的用法是过滤grep fail /var/log/secure grep -i error /var/log/messages grep -r timeout /etc/-i忽略大小写-r递归目录。sed 可以做替换sed -i s/old/new/g file.txtawk 可以按列处理文本awk {print $1} file.txt学习顺序建议是先 grep后 sed再 awk。不要一上来就啃 sed 和 awk 的复杂写法先把命令行能跑通再慢慢看进阶用法。4.4 系统状态命令运维正在看什么运维接到告警时第一件事就是看系统状态。常用命令如下top # 查看进程和资源占用类似 Windows 的任务管理器 htop # top 的增强版需要单独安装 free -h # 查看内存使用 df -h # 查看磁盘使用 du -sh /var # 查看目录大小 ps -ef # 查看进程列表 ss -tlnp # 查看端口监听状态一个很典型的排查场景用户说服务访问不了。你远程上去先看服务进程在不在ps -ef | grep nginx再看端口有没有监听ss -tlnp | grep 80然后看防火墙规则systemctl status firewalld如果服务没了看日志找原因journalctl -u nginx -n 50这一整套流程就是运维日常。不是说每个命令多难记而是要养成“现象到日志再到根因”的排查思路。5. 用户、权限和软件包管理是运维的日常基本功5.1 用户和用户组服务器很少直接用 root 跑业务通常是一个服务对应一个专用用户。相关命令useradd dev passwd dev usermod -aG wheel dev # 把 dev 加到 sudo 组Ubuntu 中是 sudo 组 userdel -r dev # 删除用户及家目录 id dev # 查看用户信息学习时最容易混淆的是“当前用户是谁、有没有权限执行某个操作”。用whoami看当前用户用id看用户的组信息用sudo -l看能执行哪些提权命令。5.2 权限的基本理解Linux 权限用 rwx 表示读、写、执行分别作用于文件所有者、所属组、其他人。-rw-r--r--. 1 root root 100 May 1 10:00 test.txt拆开看第 1 个字符表示文件类型- 是普通文件d 是目录l 是软链接。后面每三位一组所有者、所属组、其他人。r 表示可读w 表示可写x 表示可执行。改权限用 chmodchmod 755 script.sh chown root:root script.sh数字对应关系r4w2x1。755 表示所有者为 7组和其他为 5。5.3 软件包管理器RHEL 系与 Debian 系的差异国内运维场景里RHEL 系Rocky、AlmaLinux、CentOS和 Debian 系Ubuntu、Debian都会遇到。两者核心逻辑一致只是命令不同。RHEL 系sudo dnf install nginx sudo dnf remove nginx sudo dnf updateDebian 系sudo apt install nginx sudo apt remove nginx sudo apt update sudo apt upgrade如果你在国产操作系统上比如银河麒麟、openEuler很多软件包管理逻辑类似但部分软件源和依赖库需要按官方文档配置。学完通用的包管理原理后换系统也能快速上手。5.4 软件包安装失败的排查顺序如果安装软件时报错不要急着换源。按这个顺序查先看报错原文是不是 404、依赖冲突、权限不足。再确认软件源是否可用ping一下软件源域名。然后看系统时间是否准确时间不对会导致 HTTPS 证书校验失败。最后看磁盘空间df -h确认根分区没有满。很多新手装软件失败其实不是网络问题而是本地软件源缓存损坏。可以清理缓存后重试sudo dnf clean all sudo dnf makecacheUbuntu 对应sudo apt clean sudo apt update6. 进入运维场景网络配置、服务部署和日志排查6.1 静态 IP、DNS 和常用网络排查虚拟机默认使用 DHCP 获取 IP但生产环境服务器一般配置静态 IP。学习阶段先理解 NAT 模式下的网络结构再学着改静态 IP。查看当前网络信息ip addr ip route show cat /etc/resolv.conf临时修改 IP重启后失效sudo ip addr add 192.168.1.100/24 dev eth0永久配置在不同系统上不同。RHEL 系可以用 nmclisudo nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 sudo nmcli connection modify eth0 ipv4.gateway 192.168.1.1 sudo nmcli connection modify eth0 ipv4.dns 223.5.5.5 sudo nmcli connection modify eth0 ipv4.method manual sudo nmcli connection up eth0Ubuntu 18.04 以上使用 Netplan配置文件在 /etc/netplan/ 下。改完执行sudo netplan apply网络排查顺序一句话先看网卡状态再 ping 网关然后 ping 外网最后查 DNS。ip link show # 网卡是否 UP ip addr # 有没有 IP ping -c 3 网关地址 # 链路是否通 ping -c 3 223.5.5.5 # 外网是否通 nslookup baidu.com # DNS 解析是否正常哪一步断了就处理哪一步。不要一上来就重启网络服务那样只会掩盖问题。6.2 用 systemd 管理服务现在主流的 Linux 发行版都用 systemd 管理系统服务。练习时可以安装一个 Nginxsudo dnf install nginx -y sudo systemctl start nginx sudo systemctl enable nginx然后验证systemctl status nginx curl http://127.0.0.1能看到 Nginx 默认页面说明服务已经起来了。这几个命令必须记熟systemctl start 服务名 systemctl stop 服务名 systemctl restart 服务名 systemctl reload 服务名 systemctl enable 服务名 systemctl disable 服务名 systemctl status 服务名如果服务启动失败先看日志journalctl -u nginx -n 100也可以直接看服务日志文件不同服务存放位置不同一般在 /var/log/ 下。6.3 配置文件的修改习惯改配置文件最容易踩坑。我建议按这个流程来修改前先备份cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak先用-t参数校验配置Nginx 是nginx -tSquid、Apache 等也有对应的校验方法。校验通过后再 reload不要直接 restart。reload 可以做到平滑重载不中断现有连接。改完立即验证效果查看日志确认没有新异常。这个习惯能避免很多线上事故。运维工作里改配置最忌讳直接改完就重启服务一旦配置有笔误可能导致服务全部中断。6.4 日志怎么看日志是运维排查问题最重要的信息来源。系统主要日志在 /var/log/ 下/var/log/messagesRHEL 系的系统日志/var/log/syslogDebian 系的系统日志/var/log/secure登录和安全日志/var/log/cron定时任务日志/var/log/nginx/Nginx 访问日志和错误日志查看日志的技巧# 查看最后 50 行 tail -n 50 /var/log/messages # 实时跟踪日志 tail -f /var/log/messages # 搜索关键字 grep -i error /var/log/messages # 看 systemd 服务日志 journalctl -u nginx --since 10 minutes ago日志排查的关键是带着问题去看。比如“服务启动失败”那就先找服务自身的错误日志“用户登录失败”那就查 /var/log/secure。不要无头绪地翻整个日志文件。7. 基础学完后的提升路线和面试准备7.1 从“会操作”到“能干活”还差什么学完上面的内容你已经能完成基础的 Linux 操作和运维任务了。但距离“能独立干活”还差这几个方向Shell 脚本把重复操作写成脚本实现自动化。服务部署Nginx、MySQL、Redis、Docker 等常用组件的安装配置和维护。虚拟化与容器了解 Docker 的基本使用知道镜像、容器、网络之间的关系。监控与告警学习如何查看系统负载、磁盘、内存、网络指标并配置简单告警。日志收集理解为什么生产环境需要集中管理日志。安全加固了解用户权限最小化、防火墙、系统更新、口令有效期等基础安全措施。这些方向不需要一次学完。按“服务部署 - 脚本自动化 - 容器”这个顺序推进会更顺一些。第 4 章那种“yyyyyy”字符是不是哪里混进去了如果看到这样的乱码就说明内容有问题要检查源文件或编辑器。7.2 面试常见问题怎么准备从热搜词“linux面试题”的出现频率能看出来运维面试有相对固定的一些问题。下面列几个常见方向和回答重点如何查看系统负载和资源占用答top、free -h、df -h、iostat 等。服务无法启动怎么排查答先看 systemctl status再看 journalctl最后看服务日志。如何修改静态 IP答RHEL 系用 nmcliDebian 系用 netplan说清楚步骤。如何查找占用端口的进程答ss -tlnp 或 netstat -tlnp。如何批量创建 10 个用户答用 for 循环加 useradd或 newusers 批量导入。简述 Linux 权限体系和 chmod 数字含义。面试不只是背题。面试官往往会从你答的方向继续追问。比如你说了“查看日志”他就可能问日志位置在哪、怎么看实时日志、如何按时间过滤。所以准备面试时一定要把每个回答背后的操作真正做过。7.3 国产系统方向要不要学如果你所在地区或目标公司有国产化项目建议提前了解银河麒麟、openEuler 等系统。学习方式和这款通用 Linux 没什么区别只是要注意软件包管理有差异部分软件源需要使用系统自带仓库或官方仓库。第三方软件安装方式不同可能遇到依赖缺失需要自己编译或手动安装。文档资料比主流发行版少遇到问题时更考验基础能力和搜索能力。学习策略上先把 RHEL 系或 Debian 系基础打牢再切到国产系统。两者核心概念相通只是命令和软件源不同。基础扎实的人切系统成本很低只背命令不理解的换个环境就会卡住。7.4 给新手的一条长期建议学习 Linux 和运维最忌“贪快”。我见过不少新人一个月就急着面试结果被问到系统启动流程、服务日志路径、网络排查思路就卡住。相反那些每天在虚拟机上折腾两小时的人两三个月后已经能独立部署一个小项目并解决各种报错。你可以给自己安排一个阶段性任务第一周完成系统安装学会基本文件操作和用户管理。第二周到第三周练习权限、软件安装、网络配置。第四周部署一个 Nginx 静态网页然后用 systemd 管理它。第五周到第六周写一个简单 Shell 脚本定时备份某个目录。第七周以后尝试用 Docker 跑一个服务学习基本容器管理。每完成一个阶段就找点真实问题来练。比如故意把 Nginx 配置改错再恢复故意停掉某个服务再排查。这样折腾一遍知识才真正变成自己的。“学完即可就业”听起来很美好但实际更准确的说法是学完能干活能解决真实环境里的问题才有机会被录用。而能干活的前提是从系统安装开始一步一步把基本功夯实。希望这篇内容能帮你少走一些弯路。如果读到这里你已经打开了虚拟机准备开始安装第一个 Linux 系统那这一篇的作用就真正发挥出来了。
返回列表