这一讲补一点 Linux 入门概念:内核、发行版、桌面、装软件、权限与用户,全部拿 Windows 作类比。
Windows 开机背后也有一个内核(ntoskrnl.exe),只是用户从来看不到;Linux 也一样。
严格说,Linux 只是那个内核,不是一套完整的系统。
内核负责最底层的事:
uname -r # 查看内核版本,如 6.12.0-xxx
「GNU/Linux」才完整:内核 + GNU 工具链(bash、gcc、coreutils)
类比 Windows:内核 ≈ 汽车的发动机,藏在引擎盖下; Linux 内核 = Windows 的 NT 内核。你平时用的命令、图形界面, 都是「整车」的一部分,不在内核里。
Windows 只有微软一家在做,就 Home / Pro 几个版本。
Linux 的发行版 = 内核 + 软件集合 + 包管理器 + 桌面,打包成的完整系统, 由不同团队维护,所以有几十上百种:
Debian 系 Ubuntu / Debian apt 最普及,新手首选 Ubuntu
RedHat 系 RHEL / CentOS / Fedora yum/dnf 企业服务器主流
Arch 系 Arch / Manjaro pacman 滚动更新,爱折腾
其他 openSUSE(zypper) / Gentoo(源码编译)
选型建议:
类比 Windows:内核 = 同一台发动机; 发行版 = 不同车厂拿这台发动机造出的不同车型—— 发动机一样,外壳、内饰、配置不同。
Windows 的桌面、任务栏、开始菜单是内置的一套,不能换。
Linux 的图形界面和系统是分离的,叫桌面环境(Desktop Environment), 可以整套换,也可以干脆不装:
服务器通常只装命令行、不装桌面,省资源也更安全。
类比 Windows:Windows 桌面 ≈ 只能换换「皮肤」; Linux 桌面 ≈ 可以整套换成另一个环境,甚至完全不用图形界面。
Windows 装软件:去官网下载 .exe / .msi → 双击 → 一路「下一步」,
装完还得自己惦记着更新、卸载,依赖库要么重复打包要么缺失。
Linux 用包管理器统一打理:一条命令搞定装、卸、升、查。
两大派系:
Debian 系(Ubuntu / Debian) 底层 dpkg 上层 apt
RedHat 系(CentOS / Fedora) 底层 rpm 上层 yum / dnf
# Debian 系
sudo apt update # 刷新软件源索引
sudo apt install nginx # 装包,自动解依赖
sudo apt remove nginx # 卸载
sudo apt upgrade # 升级所有包
# RedHat 系
sudo dnf install nginx
类比 Windows:Linux 包管理器 ≈ 微软商店 / 手机应用商店——
软件都从统一来源来,版本、依赖、卸载全由它兜底。
Windows 的 winget、choco、scoop 就是在补这块历史短板。
Windows:右键 → 属性 → 安全,给每个用户/组勾「读取 / 写入 / 完全控制」, 还附带一个「只读」属性。
Linux 更简单:每个文件固定分三种人 × 三种权限,一视同仁。
ls -l 第一串就是权限:
-rwxr-xr-- 1 alice devs run.sh
│ │ │
│ │ └─ 其他 o:r-- 只读
│ └───── 属组 g:r-x 读 + 执行
└───────── 属主 u:rwx 读 + 写 + 执行
改权限用 chmod、换属主用 chown:
chmod 755 run.sh # u=rwx g=r-x o=r-x
chmod u+x run.sh # 只给属主加执行位
chown bob run.sh # 换属主
类比 Windows:Linux 是「属主 / 属组 / 其他」三档粗粒度,胜在简单; Windows NTFS 是 ACL 列表,能精确到任意用户、还支持继承,但更繁琐。 Linux「读 ≈ Windows 读取」,「写 ≈ 修改」,「执行 ≈ 能直接运行」。
Windows:控制面板 → 用户账户;内置组 Administrators、Users;
装软件会弹 UAC,需要「以管理员身份运行」。
Linux 同样有用户和组,只是藏在文本文件里(一切皆文件):
root 的 UID 恒为 0(超级管理员)cat /etc/passwd # 用户列表
cat /etc/group # 组列表
id alice # 查看 alice 的 uid/gid 及所属组
管理命令:
sudo useradd bob # 新建用户
sudo usermod -aG sudo bob # 把 bob 加进 sudo 组(获得管理员能力)
sudo groupadd devs # 新建组
类比 Windows:
root / sudo ≈ Administrator + UAC「以管理员身份运行」Users、Administrators)passwd、group 完成同样的事