1、Linux基础入门:Linux发展史、发行版选择(CentOS/Ubuntu)、安装VMware与虚拟机、Linux目录结构解析

1.1 Linux发展史:从学生项目到服务器霸主

说起Linux,得先聊聊它的起源。1991年,芬兰赫尔辛基大学的一个学生——林纳斯·托瓦兹,嫌当时的操作系统太贵又不好用,就自己写了个内核。嗯,就是那个著名的邮件:「我只是个爱好,不会像GNU那样庞大和专业。」结果呢?这玩意儿现在统治了全球90%以上的服务器。

我刚开始接触Linux时,觉得这东西就是个黑乎乎的终端,连个图形界面都没有。后来在项目中吃过亏——公司一台Windows服务器跑Java应用,每两周就得重启一次。换成Linux后,稳定跑了两年没关机。你想想看,这差距有多大。

Linux的发展有几个关键节点:

  • 1991年:林纳斯发布Linux 0.01版本,只有1万行代码
  • 1992年:采用GPL协议,开源社区开始涌入
  • 1994年:Linux 1.0发布,支持网络功能
  • 2000年后:企业级应用爆发,Red Hat、SUSE等商业发行版崛起
我的经验:别把Linux想得太神秘。它本质上就是个操作系统,跟Windows一样管理硬件、运行程序。只不过它更「干净」——没有花哨的动画,没有后台偷偷更新的服务。说白了,它就是为稳定和效率而生的。

1.2 发行版选择:CentOS还是Ubuntu?

很多新手会纠结这个问题。我直接说结论:做Java项目部署,选CentOS;做开发学习,选Ubuntu。

为什么会这样?

  • CentOS(现在推荐Rocky Linux或AlmaLinux):RHEL的免费版,企业级稳定性。我部署过的几十个Java项目,90%都在CentOS上跑。它的包管理器是yum/dnf,默认防火墙是firewalld,跟Red Hat生态完全兼容。
  • Ubuntu:社区活跃,软件包更新快。适合个人开发、AI/深度学习场景。它的apt包管理器用起来更顺手,但企业级支持不如CentOS。
特性 CentOS / Rocky Linux Ubuntu LTS
包管理器 yum / dnf apt
默认防火墙 firewalld ufw
企业级支持 强(Red Hat生态) 中等(Canonical支持)
软件更新频率 保守、稳定 激进、新
Java部署推荐 ★★★★★ ★★★☆☆
避坑指南:我曾经在Ubuntu上部署过一个Spring Boot项目,结果因为系统自带的OpenJDK版本跟生产环境不一致,导致序列化兼容性问题。后来统一用CentOS,再没出过这种幺蛾子。所以,生产环境一定要跟开发环境保持发行版一致。

1.3 安装VMware与虚拟机:搭建你的第一个Linux环境

别急着买服务器。我建议先在Windows上用VMware Workstation装个虚拟机。这样你随便折腾,搞坏了删掉重来就行。

安装步骤其实很简单:

  1. 下载VMware Workstation Pro(个人用免费版就行)
  2. 下载CentOS 7或Ubuntu 22.04 LTS的ISO镜像
  3. 新建虚拟机,选择「典型」配置
  4. 分配2GB内存、20GB硬盘(够用了)
  5. 网络模式选NAT(自动上网,省心)

嗯,这里要注意:安装时一定要勾选「开发工具」和「兼容性库」。我刚开始装系统时图省事,选了最小化安装,结果后面装JDK、Tomcat时缺了一堆依赖库,折腾了大半天。

我的个人习惯:装完系统后第一件事就是配静态IP。因为虚拟机重启后IP会变,你连SSH都连不上,多尴尬。配置方法很简单:

# CentOS 7 配置静态IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 修改为:
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8

# 重启网络服务
systemctl restart network

1.4 Linux目录结构解析:别被「根目录」吓到

Linux的目录结构跟Windows完全不同。Windows是C盘、D盘这种盘符逻辑,Linux是树形结构——所有东西都从根目录 / 开始。

我刚开始学的时候,觉得这玩意儿反人类。后来用习惯了才发现,这种设计其实特别优雅。你想想看,所有配置文件都在 /etc,所有日志都在 /var/log,找东西特别方便。

核心目录一览:

目录 作用 我的经验
/ 根目录,一切从这里开始 别往这里乱放文件
/etc 系统配置文件 Java项目配置、nginx配置都在这里
/var 可变数据,日志、数据库文件 排查问题时先看 /var/log
/usr 用户程序和数据 JDK、Tomcat通常装在这里
/home 普通用户的家目录 每个用户一个文件夹
/tmp 临时文件 系统会定期清理,别放重要数据
/opt 第三方软件安装目录 我习惯把Java应用部署在这里
一个小技巧:tree -L 1 / 命令可以直观看到根目录下的所有一级目录。我第一次看到这个输出时,才真正理解了Linux的目录结构。建议你也试试。

最后说一句:别怕犯错。Linux最大的好处就是——你搞坏了,虚拟机删了重装,5分钟又是一条好汉。我当年学Linux时,光系统就重装了不下20次。现在想想,那些错误反而让我记得更牢。

下一章,我们开始讲Linux的常用命令。到时候你会发现自己操作起来越来越顺手。