Linux 概念普及
Before Start
在使用 Linux 之前,请确保自己会使用计算机。如果 Windows 都玩不转的,可以先补下基础知识。
- 什么是文件?什么是文件系统?
- 操作系统是干什么的?
- 软件是怎么运行起来的?
What is Linux Distribution
Linux 不同于 Windows 和 macOS 这类系统,它没有官方维护的版本。Linux 的官方只负责维护核心,而给这个核心加上各种软件变成能用的操作系统的重任,就交给了下游的各个组织和公司。所谓发行版,就是把一系列的软件和核心放在一起,经过测试之后,做成一个完整的系统,分发给用户。
这个模式给 Linux 提供了多样性。用户可以选择适合自己的发行版。虽然在早期这使适配软件变得有些困难,使不同发行版割裂开来,给 Linux 的发展带来了阻碍。但是现在是 2023 年,随着包管理的规范化和新一代打包系统的兴起,这个状况得到了极大的改善。现在我们可以自由选取发行版,而不用过度担心软件适配的问题。
简而言之,GNU/Linux 加包管理加桌面约等于发行版,虽然不严谨,但是差不多贴近事实。
Package Manager
一般来说,一个 Linux 的发行版最核心的部分是包管理模式。这通常通过包管理器和软件源实现。
包 (package) 类似 Windows 的安装包,它包含了要安装的软件以及一些额外的信息,但是同 Windows 安装包不同,它只是一个压缩包,不能自己运行安装,必须经过包管理器。用户很少需要直接下载安装它,而是通过包管理器。我们也不鼓励安装不在仓库里面的包,如果系统软件源里面没有可以去 flatpak。至于某些专有软件,我更推荐丢进 Windows 10 LTSC 虚拟机。
包管理器 (package manager) 负责安装和管理软件包。它读取软件包,按照软件包的要求去安装它的依赖 (通常是一些运行库,就像 Windows 下面的 VC++ 和 .NET),然后自动把包安装到规定的位置。
软件源 (repository) 是用来存放软件包的网站。包管理器就是从软件源服务器上下载包的。因为软件源通常在国外,软件包下载可能会比较慢。所以我们一般使用国内各个高校的镜像源,修改软件源的地址就是所谓换源。
有些人可能会纠结软件装到哪里去了,是装在什么盘上面了。这个不需要管。因为 Linux 的目录的定义和 Windows 有很大不同,这使得一些 Windows 上面的繁琐操作在 Linux 上面很多余。
这些常见的包管理器
- apt (dpkg): apt 是 Debian 系发行版的包管理器。基本上提供 Linux 安装包的软件都会支持。
- pacman: Arch 系的包管理器。可以使用 AUR (Arch User Repository),这里也能找到很多软件。
- rpm: Red Hat 系的包管理器。包比较少。只是由于中文互联网有很多死去的 CentOS 的教程遗留,所以提出来介绍一下。
- dnf: Fedora 的包管理器。
- flatpak: 通用包管理器,是个 Linux 桌面端都能安装使用。使用的 flathub 软件源上面有非常丰富的桌面软件支持(甚至有 QQ),建议发行版软件源里面没有的都可以先看看 flathub 有没有,如果有就 flatpak 安装,而不是拿着网站上面下过来的 deb 文件手动安装,这样很容易搞坏系依赖管理。
- snap: 通用包管理器,只有 Ubuntu 强推。我建议使用 Ubuntu 的把这个卸载了换成 flatpak 避免影响使用体验。
不同的包管理器决定了不同的发行版。因此一般用包管理器做发行版的分类依据。
Desktop Environment
桌面环境对用户而言当然也是很重要的,很大程度决定了用户体验。在 Linux 上面,桌面只是一些普通的程序,可以随便安装和更改。所以会有很多的桌面可供选择。不过这个选择一般来说发行版都帮你选好了。
Gnome
Gnome 曾一度成为 Linux 桌面的代名词,因为很多发行版默认会安装这个桌面。Gnome 的风格比较独特,有点类似 macOS,但是有不少自己的东西。对触控板手势的适配不错。
开箱状态连任务栏和桌面图标都没有,好在可以手动安装。一般各个发行版默认安装了 dash-to-dock (任务栏),desktop-icons (桌面图标) 这些插件。
设置比较少,不过可以通过 gnome-tweaks 补上。这样基本的设置都能覆盖。
KDE
KDE 也是非常热门的桌面。类似 Windows 的操作逻辑和极强的可定制性让他更适合 Linux “玩家”。
比较旧的版本里面可能会默认单击打开文件夹,可以在工作区 (workspace) 设置中改成双击。
KDE 的 GUI 功能做的还是不错的。而且提供了不少有用的套件。
Discover 应用商店可以直接使用发行版包管理器和 flatpak 进行安装,收录了很多软件,并且可以自动进行系统更新检查。
设置里面的选项很多,可以随便改。喜欢折腾的可以去看看 Theme,只是系统自带的主题安装器需要哈利波特才能使用。
自带的代理设置有些软件不会读,比如 Firefox, 给这些软件单独设置一下就行。
Cinnamon
Cinnamon 目前大众的发行版只有 Linux Mint 在支持,但是这也是个不错的桌面,适合小白。
Xfce || LXQT
如果你有一台老爷机,这两个桌面也许是个不错的选择。
Display Manager
在开机登陆用户的时候,那个让你输密码的界面并不是桌面,而是 DM (Display Manager),如果你有多个桌面,可以在这里切换。
我建议不要管这个,发行版用什么就跟着用。如果要自己安装都建议 SDDM。
Wayland and X11
显示服务器是比桌面更底层的东西,处在系统内核和桌面之间,用来管理窗口。这个一般碰不到,只要了解你使用的是 X11 还是 Wayland 就行。X11 是老的,Wayland 是新的。
现在 (2023 年) 的时间点非常尴尬,处于 X11 和 Wayland 换代的节点上面。一方面 X11 太老旧了 (十几年没有大更新了) 对有些新事物支持不好,比如 2k 屏幕 1.5 倍缩放的屏幕撕裂问题。另一方面 Wayland 支持虽然已经大致完善,但是有些死硬派没跟上,说的就是你,Nvidia!
好在大多数发行版并不需要纠结这些。非 N 卡的 Gnome 和 KDE 桌面基本都是 Wayland 了,其他的桌面环境或者使用 N 卡都会用 X11。
但是有些发行版可能忘了给 N 卡换 X11, 如果你桌面登不进去,请检查自己的环境是否是 Wayland,如果是,换成 X11。
如果你 N 卡要强开 Wayland,请参照自己使用的发行版的 wiki 以及 Arch Linux wiki, 看看有什么需要注意的点。
Distro
大多数发行版是基于某几个特定的发行版魔改的。所以会有 “系” 的说法。常见的有 Debian 系,Arch 系 Red Hat 系和 SUSE 系。其中 Red Hat 系主要面向企业,桌面版除了 Fedora 并不多见。
服务器发行版建议 Debian,用 Ubuntu 也是可以的。如果在中文互联网找资料可能会见到 CentOS,但是 CentOS 如今已经停止维护了,所以看到之后绕着走就行。
在 3.Y.2 双系统安装和发行版推荐 推荐的发行版都是针对双系统 / 单系统方案的,因为在实机安装日常使用的时候,发行版对体验的影响才会体现出来,这样我写下的文字就会帮你剩下不少时间。
对于虚拟机,你不会在乎用户体验的,安装完新鲜感一过肯定就不打开了,偶尔遇到什么必须要用 Linux 的需求才会突然想起来有这个虚拟机。所以发行版选择 Ubuntu 即可,毕竟人气最高。要是对着百度上面刚刚找到的教程一顿猛敲之后,发现发行版不一样,那 Linux 就又风评被害了。
在安装系统的时候,建议安装时统一使用 English,装好之后再换成中文或者干脆不换。
对某些很新的硬件,比如 13 代酷睿和 40 系 N 卡 (2023 年),在其他发行版出现兼容性问题的情况下,可以使用 Debian 或者 Arch Linux 等等靠近上游的发行版,他们通常支持得比较好。
Linux How to?
Directory
在 Linux 中,文件目录结构与 Windows 完全不同。Windows 存在 C 盘、D 盘等盘符,而在 Linux 中不存在这些划分,最上层的目录是根目录,路径为 /
,并以一个树形结构从此向下一级一级区分。没有盘符,只有路径。虽然可以多分区,但是分区是挂载到某个路径的,而不是分配盘符。用 Windows 的思维去理解就是盘符没了,全部挂进文件夹里面了,从 / 开始是根分区,就像 C 盘, /
底下有 usr
home
var
等等文件夹,这些文件夹可以是普通文件夹,也可以让其他磁盘分区当这个文件夹。分区还可以挂载到 /media/root/abcd
。这样的好处很明显,就是在路径上面模糊了分区,分区的地位和普通文件夹差不多了,非常简单,对写程序很友好。
因为舍弃了盘符的概念,一般我们在 Linux 系统上仅仅使用一个挂载到 /
的分区 (简称 /
分区) 或者一个 /
分区和一个 /home
分区。这样分区可以得到充足的空间,所以不会出现 C 盘装满了或者 C 盘文件多导致开机慢的情况,也就没有必要支持自定义的安装目录。
对于 Linux 的树形文件结构,存在相对路径与绝对路径之分。绝对路径是代表从根路径 /
开始的完整路径,如 /home/testuser/Download
。相对路径代表从当前目录,到目标目录的一个部分路径。比如当前你所在的目录为 /home/testuser
,那么切换到绝对路径 /home/testuser/Download
的相对路径即为 ./Download
。其中 ./
代表从当前目录,再向下寻找。另外, ..
这种两个句点代表的是向上层寻找,比如你当前所在的路径为 /home/testuser/Download
,向上寻找到 /home/testuser/Desktop
的相对路径即为 ../Desktop
。
当前用户的 home 文件夹简称为 ~/
,假设我们的用户名是 user
:
user@computer:~$ cd ~/
user@computer:~$ pwd
/home/user
2
3
User
Linux 在设计之初就是一个多用户操作系统,不像潜伏在多用户操作系统里面的纯正单用户操作系统 Windows。
因此,Linux 对于用户和权限的管理比较严格,可能经常要你输 root 密码。
简单来说,Linux 中存在两类用户。第一类用户即为 root 用户,也称为超级用户,它拥有系统中最高的权限。第二类用户就是除了 root 用户的普通用户,他们可以拥有不同等级的权限。使用 root 权限时需要十分小心。
一般情况下,我们使用的都是普通用户。但是要进行一些涉及较高权限的操作,比如安装软件和修改系统设置的的时候,我们就会使用 sudo 软件临时切换到 root 用户进行操作。
# 一些例子。
# 当你尝试安装 vim ,却忘记了 sudo
$ apt install vim
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
# 这样就可以安装了
$ sudo apt install vim
2
3
4
5
6
7
切记,root 权限的使用要小心,不要随便粘贴指令!一条命令就可以干掉整个系统,比如 sudo rm -rf /*
!
本土化
想要正常使用系统,哈利波特是必须的。建议跟着这篇教程走,但是 Debian 系没有这个软件,自己去 Github 上面找这个软件。
发行版会有一个全局的代理设置,但是有些软件就是不肯自己读取,点名 Firefox。不过好办,分别单独设置就行。
由于海外的服务器下载慢,我们会把软件源换成国内各个高校的镜像。这点参考镜像站给出的教程。
输入法一律推荐 fcitx5 搭配 fcitx5-chinese-addons,并打开云拼音。不推荐 rime,太老了。强烈不推荐搜狗,搜狗使用的是 fcitx4 框架,太老了。一般来说 Debian 系的发行版都有一个叫做 im-config 的软件包负责管理输入法,快捷方式名字通常是叫做 Input Method,在这里切换到 fcitx5 就行。Arch Linux 系则需要自己设置环境变量。
2024 年更新:rime-ice 也是个不错的输入法,并且支持 ibus, Ubuntu 用户也许可以选择,这样不需要动默认输入法设置,虽然我更推荐再装一个 fcitx5。
如何寻求帮助
首先阅读提问的智慧,这对提升个人素养很有帮助。也有助于和能够提供帮助的人有效交流。
一般来说,各个发行版都有自己的 Wiki,里面介绍了发行版本身的特点,常用的软件和各种问题的解法。但是有些发行版的 wiki 年久失修,可能会过时或者缺失内容导致无法解决问题。这时候可以其他发行版的 wiki,只要了解发行版之间的差异,自己适度发挥,也能解决问题。推荐的有 Arch Linux wiki (神中神,非常推荐) 和 Debian wiki (Debian 系可以看),他们的社区比较活跃,维护比较积极。
社区是 Linux 当中重要的组成部分。发行版通常有自己的论坛,邮件组和 IRC 频道。如果你确信你面对的是一个全新的问题,网上找不到已有的解决方案。或者你的能力不足以找到解决方案。可以尝试在这些地方求助。保持良好的态度,尽可能详细地描述问题,相信会有志愿者来解答的。
推荐阅读
- archlinux 简明指南:虽然是 Arch Linux 的教程,但是写的很好,其他发行版也能参考。
- Linux 就该这样学:不错的书,适合长期看。