2、虚拟机与Linux基础:从零搭建你的第一台Linux服务器

好,咱们进入第二章。说实话,这一章是整个课程的基石。你想想看,大数据开发环境,十有八九都是跑在Linux上的。我见过太多新手,在Windows上折腾半天,最后发现生产环境全是Linux,那叫一个痛苦。所以,咱们今天就把这个基础打牢。

2.1 为什么非得用虚拟机?

你可能会问:“我直接装个双系统不行吗?” 行,但我不建议。双系统切换麻烦,而且万一搞崩了,你本机系统也跟着遭殃。虚拟机的好处是——它是一个独立的“沙盒”。你在里面随便折腾,装坏了,删掉重来,也就几分钟的事。

我个人习惯用VMware Workstation,功能强大,稳定。但如果你手头紧,VirtualBox完全免费,也够用。我早期带团队时,给新人统一配的就是VirtualBox,因为部署起来快,不涉及版权问题。

核心观点: 虚拟机是你学习Linux的“安全屋”。别怕犯错,随便搞。

2.2 VMware与VirtualBox安装实战

安装过程其实没啥好说的,下一步下一步就行。但我得提几个坑,都是我曾经踩过的。

2.2.1 VMware安装要点

  • 网络类型选“NAT”:这是最省心的模式。虚拟机通过你的主机上网,你不需要额外配置。桥接模式虽然能让虚拟机跟局域网其他机器平起平坐,但配置起来麻烦,新手容易搞乱。
  • 磁盘类型选“SCSI”:性能比IDE好。虽然现在差别不大,但养成好习惯。
  • 内存别给太少:我建议至少2GB。你想想看,装个CentOS,再跑几个服务,1GB内存根本不够用。我见过有人给512MB,结果系统卡得跟幻灯片似的。

小技巧: 安装VMware Tools。这玩意儿能提升鼠标流畅度、支持剪贴板共享。装完之后,你从主机复制命令,直接粘贴到虚拟机里,效率翻倍。

2.2.2 VirtualBox安装要点

  • 扩展包必须装:VirtualBox Extension Pack提供了USB支持、RDP远程桌面等功能。不装的话,很多高级功能用不了。
  • 显卡控制器选“VBoxSVGA”:如果你装的是Linux,这个选项能提供更好的图形性能。

嗯,这里要注意:VirtualBox对某些Linux发行版的3D加速支持不太好。如果你发现界面卡顿,关掉3D加速试试。

2.3 CentOS与Ubuntu:选哪个?

这是个老生常谈的问题。我直接给结论:

特性 CentOS (RHEL系) Ubuntu (Debian系)
包管理器 yum / dnf apt
稳定性 极高,适合生产环境 较高,社区活跃
软件新度 偏保守,版本较老 更新快,新软件多
学习曲线 稍陡,文档偏企业 平缓,教程遍地都是

我个人建议:初学者选Ubuntu。为什么?因为遇到问题好搜。你随便百度一下“Ubuntu 安装MySQL”,答案一大把。CentOS的很多问题,搜出来的都是英文,对新手不友好。

但如果你将来要去大厂,或者搞Hadoop、Spark这些,CentOS更常见。我在项目里遇到过,客户指定必须用CentOS,因为他们的运维体系全是基于RHEL的。所以,两个都学学,没坏处。

2.4 安装CentOS/Ubuntu系统

安装过程我就不逐字逐句讲了,说几个关键点。

2.4.1 磁盘分区

新手直接选“自动分区”就行。别折腾什么手动分区,什么/boot、/var分开。你想想看,你连Linux目录结构都没搞明白,分错了反而麻烦。我早期就是,非要手动分,结果/var空间给少了,日志一写满,系统直接挂掉。

警告: 如果你非要手动分区,至少保证根分区(/)有20GB以上空间。别问我怎么知道的,说多了都是泪。

2.4.2 软件选择

安装时,有个“软件选择”界面。我建议选“带GUI的服务器”或者“开发工具”。这样你装完就有桌面环境,方便操作。虽然生产环境通常没桌面,但学习阶段,有个图形界面能让你更快上手。

2.4.3 网络配置

安装时记得把网络打开。如果是NAT模式,一般自动获取IP就行。装完之后,用ip addr命令看看有没有拿到IP。如果没拿到,多半是网卡没激活。

# 查看IP地址
ip addr

# 如果没激活,手动启动网卡(CentOS 7为例)
ifup ens33

2.5 Linux常用命令:文件操作

这部分是基本功。我当年学Linux,就是靠这些命令活下来的。说白了,你只要会文件操作、权限管理、网络配置,就能应付80%的日常工作了。

2.5.1 文件浏览与操作

# 列出文件(-l 显示详细信息,-a 显示隐藏文件)
ls -la

# 切换目录
cd /home/user

# 创建目录(-p 递归创建)
mkdir -p /data/logs

# 复制文件
cp source.txt /tmp/dest.txt

# 移动或重命名
mv oldname.txt newname.txt

# 删除文件(-r 递归删除目录)
rm -rf /tmp/test

避坑指南: 我曾经在服务器上执行 rm -rf /,差点把系统删了。记住,rm -rf 后面一定要跟绝对路径,而且再三确认。我现在习惯用 mv 到临时目录,确认无误后再删。

2.5.2 文件内容查看

# 查看文件内容(适合小文件)
cat file.txt

# 分页查看(适合大文件)
less file.txt

# 查看文件头10行
head -10 file.txt

# 查看文件尾10行(-f 实时跟踪)
tail -f /var/log/syslog

嗯,这里要注意:tail -f 是排查问题的神器。你启动一个服务,用这个命令盯着日志,哪里报错一目了然。

2.6 权限管理:别让你的文件裸奔

Linux的权限模型,说白了就是“谁可以对这个文件做什么”。我见过不少新手,图省事直接 chmod 777,结果被黑客利用。记住,权限越紧越好。

2.6.1 权限基础

每个文件有三组权限:所有者(owner)、所属组(group)、其他人(others)。每组有读(r=4)、写(w=2)、执行(x=1)三个权限。

# 修改权限(755:所有者可读写执行,组和其他人可读执行)
chmod 755 script.sh

# 修改所有者
chown user:group file.txt

经验之谈: 对于脚本文件,记得加执行权限。我经常看到有人写了个脚本,然后问我为什么运行不了。一看,权限是644,没加x。执行 chmod +x script.sh 就好了。

2.7 网络配置:让你的虚拟机连上网

网络配置是新手最容易卡壳的地方。我总结一下最常见的场景。

2.7.1 查看网络状态

# 查看IP地址(现代Linux推荐用这个)
ip addr

# 查看路由表
ip route

# 测试网络连通性
ping -c 4 8.8.8.8

2.7.2 配置静态IP(以Ubuntu为例)

如果你用NAT模式,一般不用配。但如果你想让虚拟机IP固定,方便SSH连接,就需要配静态IP。

# 编辑网络配置文件(Ubuntu 18.04+)
sudo vim /etc/netplan/01-netcfg.yaml

# 内容示例
network:
  version: 2
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

# 应用配置
sudo netplan apply

注意: 配置完静态IP后,记得检查网关和DNS。我遇到过有人配了IP,但网关写错了,结果能ping通局域网,但上不了外网。用 ip route 检查默认网关,用 nslookup 检查DNS解析。

2.8 本章小结

好,这一章内容不少。我们从虚拟机安装,到系统安装,再到Linux基础命令,一步步走下来了。你想想看,现在你手里已经有了一台可以随意折腾的Linux服务器。接下来,我们就可以在上面安装Java、Hadoop、Spark这些大家伙了。

记住,别怕敲命令。Linux就是靠命令行吃饭的。你敲得越多,越熟练。我当年也是从一个个命令开始,慢慢积累起来的。下一章,我们开始搭建Java开发环境,为大数据框架做准备。

课后作业: 在虚拟机上执行 ls -la /,看看根目录下都有什么。然后用 cat /etc/os-release 查看你的系统版本。试试看,能不能用 ping 命令连通百度?