一、Linux系统概述

说实话,每次给新人讲Linux,我都要从这段历史说起。不是因为我老古董,而是你不了解它的出身,就很难理解它为什么这么设计。

1.1 Linux发展史:一个学生的业余项目

1991年,芬兰赫尔辛基大学有个叫Linus Torvalds的学生。他当时觉得学校的Unix系统太贵了,自己又想要一个能在个人电脑上跑的系统。于是,他花了几个月时间,写了一个操作系统的内核。

8月25日,他在一个新闻组里发了个帖子:

Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, 
won't be big and professional like gnu) for 386(486) AT clones.

翻译过来就是:「嗨,各位在用Minix的朋友——我正在做一个(免费的)操作系统,就是个爱好,不会像GNU那样专业。」

嗯,结果大家都知道了。这个「爱好」现在跑在全世界90%的服务器上,从你的安卓手机到超级计算机,从路由器到火星探测器。

关键时间节点:

  • 1991年 — Linux 0.01发布,只有约1万行代码
  • 1992年 — 采用GPL许可证,正式开源
  • 1994年 — Linux 1.0发布,支持网络功能
  • 1996年 — 企鹅Tux成为官方吉祥物
  • 2000年代 — 企业级应用爆发,Red Hat、SUSE等发行版崛起

我个人觉得,Linux能成功,核心原因就两个:开源和社区。你想想看,全世界最聪明的一批程序员,免费帮你改代码、修bug,这种模式Windows怎么比?

1.2 Linux与Windows的区别

很多初学者会问:「Linux和Windows到底哪个好?」我的回答是:没有好坏,只有适不适合。

我做过一个项目,需要在嵌入式设备上跑一个实时数据采集系统。Windows开机就要30秒,还动不动蓝屏。换成Linux,裁剪内核后开机只要3秒,连续跑了半年没重启过。

来,直接看对比:

对比维度 Linux Windows
内核架构 宏内核(模块化) 混合内核
文件系统 ext4、XFS、Btrfs NTFS、FAT32
命令行 Bash/Zsh(强大且必备) PowerShell(可选)
软件管理 包管理器(apt/yum/pacman) 安装包(.exe/.msi)
权限模型 基于用户/组,root是神 基于用户,管理员权限
稳定性 极高,可数年不重启 一般,需定期重启
安全性 开源审计,病毒少 闭源,病毒多
费用 免费 付费授权

我的建议:如果你是做服务器开发、嵌入式、网络安全或者大数据,Linux是必选项。如果你是普通办公、玩游戏、用Adobe全家桶,Windows更省心。

1.3 Linux发行版介绍

很多人搞混一件事:Linux只是一个内核。你平时用的Ubuntu、CentOS、Debian,这些都是「发行版」——内核加上各种软件包、桌面环境、管理工具打包而成。

我最早用的是Red Hat 9,那时候装个显卡驱动能折腾一整天。现在方便多了,但选择也多了,新手容易懵。

主流发行版分类:

  • Debian系(Ubuntu、Linux Mint、Kali)—— 适合新手,软件包多,apt命令简单
  • Red Hat系(RHEL、CentOS、Fedora)—— 企业级首选,稳定,yum/dnf管理
  • Arch系(Arch Linux、Manjaro)—— 滚动更新,高度定制,适合进阶玩家
  • Slackware系 —— 最古老的发行版之一,简洁但配置繁琐

新手推荐:Ubuntu LTS版本。社区活跃,遇到问题一搜就有答案。我带的实习生,第一天装Ubuntu 22.04,第二天就能上手写代码了。

你可能会问:「那生产环境用哪个?」我个人的经验是:CentOS Stream或者Ubuntu Server。前者在金融、电信行业很常见,后者在互联网公司更流行。

1.4 虚拟机安装与配置

学Linux,我强烈建议你先在虚拟机上练手。为什么?因为新手最容易犯的错误就是——把系统搞崩。

我曾经有个学员,直接在物理机上装Arch Linux,结果grub配置写错了,整个硬盘数据全没了。嗯,从那以后我讲课必强调:先装虚拟机,随便折腾,大不了删了重来。

1.4.1 选择虚拟机软件

主流的有三个:

  • VMware Workstation — 功能最全,3D加速好,但收费(有免费版)
  • VirtualBox — 开源免费,够用,我讲课都用这个
  • QEMU/KVM — Linux原生虚拟化,性能最好,但配置复杂

我的选择:Windows上用VMware Player(免费),Mac上用UTM,Linux上直接用KVM。VirtualBox作为备选,因为它的共享文件夹功能有时候会抽风。

1.4.2 安装步骤(以Ubuntu 22.04为例)

说白了就三步:下载镜像、创建虚拟机、安装系统。

# 1. 下载Ubuntu 22.04 LTS镜像
# 去官网 https://ubuntu.com/download/server 下载iso文件

# 2. 创建虚拟机(以VirtualBox为例)
# 新建 -> 名称: Ubuntu-Server
# 类型: Linux -> 版本: Ubuntu (64-bit)
# 内存: 2048MB(至少)
# 硬盘: 20GB(动态分配)

# 3. 安装系统
# 启动虚拟机 -> 选择iso镜像 -> 按照提示安装
# 关键配置:
#   - 用户名: 你的名字
#   - 主机名: ubuntu-server
#   - 勾选「安装OpenSSH server」

避坑指南:

  • 内存别给太少,至少2GB,否则编译时会卡死
  • 硬盘用动态分配,别用固定大小,省空间
  • 网络模式选「桥接网卡」,这样虚拟机跟宿主机在同一网段
  • 安装时一定要勾选SSH,否则后面远程连不上

1.4.3 安装后的基本配置

系统装好了,别急着用。先做几件事:

# 更新软件源
sudo apt update && sudo apt upgrade -y

# 安装常用工具
sudo apt install -y vim git curl wget net-tools

# 配置静态IP(如果用的是桥接模式)
sudo vim /etc/netplan/00-installer-config.yaml
# 修改为:
# network:
#   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]
#   version: 2

# 应用配置
sudo netplan apply

这里有个小技巧:配置完网络后,用ssh 你的用户名@192.168.1.100从宿主机连过去。这样你就不用盯着虚拟机的小窗口了,直接在宿主机终端操作,舒服得多。

本章知识体系

下面这张图,是我自己梳理的Linux学习路线。你看一眼,心里就有谱了:

Linux系统编程知识体系 Linux系统概述 发展史 1991年诞生 GPL开源 社区驱动 vs Windows 开源 vs 闭源 命令行 vs GUI 包管理 vs 安装包 发行版介绍 Debian系 Red Hat系 Arch系 虚拟机安装配置 VMware/VBox Ubuntu安装 网络配置 打好基础,后面学文件IO、进程、网络编程 才能事半功倍

好了,这一章的内容就这些。Linux的历史、与Windows的区别、各种发行版怎么选、虚拟机怎么装——这些基础打牢了,后面学文件IO、进程管理、网络编程才会顺手。

记住一句话:Linux不是学出来的,是用出来的。多敲命令,多折腾,遇到问题先自己查,实在不行再问。我当年就是这么过来的。

可可精品资料库