├── .github └── workflows │ └── mkdocs.yml ├── .gitignore ├── README.md ├── docs ├── about │ ├── contributing │ │ ├── about.md │ │ ├── base-01.md │ │ ├── base-02.md │ │ ├── images │ │ │ └── icon-themes.png │ │ └── index.md │ ├── index.md │ ├── license │ │ ├── deed.md │ │ ├── index.md │ │ └── legalcode.md │ └── words-from-contributor.md ├── advanced │ ├── re-entry │ │ ├── disk-and-fs.md │ │ ├── distro.md │ │ ├── extend.md │ │ ├── index.md │ │ └── repo-and-mirror.md │ ├── shell │ │ ├── assets │ │ │ ├── file-system.png │ │ │ ├── htop.png │ │ │ ├── nano_editor.png │ │ │ └── top.png │ │ ├── base1.md │ │ ├── base2.md │ │ ├── base3.md │ │ ├── base4.md │ │ ├── base5.md │ │ └── index.md │ └── system-admin │ │ ├── firewall.md │ │ ├── images │ │ ├── Nvidia-driver-list.png │ │ └── proxy-network.png │ │ ├── index.md │ │ ├── nvidia-driver.md │ │ ├── package-manager.md │ │ ├── setup-proxy.md │ │ ├── systemctl.md │ │ └── update-sys.md ├── entry │ ├── desktop │ │ ├── apps-gui.md │ │ ├── assets │ │ │ └── Plasma-launcher.png │ │ └── general.md │ ├── installation │ │ ├── assets │ │ │ ├── Kubuntu │ │ │ │ ├── completed.png │ │ │ │ ├── efi.png │ │ │ │ ├── gpt.png │ │ │ │ ├── grub.png │ │ │ │ ├── keyboard.png │ │ │ │ ├── location&time.png │ │ │ │ ├── online-update.png │ │ │ │ ├── partition1.png │ │ │ │ ├── root.png │ │ │ │ ├── swap.png │ │ │ │ ├── username.png │ │ │ │ ├── welcome.png │ │ │ │ └── welcome=again.png │ │ │ ├── fedora │ │ │ │ ├── config-aboutyou.png │ │ │ │ ├── config-end.png │ │ │ │ ├── config-keyword.png │ │ │ │ ├── config-online.png │ │ │ │ ├── config-pra.png │ │ │ │ ├── config-repo.png │ │ │ │ ├── config-welcome.png │ │ │ │ ├── instal-final.png │ │ │ │ ├── install-manual01.png │ │ │ │ ├── install-manual02.png │ │ │ │ ├── install_auto.png │ │ │ │ ├── install_inshort.png │ │ │ │ ├── install_keyboard.png │ │ │ │ ├── install_lang.png │ │ │ │ ├── install_man01.png │ │ │ │ ├── install_man02.png │ │ │ │ ├── install_start.png │ │ │ │ ├── install_timezone.png │ │ │ │ └── install_welcome.png │ │ │ ├── gpg │ │ │ │ ├── 01.svg │ │ │ │ ├── crc-sha.gif │ │ │ │ ├── kleopatra-01.png │ │ │ │ ├── kleopatra-02.png │ │ │ │ ├── kleopatra-03.gif │ │ │ │ ├── kleopatra-04.gif │ │ │ │ └── kleopatra-05.gif │ │ │ ├── misc │ │ │ │ ├── chec-hash-7z-1.png │ │ │ │ ├── check-hash-7z.PNG │ │ │ │ └── check-hash.png │ │ │ ├── openSUSE │ │ │ │ ├── Choose_de_for_linux.png │ │ │ │ ├── Create_account.png │ │ │ │ ├── DVD_install_guide_-_root_account.png │ │ │ │ ├── DVD_installer_guide_overview.png │ │ │ │ ├── DVD_installer_review.png │ │ │ │ ├── DVD_installer_time-ntp.png │ │ │ │ ├── DVD_partitioning_guide_01.png │ │ │ │ ├── DVD_partitioning_guide_02.png │ │ │ │ ├── DVD_partitioning_guide_03.png │ │ │ │ ├── DVD_partitioning_guide_05.png │ │ │ │ ├── Default_partitioning.png │ │ │ │ ├── Online_update_or_not.png │ │ │ │ ├── OpenSUSE_startup.png │ │ │ │ ├── Partitioning_tool.png │ │ │ │ └── Time_and_zones.png │ │ │ ├── silverblue │ │ │ │ ├── 0-install-welcome.png │ │ │ │ ├── 01-install-silverblue.png │ │ │ │ ├── 02-install-summary.png │ │ │ │ ├── 03-install-keyboard.png │ │ │ │ ├── 04-install-language.png │ │ │ │ ├── 05-install-time.png │ │ │ │ ├── 06-install-NTS.png │ │ │ │ ├── 07-install-dest.png │ │ │ │ ├── 08-install-efi.png │ │ │ │ ├── 09-install-boot.png │ │ │ │ ├── 1.png │ │ │ │ ├── 10-install-root.png │ │ │ │ ├── 11-install-home.png │ │ │ │ ├── 12-install-end.png │ │ │ │ ├── 13-install-progress.png │ │ │ │ ├── 14-install-repo.png │ │ │ │ ├── 15-install-user.png │ │ │ │ ├── 16-install-pw.png │ │ │ │ ├── 17-install-gnome.png │ │ │ │ ├── 2.png │ │ │ │ └── 3.jpg │ │ │ └── vm │ │ │ │ ├── vbox-begain.png │ │ │ │ ├── vbox-conf-display.png │ │ │ │ ├── vbox-conf-iso.png │ │ │ │ ├── vbox-conf-reg.png │ │ │ │ ├── vbox-conf-share.png │ │ │ │ ├── vbox-conf-sys.png │ │ │ │ ├── vbox-disk.png │ │ │ │ ├── vbox-extensions.png │ │ │ │ ├── vbox-iso-man.gif │ │ │ │ ├── vbox-net.png │ │ │ │ ├── vbox-snapshot.gif │ │ │ │ ├── vbox-vm1.png │ │ │ │ ├── vbox-vm2.png │ │ │ │ ├── vbox-vm3.png │ │ │ │ ├── vbox-vm4.png │ │ │ │ ├── vm-begain.png │ │ │ │ ├── vm-install-expak.gif │ │ │ │ ├── vm-nano.png │ │ │ │ ├── vm-new01.png │ │ │ │ ├── vm-new02.png │ │ │ │ ├── vm-new03.png │ │ │ │ ├── vm-new04.png │ │ │ │ ├── vm-new05.png │ │ │ │ ├── vm-share-end.png │ │ │ │ └── vm-sharefolder.png │ │ ├── fedora-silverblue.md │ │ ├── fedora.md │ │ ├── opensuse.md │ │ ├── pre-install.md │ │ ├── verify.md │ │ └── virtual-machine.md │ └── prologue │ │ ├── assets │ │ ├── OSlp151_GNOME-Notifications.png │ │ ├── Xfce4.16.png │ │ └── opensuse-kde.png │ │ ├── choose-distro.md │ │ ├── desktop-environment.md │ │ └── switch-to-linux.md ├── help │ ├── contact.md │ ├── faq.md │ └── howto-ask-for-help.md ├── index.md ├── intro.md ├── poweruser │ └── index.md └── solution │ ├── compatibility │ ├── about.md │ ├── distrobox.md │ ├── docker.md │ ├── toolbx.md │ ├── virtual-machine.md │ └── wine.md │ ├── config │ ├── dual-boot.md │ ├── hidpi.md │ └── index.md │ ├── eyecandy │ ├── eyecandy-kde.md │ ├── eyecandy-xfce4.md │ ├── image │ │ └── KDE │ │ │ ├── chrome.png │ │ │ ├── file-manager.png │ │ │ ├── neofetch-02.png │ │ │ ├── neofetch.png │ │ │ ├── settings-01.png │ │ │ ├── settings-02.png │ │ │ └── start.png │ └── index.md │ └── software │ ├── appimage-base.md │ ├── browser.md │ ├── download-manager.md │ ├── flatpak-get-start.md │ ├── images │ └── Flatpak_Install.png │ ├── index.md │ ├── instant-messaging.md │ ├── linux-game.md │ ├── multimedia-editing.md │ └── office-and-email.md ├── mkdocs.yml ├── overrides ├── assets │ └── images │ │ ├── Distro.webp │ │ ├── Flatpak-truck.webp │ │ ├── Freedesktop-logo-for-template.svg │ │ └── linux-de.webp ├── home.html └── partials │ └── comments.html └── requirements.txt /.github/workflows/mkdocs.yml: -------------------------------------------------------------------------------- 1 | name: Publish docs via GitHub Pages 2 | on: 3 | workflow_dispatch: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | build: 10 | name: Deploy docs 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout main 14 | uses: actions/checkout@v2 15 | with: 16 | fetch-depth: '0' 17 | 18 | - name: Deploy docs 19 | uses: mhausenblas/mkdocs-deploy-gh-pages@master 20 | # Or use mhausenblas/mkdocs-deploy-gh-pages@nomaterial to build without the mkdocs-material theme 21 | env: 22 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 23 | CUSTOM_DOMAIN: libhitchhiker.eu.org 24 | CONFIG_FILE: mkdocs.yml 25 | EXTRA_PACKAGES: build-base 26 | # GITHUB_DOMAIN: github.myenterprise.com 27 | REQUIREMENTS: requirements.txt 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | venv/ 2 | site/ 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # THGLG 2 | 3 | The Hitchhiker's Guide to the Linux Galaxy: Linux 银河漫游指南 4 | -------------------------------------------------------------------------------- /docs/about/contributing/about.md: -------------------------------------------------------------------------------- 1 | # 关于 2 | 3 | 这是一个贡献者指南简约 Lite 版 4 | 5 | 😂 6 | 7 | **它只是一个大纲**,描述如何为 [Linux 银河漫游指南](https://github.com/linuxhitchhiker/THGLG/)做贡献所需要提前知道或了解的内容。 -------------------------------------------------------------------------------- /docs/about/contributing/base-01.md: -------------------------------------------------------------------------------- 1 | # 慢速开始 1 2 | 3 | !!! note 4 | 年轻的读者呦,慢慢来,心急吃不了热豆腐。 5 | 6 | ## 前置条件 7 | 8 | ### 英语 9 | 10 | 如上,你需要大约中学英语的水平来阅读一些原始文档和指南。或者你可以使用谷歌翻译或其他的在线翻译引擎翻译原始文档。 11 | 12 | ### Linux 13 | 14 | - 了解 Shell 的基本用法和简单的概念。 15 | - 了解 Linux 和其他一些知识(比如 ffmpeg 解码和编码方法,你要写文章总得先有东西可写吧)。 16 | 17 | ### 代理服务 18 | 19 | 我们默认贡献者已经配置了代理服务,并可以正常访问 https://www.google.com 20 | 21 | ### Markdown 22 | 23 | 掌握 Markdown 语法规则。 24 | 25 | - [Markdown 中文教程](https://markdown.com.cn/) 26 | 27 | ### Git 28 | 29 | 了解 Git 的基本概念,基本工作原理。 30 | 31 | !!! note 32 | 不求精通 git,记住各种 git 命令。但你起码得知道 git 是怎么一回事。 33 | 34 | - [ProGit 2nd Edition (2014) 中文版](http://git-scm.com/book/zh/v2) 35 | * 关于《ProGit》,你至少需要看完前三章以及第六章的内容。 36 | 37 | ### GitHub 账户 38 | 39 | 你可以参考《ProGit》第六章,注册一个 GitHub 账户,然后将 [THGLG](https://github.com/linuxhitchhiker/THGLG/) fork 到自己的账户中,再 clone 到本地。 40 | 41 | ### 文档排版规范 42 | 43 | 建议阅读以下内容: 44 | 45 | - [Copywriting - 中文文案排版指北(简体中文版)](https://mazhuang.org/wiki/chinese-copywriting-guidelines/) 46 | 47 | ## 工具 48 | 49 | ### git 50 | 51 | git 已经在 openSUSE 和 Fedora 的官方软件源之中,你可以直接安装: 52 | 53 | ``` 54 | $ sudo zypper in git-core #在 openSUSE 上安装 git 55 | $ sudo dnf in git-core #在 Fedora 上安装 git 56 | ``` 57 | 58 | ### VScode 59 | 60 | 推荐使用 [vscode](https://code.visualstudio.com/)。它是一个功能丰富,易于使用的文本编辑器。而且有丰富的扩展(其中包括图形化的 git 管理工具)。 61 | 62 | - 在 Fedora 上安装: 63 | 添加软件源: 64 | ``` 65 | sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc 66 | sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' 67 | ``` 68 | 然后检查更新,并安装 vscode: 69 | ``` 70 | sudo dnf check-update && sudo dnf install code 71 | ``` 72 | - 在 openSUSE 上安装: 73 | 添加软件源: 74 | ``` 75 | sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc 76 | sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/vscode.repo' 77 | ``` 78 | 刷新软件源,并安装 vscode: 79 | ``` 80 | sudo zypper ref && sudo zypper in code 81 | ``` 82 | 83 | ### Python 84 | 85 | 建议根据官方指南,使用 python 安装 `mkdocs` 和 `mkdocs-material`。 86 | 87 | ### 扩展语法和配置文件 88 | 89 | Mkdocs-material 支持许多实用的 markdown 扩展语法: 90 | 91 | - [Reference - mkdocs-material](https://squidfunk.github.io/mkdocs-material/reference/) 92 | 93 | 你还需要了解一下 Mdkocs 的一些配置信息,以方便将你的文档和链接添加到合适的位置: 94 | 95 | - **[Mkdocs User Guide](https://www.mkdocs.org/user-guide/)** -------------------------------------------------------------------------------- /docs/about/contributing/base-02.md: -------------------------------------------------------------------------------- 1 | # 慢速开始 2 2 | 3 | 本文主要描述一些不会出现在官方文档上,但有必要执行的额外步骤。 4 | 5 | ## git 6 | 7 | !!! note 8 | 注意,在 fork 后,如果需要提交新内容,请创建一个新的分支(branch),然后通过这个分支向上游提交 PR。等上游合并后,再切换到主分支 `main` 合并上游的 commit。如此往复。 9 | 10 | 因为存在网络阻断,git 无法直接向 GitHub 提交数据。GitHub 也禁止用户直接使用账户和密码提交更改。所以你需要为 git 配置代理并使用 SSL 或者 token 连接到 GitHub。 11 | 12 | ### 为 git 配置代理 13 | 14 | 为 git 配置 http 代理 15 | 16 | ``` 17 | git config --global http.proxy protocol://127.0.0.1:port 18 | ``` 19 | 20 | 注意:`--glboal` 选项指的是修改 Git 的全局配置文件 `~/.gitconfig`,而非各个 Git 仓库里的配置文件 `.git/config`。`protocol` 指的是代理的协议,如 `http`,`https` 或 `socks5` 等。`port` 则为端口号[^1]。 21 | 22 | ### 使用 gh-cli 托管 git 23 | 24 | gh-cli 是由 GitHub 开发的命令行工具。功能和 [GitHub desktop](https://desktop.github.com/) 相似。 25 | 26 | ``` 27 | sudo zypper in gh #在 openSUSE 上安装 gh-cli 28 | sudo dnf in gh #在 Fedora 上安装 gh-cli 29 | ``` 30 | 31 | 然后你需要前往 GitHub 官网,在[设置](https://github.com/settings/tokens) 中生成一个新个人访问令牌(token)。这个 token 必须具有对 `workflow`、`read:org` 和 `repo` 三个区域的访问权限。 32 | 33 | 然后登陆 GitHub: 34 | 35 | ``` 36 | $ gh auth login 37 | ``` 38 | 39 | 在登陆的时候,gh-cli 会询问你是否托管 git,建议选择 `yes`。授权方式建议选择 `Paste an authentication token`。官方文档详见[此处](https://cli.github.com/manual/)。 40 | 41 | ## Python 的必要配置 42 | 43 | 一般而言,Linux 都会将 python 的某个版本作为依赖预装。 44 | 45 | 查看你当前的 python3 版本: 46 | 47 | ``` 48 | bh@c004-h0:~> python3 --version 49 | Python 3.8.13 50 | bh@c004-h0:~> pip --version 51 | pip 22.0.4 from /usr/lib/python3.8/site-packages/pip (python 3.8) 52 | ``` 53 | 54 | 如果找不到相关信息,你需要安装 python3。 55 | 56 | ``` 57 | sudo zypper in python310 #在 openSUSE 上安装 python 3.10 58 | sudo dnf in python310 #在 Fedora 上安装 python 3.10 59 | ``` 60 | 61 | ### 镜像站 62 | 63 | 在你的用户目录下新建以下配置文件: 64 | 65 | ``` 66 | bh@c004-h0:~> cat ~/.pip/pip.conf 67 | [global] 68 | index-url = http://mirrors.aliyun.com/pypi/simple/ 69 | [install] 70 | trusted-host=mirrors.aliyun.com 71 | ``` 72 | 73 | 上述操作可以将 pip 使用的站点切换至国内镜像站。 74 | 75 | ### 安装依赖 76 | 77 | ``` 78 | $ git clone https://github.com/linuxhitchhiker/THGLG.git #首先将仓库克隆至本地 79 | $ cd THGLG && python3 -m pip install -r requirements.txt #根据描述文件安装全部的依赖 80 | $ python3 -m pip mkdocs server #在本地启动实例 81 | ``` 82 | 83 | 原始的命令比较长,你可以使用 `alias` 命令设置一个较短的命令。 84 | 85 | ``` 86 | $ alias mkdocs="python3 -m pip mkdocs" 87 | ``` 88 | 89 | ## VScode 插件 90 | 91 | 推荐安装的扩展有 92 | 93 | - Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code - Microsoft 94 | - GitLens — Git supercharged - GitKraken 95 | 多合一的 git 工具箱 96 | - Markdown All in One - Yu Zhang 97 | 多合一的 md 文档插件 98 | - Material Icon Theme - Philipp Kief 99 | 显示效果更清晰的图标主题 100 | ![01](./images/icon-themes.png) 101 | - Project Manager - Alessandro Fragnani 102 | git 项目管理器(便捷地在多个 git 项目间切换) 103 | 104 | ## 常见故障 105 | 106 | <待补充> 107 | 108 | [^1]: [一文让你了解如何为 Git 设置代理](https://ericclose.github.io/git-proxy-config.html) -------------------------------------------------------------------------------- /docs/about/contributing/images/icon-themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/about/contributing/images/icon-themes.png -------------------------------------------------------------------------------- /docs/about/contributing/index.md: -------------------------------------------------------------------------------- 1 | # 贡献指南 2 | 3 | 本文将详细说明如何向《Linux 银河漫游指南》做出你的贡献。 4 | 5 | 当然,贡献不分大小、不论形式,包括但不限于帮助完善文档、翻译优秀的 Linux 相关文章、在公开用户群组中解答新人问题等。 6 | 7 | 如果你熟悉 Github 操作,欢迎根据下方的指南直接向本项目提交内容;如果你还是个新手,也欢迎通过提 issue 等方式给予我们宝贵建议。 8 | 9 | ## 贡献于现有的文档 10 | 11 | 在每个已发布文档的页面底部都有一个 "编辑此页面 "的链接,指向了该页面的原始文件。对现有文档的较小规模的较为简单的编辑,只需修改文档对应的 Markdown 文件。 12 | 13 | 首先,你需要 fork 本项目,并拉取到本地。 14 | 15 | 之后,你需要创建一个新分支,并将所有修改保存到你的分支中。 16 | 17 | 最后,从你的分支向上游仓库(本项目)发起合并请求。 18 | 19 | ## Git 与 Github 指南 20 | 21 | * 用[单独的分支](#切换到单独分支)来保存您的 Git 提交(不要直接 commit 到 main 分支) 22 | * 添加文章时,一个拉取请求(PR)或提交(commit)对应一篇文章。如果您使用了多个提交,请考虑将您的提交挤压(squash)到一个。 23 | * 提交之前,在本地预览看看。 24 | 25 | ### 切换到单独分支 26 | 27 | ``` 28 | git fetch upstream 29 | git checkout -b translate-faq4 upstream/master 30 | ``` 31 | 32 | ## 构建本站 33 | 34 | 本站采用 MkDocs 构建,需要 Python 环境。要构建本站,需要安装 Python3。以下流程假设您已经安装,且在 Unix-like 环境下。(Linux 或者 *BSD) 35 | 36 | 设置 Python 环境: 37 | 38 | ``` 39 | python3 -m venv ./venv 40 | source ./venv/bin/activate 41 | ``` 42 | 43 | 安装 Python 依赖,主要是 MkDocs 与主题: 44 | 45 | ``` 46 | pip install --requirement requirements.txt 47 | ``` 48 | 49 | 本地预览: 50 | 51 | ``` 52 | mkdocs serve 53 | ``` 54 | 55 | ## 网站更新 56 | 57 | 我们的官方网址是 [libhitchhiker.eu.org](https://libhitchhiker.eu.org)。贡献者对我们在 Github 仓库上所作的更改,首先会被 Github Action 编译,然后再拉取到 `libhitchhiker.eu.org` 所在的服务器上面。如果读者想要立刻看到更改,请访问我们的 [Github Pages](https://linuxhitchhiker.github.io/THGLG/)。 58 | -------------------------------------------------------------------------------- /docs/about/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | comments: true 3 | --- 4 | 5 | # 关于我们 6 | 7 | 时至今日,Linux 桌面端的生态早已今非昔比——日常需求有不少都能在 Linux 上完成。 8 | 9 | 但是,当我们在网络上搜索 “Linux 教程”或 “Linux 指南”,映入眼帘的是各种基于 CentOS 的指南。这些指南读作 “Linux 指南”,实际上是基于 CentOS 的服务器管理指南。Linux 发行版不止 CentOS,Linux 也不只是可爱的命令行和专业的服务器,Linux 桌面也应该有属于自己的教程。 10 | 11 | 主流发行版的桌面环境都是按照相同的技术路线构建的。相同的 systemd、相同的 Freedesktop.Org 规范、几乎相同的软件,不同的只有配置。同时,Flatpak 等技术的出现正在缩小发行版之间的区别。 12 | 13 | 本文档的存在正是基于以上事实。 14 | 15 | ## 联系我们 16 | 17 | 关于本文档的任何问题以及建议,欢迎您直接通过 [GitHub 讨论区](https://github.com/linuxhitchhiker/THGLG/discussions) 或者 [GitHub Issue](https://github.com/linuxhitchhiker/THGLG/issues) 反馈给我们。 18 | 19 | ## 时间线 20 | 21 | * 2022-01-13:提出创建一个社区指南的想法,项目正式开始。 22 | * 2022-03-28:从 GitHub Pages 迁移到 libhitchhiker.eu.org 23 | * 2022-12-14:添加讨论系统 24 | -------------------------------------------------------------------------------- /docs/about/license/deed.md: -------------------------------------------------------------------------------- 1 | # 署名—相同方式共享 4.0 协议国际版摘要 2 | 3 | 11 | 12 | !!! info "注意" 13 | 这是一份易于常人了解的法律条款摘要,不是[原始许可协议](./legalcode.md)的替代品。来自:https://creativecommons.org/licenses/by-sa/4.0/ 14 | 15 | ### 您可以自由地: 16 | 17 | - **共享** — 在任何媒介以任何形式复制、发行本作品 18 | - **演绎** — 修改、转换或以本作品为基础进行创作 19 | 20 | - 只要你遵守许可协议条款,许可人就无法收回你的这些权利。 21 | 22 | * * * 23 | 24 | ### 惟须遵守下列条件: 25 | 26 | - **署名** — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。 27 | 28 | - **相同方式共享** — 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同的许可协议分发您贡献的作品。 29 | 30 | - **没有附加限制** — 您不得适用法律术语或者技术措施从而限制其他人做许可协议允许的事情。 31 | 32 | * * * 33 | 34 | ### 声明: 35 | 36 | - 您不必因为公共领域的作品要素而遵守许可协议,或者您的使用被可适用的例外或限制所允许。 37 | - 不提供担保。许可协议可能不会给与您意图使用的所必须的所有许可。例如,其他权利比如形象权、隐私权或人格权可能限制您如何使用作品。 -------------------------------------------------------------------------------- /docs/about/license/index.md: -------------------------------------------------------------------------------- 1 | # 许可协议 2 | 3 | 我们在**[署名—相同方式共享 4.0 协议国际版](./deed.md)**下提供本文档。 4 | 5 | ## 第三方许可协议 6 | 7 | * [Material for MkDocs](https://github.com/squidfunk/mkdocs-material) : MIT 8 | * [Freedesktop Logo](https://commons.wikimedia.org/wiki/File:Freedesktop-logo-for-template.svg) : GPL -------------------------------------------------------------------------------- /docs/about/license/legalcode.md: -------------------------------------------------------------------------------- 1 | # 署名—相同方式共享 4.0 协议国际版 2 | 3 |

通过行使本协议所授予的权利(定义如下),您接受并同意受到知识共享(Creative Commons)署名—相同方式共享4.0国际公共许可协议(以下简称“本公共许可协议”)的约束。从合同解释的角度来看,您获得授权的对价是接受本协议的条款,许可人授予您这些权利的对价是可以通过采用本协议条款发布授权作品(material)而获得利益。

4 |

第一条 定义

5 |
    6 |
  1. 演绎作品(Adapted Material): 指受到著作权与类似权利保护的,基于授权作品(Licensed Material)而创作的作品(material),例如对授权作品(Licensed Material)的翻译、改编、编排、改写或其他依据著作权与类似权利需要获得所有人许可的修改。为本公共许可协议之目的,当授权作品(Licensed Material)为音乐作品、表演或录音时,将其依时间序列关系与动态影像配合一致而形成的作品,视为演绎作品(Adapted Material)。
  2. 7 |
  3. 演绎作者的许可: 指您依据本公共许可协议对在演绎作品(Adapted Material)中自己所贡献的部分所享有的著作权与类似权利进行授权的协议。
  4. 8 |
  5. 署名—相同方式共享兼容协议: 指在 creativecommons.org/compatiblelicenses 上列出且经知识共享组织(Creative Commons)认可、实质上与本公共许可协议相当的协议。
  6. 9 |
  7. 著作权与类似权利: 指著作权和/或与著作权紧密联系的类似权利。类似权利包括但不限于:表演者权、广播组织权、录音录像制作者权、以及数据库特别权利,而不论上述权利的定义和归类如何。为本公共许可协议之目的, 第二条b款第(1)项与第(2)项 所列权利不属于著作权与类似权利。
  8. 10 |
  9. 有效的技术措施: 指根据各司法管辖区遵循《世界知识产权组织版权条约》(1996年12月20日通过)第十一条或类似国际协定项下的义务所制定的法律,在没有适当的授权的情况下,禁止使用者规避的技术措施。
  10. 11 |
  11. 例外与限制: 指合理使用(Fair Dealing and Fair Use)和/或其他适用于您对授权作品(Licensed Material)的使用的著作权与类似权利的例外或限制。
  12. 12 |
  13. 授权要素: 指知识共享公共许可协议(CCPL)名称中所包含的协议特征。本公共许可协议的授权要素包括:署名和相同方式共享。
  14. 13 |
  15. 授权作品(Licensed Material): 指许可人通过本公共许可协议授权的文学、艺术作品(artistic or literary work),数据库或其他作品(material)。
  16. 14 |
  17. 协议所授予的权利: 指依据本公共许可协议的条款和条件所授予您的各项权利,限于适用于您对授权作品(Licensed Material)的使用且许可人有权许可的著作权与类似权利。
  18. 15 |
  19. 许可人: 指通过本公共许可协议进行授权的个人或组织。
  20. 16 |
  21. 分享: 指以需要“协议所授予的权利”许可的任何方法或程序向公众提供作品(material),包括复制、公共展示、公开表演、发行、散布、传播、进口或提供作品(material)给公众以便其能在其选定的时间和地点接收作品(material)。
  22. 17 |
  23. 数据库特别权利: 指除了著作权之外,衍生于1996年3月11日通过的《欧洲议会与欧盟理事会关于数据库法律保护的指令》(Directive 96/9/EC)及其修改或后续版本的权利,或其他国家或地区本质上与之等同的权利。
  24. 18 |
  25. 您: 指依据本公共许可协议行使其所获得授予之权利的个人或机构。 “您的” 有相应的含义。
  26. 19 |
20 |

第二条 授权范围

21 |
    22 |
  1. 授权 23 |
      24 |
    1. 根据本公共许可协议的条款,许可人授予您在全球范围内,免费的、不可再许可、非独占、不可撤销的许可,以对授权作品(Licensed Material)行使以下“协议所授予的权利”: 25 |
        26 |
      1. 复制和分享授权作品(Licensed Material)的全部或部分;以及
      2. 27 |
      3. 创作、复制和分享演绎作品(Adapted Material)。
      4. 28 |
      29 |
    2. 例外和限制 为避免疑义,若著作权的例外和限制适用于您对授权作品(Licensed Material)的使用,本公共许可协议将不适用,您也无须遵守本公共许可协议之条款。
    3. 30 |
    4. 期限 本公共许可协议的期限规定于第六条 a 款。
    5. 31 |
    6. 媒介和形式;允许的技术修改 许可人授权您在任何媒介以任何形式(不论目前已知的或未来出现的)行使本协议授予的权利,并为之进行必要的技术修改。许可人放弃和/或同意不主张任何权利以阻止您为了行使协议项下权利进行必要的技术修改,包括为规避有效技术措施所必须的技术修改。为了本公共许可协议之目的, 基于第二条a款第(4)项 进行的技术修改不构成演绎作品(Adapted Material)。
    7. 32 |
    8. 后续接受者 33 |
      34 |
        35 |
      1. 来自许可人的要约——授权作品(Licensed Material) 本授权作品(Licensed Material)的每一个后续接受者都自动取得许可人的要约,以按照本公共许可协议的条款行使协议授予的权利。
      2. 36 |
      3. 来自许可人的额外要约——演绎作品(Adapted Material) 您基于授权作品(Licensed Material)创作的演绎作品(Adapted Material)的每一个后续接受者都自动取得许可人的要约,以按照您所适用的“演绎作者的许可”协议的条款行使协议所授予的权利。
      4. 37 |
      5. 禁止下游限制 若会限制授权作品(Licensed Material)后续接受者行使本协议所授予的权利,则您不得对授权作品(Licensed Material)提出或增加任何额外的或不同的条款,或使用任何有效技术措施。
      6. 38 |
      39 |
      40 |
    9. 并非背书 本公共许可协议不构成、或不得被解释为允许您声明或主张:您或您对授权作品(Licensed Material)的使用与许可人或 第三条a款第(1)项(A)目(i)所规定要求提供署名的权利人相关联,或得到其赞助、同意或被授予正式地位。
    10. 41 |
    42 |
  2. 其他权利

    43 |
      44 |
    1. 依据本公共许可协议,著作人身权,例如保护作品完整权、形象权、隐私权或其他类似的人格权利,不在许可范围内。但是,在条件允许的情况下,许可人可以在必要范围内放弃和/或同意不主张其权利,以便您行使本协议所授予的权利。
    2. 45 |
    3. 本公共许可协议不适用于任何专利权或商标权许可。
    4. 46 |
    5. 在自愿的或可放弃的法定或强制许可机制下,许可人在最大可能范围内放弃对您因行使本协议所授予的权利而产生的使用费的权利,不论是直接收取或通过集体管理组织收取。在其他任何情况下,许可人明确保留收取使用费的任何权利。
    6. 47 |
    48 |
  3. 49 |
50 |

第三条 授权条件

51 |

您行使被许可的权利明确受以下条件限制:

52 |
    53 |
  1. 署名

    54 |
      55 |
    1. 若您分享本授权作品(Licensed Material)(包含修改格式),您必须:

      56 |
        57 |
      1. 保留如下标识(如果许可人提供授权作品(Licensed Material)的同时提供如下标识): 58 |
          59 |
        1. 以许可人要求的任何合理方式,标识本授权作品(Licensed Material)创作者和其他被指定署名的人的身份(包括指定的笔名);
        2. 60 |
        3. 著作权声明;
        4. 61 |
        5. 有关本公共许可协议的声明;
        6. 62 |
        7. 有关免责的声明;
        8. 63 |
        9. 在合理可行情况下,本授权作品(Licensed Material)的网址(URI)或超链接;
        10. 64 |
        65 |
      2. 表明您是否修改本授权作品(Licensed Material)及保留任何先前修改的标记;及
      3. 66 |
      4. 表明授权作品(Licensed Material)依据本公共许可协议授权,并提供本公共许可协议全文,或者本公共许可协议的网址(URI)或超链接。
      5. 67 |
      68 |
    2. 69 |
    3. 依据您分享本授权作品(Licensed Material)的媒介、方法及情況,您可以采用任何合理方式满足第三条a款第(1)项的条件 。 例如,提供包含所要求信息来源的网址(URI)或超链接可算是合理地满足此处的条件。
    4. 70 |
    5. 如果许可人要求,您必须在合理可行的范围内移除第三条a款第(1)项(A)目 所要求的任何信息。
    6. 71 |
    72 |
  2. 73 |
  3. 相同方式共享 74 |

    第三条a款的条件外,如果您分享您创作的演绎作品(Adapted Material),则下列条件也适用:

    75 |
      76 |
    1. 您适用的“演绎作者的许可”协议必须是与本许可协议具有相同授权要素的知识共享(Creative Commons)许可协议(可以是本版本或后续版本),或者其他与“署名-相同方式共享”协议兼容的许可协议。
    2. 77 |
    3. 您必须提供您适用的“演绎作者的许可”协议全文或者该许可协议的网址(URI)或超链接。依据您分享您的演绎作品(Adapted Material)所使用的媒介、方法及情況,您可以采用任何合理方式满足此条件。
    4. 78 |
    5. 您不得提出或施加任何附加或不同的条款或条件、或在演绎作品(Adapted Material)上应用任何有效的技术措施,以限制使用者行使依您所适用的“演绎作者的许可”协议所授予的权利。
    6. 79 |
    80 |
  4. 81 |
82 |

第四条 数据库特别权利

83 |

当协议所授予的权利包含数据库特别权利,而该数据库特别权利适用于您对授权作品(Licensed Material)的使用时:

84 |
    85 |
  1. 为避免疑义, 第二条a款第(1) 项授权您,摘录、再利用、复制和分享全部或绝大部分数据库资料;
  2. 86 |
  3. 如果您将数据库资料的全部或绝大部分纳入您享有数据库特别权利的另一数据库,则您享有数据库特别权利的该数据库(而非其中的单个内容)视为演绎作品(Adapted Material),适用第三条b款的要求;
  4. 87 |
  5. 如果您分享全部或大部分该数据库的资料,您必须遵守 第三条a款 规定的条件。
  6. 88 |
89 | 为避免疑义,当协议所授予的权利包含其他著作权与类似权利时,第四条补充且不取代本公共许可协议所规定的您的义务。 90 |

第五条 免责声明及责任限制条款

91 |
    92 |
  1. 除非许可人另有保证,否则在最大可能范围内,许可人按其现状和现有之基础提供授权作品(Licensed Material),且没有就授权作品(Licensed Material)做出任何形式的陈述或保证:无论明示、默示、法定或其他形式,包括但不限于任何有关本授权作品(Licensed Material)的权属保证、可交易性、适于特定目的、未侵害他人权利、没有潜在或其他瑕疵、精确性或是否有错误,不管是否已知或可发现。当免责声明全部或部分不被允许时,此免责声明可能不适用于您。
  2. 93 |
  3. 在最大可能范围内, 对于任何因本公共许可协议或使用授权作品(Licensed Material)引起的直接的、特殊的、间接的、附随的、连带的、惩罚性的、警告性的,或其他的损失、成本、费用或损害,许可人不对您负任何法律上或其他的责任(包括但不限于过失责任)。当责任限制部分或全部不被允许时,该限制不适用于您。
  4. 94 |
95 |
    96 |
  1. 前述免责及责任限制声明,应尽可能以最接近于完全排除全部责任的方式解释。
  2. 97 |
98 |

第六条 期限与终止

99 |
    100 |
  1. 本公共许可协议在著作权与类似权利存续期间内有效。然而,如果您没有遵守此公共许可协议,则您依据此公共许可协议享有的权利自动终止。
  2. 101 |
  3. 102 |

    当您使用本授权作品(Licensed Material)的权利根据第六条a款终止时,您的权利在下述情况下恢复:

    103 |
      104 |
    1. 自违反协议的行为纠正之日起自动恢复,但须在您发现违反情形后30日内纠正;或
    2. 105 |
    3. 根据许可人明示恢复权利的意思表达。
    4. 106 |
    107 | 为避免疑义,本公共许可协议第六条b款 不影响许可人就您违反本公共许可协议的行为寻求法律救济。
  4. 108 |
  5. 为避免疑义,许可人也可在任何时间,以另外的条款或条件提供本授权作品(Licensed Material),或者停止传播本授权作品(Licensed Material);然而,许可人此种行为不会终止本公共许可协议。
  6. 109 |
  7. 本协议第一及第条,不因本公共许可协议终止而失效。
  8. 110 |
111 |

第七条 其他条款和条件

112 |
    113 |
  1. 除非明示同意,否则许可人不受您表达的任何附加或不同条款或条件约束。
  2. 114 |
  3. 本公共许可协议未提及的关于授权作品(Licensed Material)之任何安排、共识或协议,不属于且独立于本公共许可协议的条款及条件。
  4. 115 |
116 |

第八条 解释

117 |
    118 |
  1. 为避免疑义,本许可协议不会也不应被解释为减少、限制、约束或施加条件于无需本公共许可协议授权即可依法行使的对授权作品(Licensed Material)的任何使用。
  2. 119 |
  3. 在最大可能范围内,如果本公共许可协议的任何条款被视为无法执行,该条款在必要的最小限度内,自动调整至可以执行。如果该条款不能被调整,其应自本公共许可协议中排除适用,不影响其余条款的效力。
  4. 120 |
  5. 除非许可人明示同意,本公共许可协议的任何条款或条件均不得放弃。
  6. 121 |
  7. 本公共许可协议条款不构成、也不得被解释为限制或者放弃适用于许可人或您的特权或豁免,包括豁免于任何司法管辖区或行政机构的法律程序。
  8. 122 |
-------------------------------------------------------------------------------- /docs/about/words-from-contributor.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 贡献者的留言 3 | --- 4 | 5 | 我叫 [Hanjingxue](https://github.com/Hanjingxue-Boling),是这个项目的主要贡献者。如你所见,这个项目很缺乏维护者和贡献者。 6 | 7 | 最开始的时候,数个开源社区成员聚在一起,以美好的愿景开创了这个项目。但是往后的三四个月时间内。我几乎没有收到其他的贡献者的提交。 8 | 9 | 我自己只打算专注于 Fedora spin (Xfce4) 和 openSUSE Tumbleweed(xfce4 & KDE),即弱化跨发行版的意向,但注重于通用的 Linux 知识。Fedora 和 openSUSE 已经是 Linux 的上游了,懂得使用后做到触类旁通也不难。文档的面向对象的范围缩小了很多,现在只侧重面向刚刚接触 Fedora 和 openSUSE 的新用户(但仍然希望帮助新人成为一个勉强合格的 sysadmin)。 10 | 11 | 这个项目需要反馈,也需要贡献。还有很多的东西都需要有人去书写指南。但你不能指望一个人扛下所有,指望一个人枚举所有可能故障的解决方案,指望一个人为发行版的不同的差异进行兜底。 -------------------------------------------------------------------------------- /docs/advanced/re-entry/disk-and-fs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 硬盘与文件系统 3 | comments: true 4 | --- 5 | 6 | 在使用 Linux 发行版的过程中,许多用户经常会遇到硬盘、分区表与文件系统的概念。本节旨在解释这些概念。 7 | 8 | ## 硬盘 9 | 10 | 计算机的存储设备可以被想象成一条纸带,上面以相等的间隔排列数据。第一个数据的地址是 00 ,第二个数据的地址是 01 ,第 256 个是 FF。如下表所示: 11 | 12 | | 地址 | 00 | 01 | 02 | ... | FF | 13 | | ---- | -- | -- | -- | --- | -- | 14 | | 数据 | AB | CD | 58 | ... | 1B | 15 | 16 | 然后,操作系统会根据需要到对应的地址读取数据。再然后……就没了。 17 | 18 | 这里还有一些细节,但并不是很重要:上面的地址与数据全是16进制,因为一个16进制数等价于4个二进制数,而计算机用二进制数,这样表示起来更加方便,这样第 256 个的地址就是 FF ;纸带地址计数从0开始,因为计算机计算地址也是从0开始。 19 | 20 | 电脑实际上不是非常在意底层设备到底使用什么方式存储。早期的计算机采用打孔纸片来存储程序与数据,之后是使用磁带、软盘,再之后才是机械硬盘……当然,现在最新潮的存储设备之一就是固态硬盘。但这些都没有关系,只要这张“纸带”能用就行。 21 | 22 | ## 文件系统 23 | 24 | 文件系统是操作系统用来管理文件以及管理文件元数据的工具。 25 | 26 | 这样说可能比较抽象,我们举个例子说明。 27 | 28 | ### 如果没有文件系统 29 | 30 | 还记得前面的“纸带”吗?我们把它填满 0 。在计算机的世界里面,0 有着“非”(逻辑上的“不”)或者空白的含义。好了,现在纸带上面全是空白: 31 | 32 | | 地址 | 00 | 01 | 02 | 03 | ... | FF | 33 | | ---- | -- | -- | -- | -- | --- | -- | 34 | | 数据 | 00 | 00 | 00 | 00 | ... | 00 | 35 | 36 | 现在计算机需要存储一个文件,内容为 ` 11 22 33 `。让我们把它放到纸带的开头: 37 | 38 | | 地址 | 00 | 01 | 02 | 03 | ... | FF | 39 | | ---- | -- | -- | -- | -- | --- | -- | 40 | | 数据 | 11 | 22 | 33 | 00 | ... | 00 | 41 | 42 | 一切如此美妙,直到我们需要读取文件。 43 | 44 | 读者可以看到,我们并没有存储任何关于文件本身的信息,比如文件的长度以及文件的名字。这样,在读取文件的时候,操作系统并不知道文件什么时候结束(文件内部包含 0 是合理的),只能读取到硬盘结尾,也不知道有关文件的元数据。文件的大小、创建时间、修改时间以及所有者(就是拥有这个文件的用户),都是关于数据(文件本身的数据)的数据,所以叫元数据(metadata)。 45 | 46 | 不使用文件系统的另一个坏处在于,无法组织多个文件,因为操作系统既不知道第一个文件什么时候结束,不知道那些空间是空闲的,也不知道第二个文件应该在什么地方开始。 47 | 48 | ### 文件分配表(File Allocation Table) 49 | 50 | 文件分配表文件系统(File Allocation Table,缩写 FAT),是有史以来最经典的文件系统。FAT 文件系统得名得命于其管理文件的核心技术:“文件分配表”。FAT 发明于 1980 年代,是微软的 DiscBasic 的一部分;现在 FAT 已经遍地开花。 51 | 52 | FAT 是这样管理文件的:将一个分区分成同等大小的簇,也就是连续空间的小块,每个文件根据它的大小可能占有一个或者多个簇。文件分配表(FAT)是映射到分区每个簇的条目列表。每个条目记录下面五种信息中的一种。 53 | 54 | * 链中下一个簇的地址 55 | * 一个特殊的簇链结束符(EOC,End Of Cluster-chain,或称End Of Chain)符号指示链的结束 56 | * 一个特殊的符号标示坏簇 57 | * 一个特殊的符号标示保留簇 58 | * 0来表示空闲簇 59 | 60 | 这样,磁盘的每个簇的情况都得到了记录与管理。 61 | 62 | 目录表是一个表示目录的特殊类型文件(现今通常称为文件夹)。 63 | 64 | 它里面保存的每个文件或目录使用表中的32字节条目表示。每个条目记录名字、扩展名、属性(文件、目录、隐藏、只读、系统和卷)、创建的日期和时间、文件/目录数据第一个簇的地址,最后是文件/目录的大小。 65 | 66 | 这样,我们也就得到了树形的目录结构,同时,文件的各项元数据也得到了有效的保存与管理。 67 | 68 | ### 回到总体概念 69 | 70 | 基本上所有的文件系统都在做着和 FAT 文件系统相同工作,只是方式有所不同。一些文件系统使用 B+ 树来存储数据,一些文件系统含有锦上添花的加密与压缩功能,但这些事情本质上和 FAT 没有区别。我们现在不准备在此处展开详细讲解。涉及到 Linux 安装的时候,我们并不会推荐用户使用或者不使用某种文件系统。有些时候不同的文件系统有不同的作用,而大多数 Linux 发行版安装程序已经为用户选择了(开发者认为)合适的文件系统。 71 | 72 | ## 分区表 73 | 74 | 分区表,顾名思义,就是划分分区的表。大多数情况下,一个文件系统占据了一个分区,而现代操作系统的使用,经常会涉及多个分区。分区表的作用,就是记录分区占据的位置、分区扮演的角色(比如启动用的分区、存放数据的分区)、以及分区使用的的文件系统。 75 | 76 | -------------------------------------------------------------------------------- /docs/advanced/re-entry/distro.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "选择发行版" 3 | comments: true 4 | --- 5 | 6 | ## 什么是发行版 7 | 8 | 根据 [Wikpedia](https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88): 9 | 10 | >Linux 发行版(英语:Linux distribution,也被叫做 GNU/Linux 发行版),为一般用户预先集成好的 Linux 操作系统及各种应用软件。一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。Linux 发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。现在有超过 300 个 Linux 发行版(详见 Linux 发行版列表)。大部分都正处于活跃的开发中,不断地改进。 11 | > 12 | >由于大多数软件包是自由软件和开源软件,所以 Linux 发行版的形式多种多样——从功能齐全的桌面系统以及服务器系统到小型系统(通常在嵌入式设备,或者启动软盘)。除了一些定制软件(如安装和配置工具),发行版通常只是将特定的应用软件安装在一堆函数库和内核上,以满足特定用户的需求。 13 | 14 | ## 主流发行版 15 | 16 | Linux 当前的主流/根发行版有:[Debian](https://www.debian.org/)、[Ubuntu](https://ubuntu.com/)、[RHEL](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux)/[Fedora](https://getfedora.org/)、[SLES](https://www.suse.com/products/server/)/[openSUSE](https://www.opensuse.org/)、[Arch](https://archlinux.org/)、[Gentoo](https://www.gentoo.org/)、[Slackware](http://www.slackware.com/) 和 [Linux From Scratch](https://www.linuxfromscratch.org/)。 17 | 18 | 这些发行版可以分为商业发行版,比如 Ubuntu、Red Hat Enterprise Linux 和 SUSE Linux Enterpise;和社区发行版,它们由自由和开源软件社区提供支持,如 Debian、Fedora、Arch、openSUSE 和 Gentoo。 19 | 20 | ### 各自优缺点 21 | 22 | **请依照你的实际需求,选择合适的发行版。没有糟糕的发行版,只有糟糕的需求与供给搭配。** 23 | 24 | |名称|优点|缺点|适用人群| 25 | |---|---|---|---| 26 | |Debian|使用人数很多,可用软件包数量最多,稳定可靠,有着丰富的文档。|官方仓库软件包版本老旧,时常会给软件加补丁。|Linux 初学者、专家和服务器运营者| 27 | |Ubuntu|使用人数很多,开箱即用,是众多 Linux 桌面发行版的上游。|官方有窃取用户隐私,向用户投放广告的黑历史。|Linux 初学者、桌面用户、专家和服务器运营者| 28 | |RHEL|具有最为广泛的商业支持的商业发行版,稳定可靠安全。|服务收费,软件包版本略为老旧|Linux 初学者、专家和服务器运营者| 29 | |Fedora|Linux 新兴技术的公测平台,贴近上游而不会过分激进,系统偏原生不会有过多多余的东西。|不适合稳定为首要目的的用户,技术变更频繁。|Linux 初学者、桌面用户、专家和服务器运营者| 30 | |SLES|另一个知名的,系统管理员友好的 Linux 发行版,稳定可靠|服务收费,软件包版本略为老旧|Linux 初学者、专家、系统管理员和服务器运营者| 31 | |openSUSE|贴近上游,稳定可靠,具有图形化的 YaST 系统管理工具,对新技术采用不及 Fedora 激进,有良好的开箱即用的中文环境。|所受支持程度不及 Fedora|Linux 初学者、桌面用户、专家、系统管理员和服务器运营者| 32 | |Arch|一个以“保持简单,且一目了然”为哲学的技术激进的社区发行版,具有很强的定制性。社区很活跃,用户也很多。Arch 用户拥有地球上最强大的 Wiki 文档库。|软件包版本是上游的最新版本;不适合新手、无经验者和不愿意折腾系统的人|具有中等及以上 Linux 技能水平,有时间有精力的用户| 33 | |Gentoo|一个从源码逐步构建起来的 Linux,可定制系统的方方面面的“元发行版”。|不适合新手、无经验者和不愿意折腾系统的人;编译安装系统需要消耗较高的硬件资源和较长的时间。|具有中等及以上 Linux 技能水平,有时间有精力的用户| 34 | 35 | - 像 Slackware 和 Linux From Scratch 这类维护难度高于 Gentoo 的 Linux 发行版就不作介绍了,有兴趣的读者可自行查阅相关资料。 36 | - 除此之外还有其他很多优秀知名的 Linux 发行版,但由于本文只描述主流和根发行版(其他发行版的上游发行版),所以不做介绍。 37 | 38 | ## 一些误解 39 | 40 | - Fedora 是红帽的小白鼠 41 | 众多 Linux 的新兴技术都是首先在 Fedora 上实验,然后推广到下游发行版或其他发行版。Fedora 本身是一个非常贴近上游技术方向的发行版,为 Linux 社区的发展做出了很多广受认可的贡献。将 Fedora 比作红帽的实验小白鼠是很片面的说法。 42 | 43 | - Linux 是完全免费的 44 | 免费的 Linux 发行版只是在狭义(经济方面)上 “免费” 而已,实际上,从接触 Linux 开始,到日常使用 Linux ,甚至成为 Linux 的开发者、贡献者或维护者,都不是免费的。它需要你为此付出相应的时间和精力去学习和历练。一些商业公司会为 Linux 提供客户支持,这也是收费的。 45 | 46 | - Linux 是 Windows 杀手,即将取缔 Windows 47 | Linux 自 1991 年发布至今数十多年间,从未在桌面端上战胜过 Windows ,而 Windows 同样也未能够在服务器和嵌入式领域战胜占据了大半江山的 Linux 家族。Linux 的使命并不是战胜 Windows。 48 | 49 | - XXX 是国产操作系统,但是却基于 Linux 50 | 某些国产操作系统是基于 Linux 重新改装而成。它们本质上可以认为是 Linux 发行版或者某一主流发行版的衍生发行版或衍生发行版的衍生发行版,他们采用 Linux 追求的是自主可控(因为源代码都能自己看到并编译)。而**构成 Linux 发行版的各种软件、套件和框架都是由自由与开源社区共同拥有,共同贡献和改进的。并不是某一商业公司的私有产品。** 51 | 我们提倡享受开源成果的同时,积极回馈上游和社区。 -------------------------------------------------------------------------------- /docs/advanced/re-entry/extend.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 扩展阅读 3 | comments: true 4 | --- 5 | 6 | # 扩展阅读 7 | 8 | 本文主要记录一些不存在于当前文档站的实用文档、论坛和维基站点。 9 | 10 | ## Linux 11 | 12 | ### Fedora Linux 13 | 14 | - [Ask Fedora](https://ask.fedoraproject.org/) 15 | - [Fedora Documentation](https://docs.fedoraproject.org/en-US/docs/) 16 | - [Fedora Magazine](https://fedoramagazine.org/) 17 | - [Fedora 中文用户组](https://zh.fedoracommunity.org/) 18 | 19 | ### openSUSE Linux 20 | 21 | - [openSUSE Wiki](https://zh.opensuse.org/) 22 | - [openSUSE Documentation](https://doc.opensuse.org/) 23 | - [openSUSE News](https://news.opensuse.org/) 24 | - [openSUSE Forums](https://forums.opensuse.org/forum.php) 25 | - [openSUSE 中文社区](https://suse.org.cn/) 26 | - [openSUSE 中文论坛](https://forum.suse.org.cn/) 27 | 28 | ## 文档 29 | 30 | ### Markdown 语法 31 | 32 | - [Markdown 标准语法教程](https://markdown.com.cn/) 33 | - [中文文案排版指北(简体中文版)](https://github.com/mzlogin/chinese-copywriting-guidelines) 34 | - [ProGit (简体中文版)](https://git-scm.com/book/zh/v2) 35 | - [提问的智慧](https://lug.ustc.edu.cn/wiki/doc/smart-questions/) 36 | - [Arch Wiki](https://wiki.archlinux.org/) 37 | - [软件替代品查询](https://alternativeto.net/) -------------------------------------------------------------------------------- /docs/advanced/re-entry/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 概述 3 | comments: true 4 | --- 5 | 6 | 本节旨在对“入门教程”里因篇幅所限没有解释清除的概念与知识进行补充。同时,我们也期望对读者进行一些计算机通识的普及。因此,这一节的内容比较松散,文章之间一般没有顺序,读者可以凭借兴趣选择阅读的章节。 -------------------------------------------------------------------------------- /docs/advanced/re-entry/repo-and-mirror.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 软件源与镜像源 3 | comments: true 4 | --- 5 | 6 | !!! note 7 | 此处所述的内容是镜像网站(mirror),不是磁盘镜像(image)。 8 | 9 | 网站镜像(mirror sites, mirrors;镜像站点,镜像网站)是指对网站内容的拷贝。镜像原意是光学里指的物体在镜面中所成之像。引申到计算机网络上,镜像通常用于为相同信息内容提供不同的源,特别是在下载量大的时候提供了一种可靠的网络连接。[^wikipedia-mirror] 10 | 11 | 社群有时会为同一个软件项目或者发行版软件源设置多个镜像源,以此保证在不同地区和不同网路状况下的访问速度。我们在下面给出了一些镜像软件源的列表,可以根据自己的网路状况与需要选用。 12 | 13 | ### 镜像站列表 14 | 15 | - **延伸阅读:[请给清华镜像站减压 - 竹林里有冰的博客](https://zhul.in/2021/05/27/relieve-the-pressure-of-tuna-mirror-site-please/)** 16 | - 更多镜像站信息请点击[此处](https://gitee.com/gsls200808/chinese-opensource-mirror-site) 17 | - [校园网联合镜像站](https://mirrors.cernet.edu.cn/list)(提供对许多校园网镜像站的元数据的索引和跳转服务。) 18 | 19 | |镜像站名称|类型|地址| 20 | |---|---|---| 21 | |清华大学开源软件镜像站|大学镜像源|| 22 | |北京交通大学自由与开源软件镜像站|大学镜像源|| 23 | |北京理工大学开源软件镜像服务|大学镜像源|| 24 | |北京外国语大学开源软件镜像站|大学镜像源|| 25 | |北京大学开源镜像站|大学镜像源|| 26 | |中国科学技术大学开源软件镜像|大学镜像源|| 27 | |浙江大学开源镜像站|大学镜像源|| 28 | |重庆大学开源软件镜像站|大学镜像源|| 29 | |兰州大学开源社区镜像站|大学镜像源|| 30 | |上海交通大学 Linux 用户组软件源镜像服务|大学镜像源|| 31 | |哈尔滨工业大学开源软件镜像|大学镜像源|| 32 | |南京大学开源软件镜像|大学镜像源|| 33 | |南方科技大学开源软件镜像|大学镜像源|| 34 | |OpenTUNA 开源软件镜像站|大学镜像源|| 35 | |---|---|---| 36 | |腾讯软件源|企业镜像源|| 37 | |腾讯软件源(腾讯云内网)|企业镜像源|| 38 | |阿里巴巴开源镜像站|企业镜像源|| 39 | |阿里巴巴开源镜像站(阿里云内网)|企业镜像源|| 40 | |网易开源镜像站|企业镜像源|| 41 | |平安云开源镜像站|企业镜像源|| 42 | |华为开源镜像站|企业镜像源|| 43 | |首都在线镜像站|企业镜像源|| 44 | |搜狐|企业镜像源|| 45 | |开源社/Azure 中国|企业镜像源|| 46 | 47 | 48 | [^wikipedia-mirror]: 来自维基百科 -------------------------------------------------------------------------------- /docs/advanced/shell/assets/file-system.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/advanced/shell/assets/file-system.png -------------------------------------------------------------------------------- /docs/advanced/shell/assets/htop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/advanced/shell/assets/htop.png -------------------------------------------------------------------------------- /docs/advanced/shell/assets/nano_editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/advanced/shell/assets/nano_editor.png -------------------------------------------------------------------------------- /docs/advanced/shell/assets/top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/advanced/shell/assets/top.png -------------------------------------------------------------------------------- /docs/advanced/shell/base3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "运用文本文件" 3 | comments: true 4 | --- 5 | 6 | # 运用文本文件 7 | 8 | 与 Windows 不同,你可以通过编辑储存于特定目录(比如 `/etc`)的纯文本文件来实现对于系统配置的修改和管理系统。 9 | 10 | ## 使用文本编辑器编辑文件 11 | 12 | Linux 终端常用的文本编辑器有很多,其中比较知名的有 [Vim](https://www.vim.org)、[Emacs](https://www.gnu.org/software/emacs/) 和 [Nano](https://www.nano-editor.org/) 13 | 14 | 流行的图形化的文本编辑器还有:[KDE Kate](https://apps.kde.org/kate/)、[Gnome Gedit](https://wiki.gnome.org/Apps/Gedit)、[Xfce Mousepad](https://docs.xfce.org/apps/mousepad/start) 和微软的 [Visual Studio Code](https://code.visualstudio.com/)。前三者分别是各个主流桌面环境内置的默认文本编辑器,VScode 则是近年来由微软开发,广受开发人员好评的一个富文本编辑器。 15 | 16 | 如果你想要深入了解如何在命令行界面中工作,Emacs 和 Vim 是两个功能强大,扩展丰富,值得信赖的专业工具集。 17 | 18 | 如果你只是偶尔用用命令行界面,你可以简单学习一下如何使用 Nano 编辑文件。 19 | 20 | ### 使用 Nano 21 | 22 | Nano 一般已经安装到你的 Linux 中,打开终端,输入 `$ nano` 23 | 24 | ![Nano](./assets/nano_editor.png) 25 | 26 | 如上图所示,Nano 是一个功能简单,界面友好的轻量级编辑器。底部有快捷键提示。要查询更多信息,按下 `Ctrl + G` 即可打开用户手册,按 `q` 即可退出手册页。 27 | 28 | 你可以使用方向键控制光标的位置,同时使用鼠标进行辅助(如选中内容,上下翻页)。快捷键组合中的 `^` 是指 `Ctrl` 键。编辑完文件后,注意保存(Ctrl + O)然后再退出编辑器(Ctrl + X)。 29 | 30 | 你可以使用 nano 编辑指定路径的文件,如 `$ nano ~/.bashrc`,如果你编写的文件并不存在,Nano 会在你保存后创建该文件。 31 | 32 | ## 搜索文件 33 | 34 | ### 使用 locate 按文件名搜索文件 35 | 36 | 一般而言,Linux 有一个名为 `updatedb` 的后台进程每日都会运行一次,将整个系统的所有文件的文件名导入到一个数据库中。你可以使用 `locate` 命令检索这个数据库。 37 | 38 | 有关于 `locate` 命令需要知道的几件事: 39 | 40 | - `locate` 命令和 `find` 命令相比,各有优劣。`locate` 搜索速度更快是因为它只要检索一个数据库而不是整个文件系统。因此,`locate` 受限于数据库刷新的滞后性,在数据库更新前无法检索到新添加的文件。 41 | - 数据库不会记录所有的文件。`/etc/updatedb.conf` 文件的内容通过删除选择的挂载类型、文件系统类型、文件类型和挂载点来限制收集某些文件名。例如,数据库不会收集挂载的远程文件系统(如 NFS)。用于存储临时文件的目录(`/tmp`)和假脱机文件(`/var/spool/cups`)也被排除在外。
42 | 你可以编辑 `/etc/updatedb.conf`,将不需要被记录的内容添加到 `PRUNEPATHS` 或 `PRUNENAMES` 中。或者删除某些内容来启用记录。 43 | ``` 44 | [bh@c004-v1 ~]$ cat /etc/updatedb.conf 45 | PRUNE_BIND_MOUNTS = "yes" 46 | PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs ceph fuse.ceph" 47 | PRUNENAMES = ".git .hg .svn .bzr .arch-ids {arch} CVS" 48 | PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/lib/dnf/yumdb /var/spool/cups /var/spool/squid /var/tmp /var/lib/ceph /var/lib/mock /sysroot/ostree/deploy" 49 | ``` 50 | 51 | 作为一个普通用户,你同样无法使用 `locate` 检索你无权访问的文件(比如 `/root` 中的文件)。 52 | 53 | - 当你搜索一串字符串的时候,这串字符可能会出现在路径、文件名或目录名中(比如搜索 `passwd`,结果就包含了 `/etc/passwd`、`/etc/pam.d/passwd` 等)。 54 | - 要手动更新数据库,只需要以 root 权限重新运行一遍 `# updatedb` 即可。 55 | - 要查询文件系统中匹配字符串的所有文件或路径,你需要使用 root 权限。 56 | 57 | ### 使用 find 搜索文件 58 | 59 | 存储于文件索引节点的元数据包含了文件的所有者、所属用户组、时间戳、文件大小、权限和其他信息。 60 | 61 | `find` 也是一个常用的用于检索文件的工具。找到文件后,你也可以通过运行任何你想要的命令来处理这些文件(使用 `-exec` 或 `-okay` 选项)。 62 | 63 | 由于 `find` 不依赖数据库而实时检索指定的文件夹(并不建议使用 `find` 搜索整个文件系统),所以 `find` 一般比 `locate` 花费更长的时间但能更精准地发现文件。 64 | 65 | `find` 的另一个特色功能就是,你可以将几乎所有的文件属性(文件名、目录名、路径、权限、所有权、大小或最后编辑时间等)当作命令选项来搜索文件。 66 | 67 | ``` 68 | $ find 69 | $ find /etc 70 | # find $HOME -ls 71 | ``` 72 | 73 | 如上,直接使用 `find` 命令,`find` 会直接列出当前文件夹的全部文件和目录。如果你需要搜索特定的目录,只需要将此目录作为选项加到 `find` 命令的后面(如第二个命令,你一般会遇到报错信息,如果你要搜索 `~` 以外的目录,有时候需要使用 root 权限来访问某些权限受限文件夹。)。第三个样例使用了 `-ls` 的选项(它的效果类似于 `$ ls -l`)。 74 | 75 | #### 通过名称查找文件 76 | 77 | 要使用名称来查找文件,你需要使用 `-name` 和 `-iname` 选项。命令只搜索文件的基本名称,默认不会搜索目录的名称。为了使搜索更加灵活,你还可以使用元字符(如 * 和 ? 等字符)来帮助你进行模糊搜索。如下: 78 | 79 | ``` 80 | [bh@c004-v1 ~]$ sudo find /etc -name passwd 81 | /etc/pam.d/passwd 82 | /etc/passwd 83 | [bh@c004-v1 ~]$ sudo find /etc -iname '*passwd*' 84 | /etc/pam.d/passwd 85 | /etc/security/opasswd 86 | /etc/passwd- 87 | /etc/passwdqc.conf 88 | /etc/passwd 89 | ``` 90 | 91 | 如上,第一个使用 `-name` 选项,不带星号的命令会精准匹配 `/etc` 目录下所有名为 `passwd` 的文件。第二个使用 `-iname` 选项,带有星号的命令会匹配所有带有 `passwd` 字符串(不区分大小写)的文件。 92 | 93 | - 注意,`find` 命令默认的起始搜索位置是你的工作目录(`$PWD`)。要搜索其他目录,你需要为 `find` 设置一个路径参数。 94 | 95 | #### 通过大小查找文件 96 | 97 | 你可以使用 `-size` 选项查询特定大小的文件。 98 | 99 | ``` 100 | # find /usr/share -size +10M 101 | $ find $HOME -size +20M -size -50M 102 | ``` 103 | 104 | 如上,第一个命令用去查找 `/usr/share` 文件夹中大小大于 10MB 的文件。第二个命令用于查询用户目录下,大小介于 20MB 和 50MB 之间的文件。 105 | 106 | #### 通过用户名查找文件 107 | 108 | 你可以使用 `-user` 和 `-group` 选项查询归属于特定用户和特定用户组的文件。通过使用 `-not`(非) 和 `-or`(或),你可以优化与特定用户和组关联的文件的搜索,如下: 109 | 110 | ``` 111 | $ find $HOME -not -user $USER -ls 112 | # find /usr -user $USER -ls 113 | # find /var/spool -not -group root -ls 114 | ``` 115 | 116 | 如上,第一个例子用于查找 `$HOME` 目录下不属于 `$USER` 用户的文件。第二个命令用户查找 `/etc` 下属于 `$USER` 用户的文件。第三个命令用户查找 `/var/spool` 下不属于 `root` 用户组的文件。 117 | 118 | #### 通过权限查找文件 119 | 120 | 你可以使用 `-perm` 选项,让 `find` 命令查找符合权限要求的文件。如果使用数字代表权限查找文件,在数字前加上连字符(`-`),表示的三个位都必须匹配;数字前面有斜杠(`/`),表示任何一个数字都可以匹配,以便搜索找到一个文件。如果既不使用连字符,也不使用斜杠,则表示完整的、精确的数字必须匹配。 121 | 122 | ``` 123 | $ find /usr/bin -perm 755 -ls 124 | $ find $HOME -perm -222 -type d -ls 125 | $ find ~ -perm /222 -type f 126 | $ find ~ -perm -002 -type f -ls 127 | ``` 128 | 129 | 如上,第一个例子中,`find` 会**精准匹配**任何具有 `rwxr-xr-x` 权限的文件或文件夹。第二个例子中,`find` 会匹配对于文件所有者、文件所属组**和**其他用户均具有写入权限的文件夹;`-type` 选项用于表示查找文件 `f` 或文件夹 `d`,如果不声明该选项,则 `find` 会同时查找文件夹和文件。 130 | 131 | 第三个例子中,`find` 会匹配对于文件所有者、文件所属组**或**其他用户具有写入权限的文件。第四个例子中,`find` 会匹配对于其他用户具有写入权限的文件。 132 | 133 | #### 通过日期和时间查找文件 134 | 135 | 每当创建、访问、修改和修改元数据的时候,文件的日期和时间戳都会变更。 136 | 137 | ``` 138 | $ find /etc/ -mmin -10 139 | $ find /bin /usr/bin /sbin /usr/sbin -ctime -3 140 | $ find /var/ftp /var/www -atime +300 141 | ``` 142 | 143 | 如上,第一个例子中,`find` 会查找 `/etc` 目录下过去十分钟发生变更的文件。第二个例子中,`find` 会搜索系统以查看在过去三天内是否有任何命令的所有权或权限发生了更改。第三个例子中,`find` 会在 FTP 服务器 (`/var/ftp`) 和 Web 服务器 (`/var/www`) 中查找超过 300 天未访问的文件,以便查看是否需要删除。 144 | 145 | time 选项(`-atime`、`-ctime` 和 `-mtime`)使你能够根据每个文件被访问(accesse)、更改(change)或元数据更改后(metadata changed)的天数进行搜索。min 选项(`-amin`、`-cmin` 和 `-mmin`)也是相同的用法,不过时间计量单位是分钟。 146 | 147 | #### 使用 not 和 or 进行查找文件 148 | 149 | #### 查找文件然后执行命令 150 | 151 | ### 使用 grep 搜索文件 152 | 153 | `grep` 是另一个常用于检索信息的工具。它可以检索文件包含的信息(而不是只搜索元数据)。 154 | 155 | 搜索时,你可以在屏幕上打印包含该术语的每一行(标准输出),或者仅列出包含该搜索词的文件的名称。默认情况下,`grep` 以区分大小写的方式搜索文本,但你也可以进行不区分大小写的搜索。 156 | 157 | 除了搜索文件,你还可以使用 `grep` 搜索标准输出。因此,如果一个命令输出大量文本,而你只想查找包含特定文本的行,则可以使用 `grep` 来过滤你想要的内容。 158 | 159 | ``` 160 | bh@localhost:~> cat ~/test 161 | Linux 162 | linux 163 | LINUX 164 | GNU/Linux 165 | Fedora 166 | bh@localhost:~> grep Linux ~/test 167 | Linux 168 | GNU/Linux 169 | bh@localhost:~> grep -i Linux ~/test 170 | Linux 171 | linux 172 | LINUX 173 | GNU/Linux 174 | bh@localhost:~> grep -vi linux ~/test 175 | Fedora 176 | ``` 177 | 178 | 如上,使用 `grep` 检索 `~/test` 文件中包含 `Linux` 关键字的行。`-i` 选项可以让 `grep` 忽略大小写,匹配全部结果。`-v` 选项相当于反选,用于检索出不包含关键字的行。 179 | 180 | 要进行递归搜索(recursive searches),请使用 `-r` 选项和被搜索目录作为参数。以下示例包含 `-l` 选项,它仅列出包含搜索文本的文件,而不显示实际的文本行。该搜索会找到包含文本 `peerdns`(不区分大小写)的文件。如下: 181 | 182 | ``` 183 | $ grep -rli peerdns /usr/share/doc/ 184 | ``` 185 | 186 | 下一个示例递归地在 `/etc/sysconfig` 目录中搜索关键字 `root`。它列出了包含该文本的目录下每个文件中的每一行。为了更容易让 `root` 在每一行中更显眼,你可以添加了 `--color` 选项。默认情况下,匹配的关键字显示为红色。 187 | 188 | ``` 189 | $ grep -ri --color root /etc/sysconfig/ 190 | ``` 191 | 192 | 要在命令的输出中搜索某个关键字,可以将输出通过管道(`|`)传递给 `grep` 命令。在此示例中,我知道 IP 地址列在 ip 命令的输出行中,其中包含字符串 `inet`,因此我使用 `grep` 仅显示这些行: 193 | 194 | ``` 195 | $ ip addr show | grep inet 196 | ``` -------------------------------------------------------------------------------- /docs/advanced/shell/base4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "管理运行进程" 3 | comments: true 4 | --- 5 | 6 | # 管理运行进程 7 | 8 | ## 理解进程 9 | 10 | Linux 是一个多用户系统,支持许多程序同时运行。 11 | 12 | 进程(process)是命令的运行实例。例如,系统上可能有一个 `nano` 命令。但如果 `nano` 当前由 15 个不同的用户运行,则该命令由 15 个不同的运行进程表示。 13 | 14 | 每一个的进程都会有一个独一无二的 PID(进程标识符,process ID),Linux 使用 PID 识别进程,并将同一程序的不同进程进行区分。当进程结束后,PID 就会被系统回收,分配给新的进程。 15 | 16 | 除了 PID,一个进程还会具有其他的属性,如,进程所属的用户和用户组,这将决定系统如何为一个进程分配系统资源。管理进程是 Linux 系统管理员的重要技能之一。 17 | 18 | ## 列举进程 19 | 20 | ### 使用 ps 列出进程 21 | 22 | 在命令行界面中,最常用于列出运行进程的命令行工具是 `ps`。使用该命令即可查看正在运行的进程。 23 | 24 | ``` 25 | bh@localhost:~> ps u 26 | USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 27 | bh 2400 0.0 0.1 9968 6372 pts/1 Ss 15:55 0:00 /bin/bash 28 | bh 2447 100 0.0 10520 3676 pts/1 R+ 15:55 0:00 ps u 29 | ``` 30 | 31 | 如上,`u` 或 `-u` 选项用于显示用户名和其他信息,如进程开始的时间、与归属于当前用户的进程的 CPU 和内存使用情况。上述显示的进程均和当前的终端(`tty1`)关联在一起。在图形化界面未发明之前,人们都是通过字符终端控制系统,一个终端通常就代表一个用户。如今,通过在桌面上打开多个虚拟终端或终端窗口,你可以在一个屏幕上拥有多个“终端”。如上终端设备 `tty1` 正在用于登录会话。 32 | 33 | `USER` 列显示了启动该进程的用户名。`PID` 列显示进程的 PID。你可以通过将 PID 作为参数指定进程管理命令对使用该 PID 的进程发送相关的信号(如,重启、结束或挂起)。`%CPU` 和 `%MEM` 列显示了进程使用的 CPU 资源和 RAM 资源(按百分比计算)。 34 | 35 | `VSZ`(虚拟集大小)显示图像进程(image process)的大小(以千字节 kb 为单位),`RSS`(驻留集大小)显示进程占用物理内存的大小。`VSZ` 和 `RSS` 的大小可能不同,因为 `VSZ` 是为进程分配的内存量,而 `RSS` 是实际使用的内存量。`RSS` 内存表示不能交换的物理内存。 36 | 37 | `STAT` 列代表了进程的状态,`R` 表示正在运行,`S` 表示该进程已经睡眠。`START` 显示了进程开始运行的时间,`TIME` 显示进程累积使用的系统时间(许多命令消耗的 CPU 时间非常短暂,所以 TIME 为 00:00)。 38 | 39 | 除了以上的这些进程,Linux 系统还有很多不关联终端的进程。这些在后台运行的进程处理着大量事务(比如发现新设备、启动时唤醒图形界面和管理系统资源)。它们随着系统的启动而运行,随着系统关闭或用户注销(部分后台进程不会因为用户注销而停止)而停止。 40 | 41 | 要以当前用户的身份查看 Linux 系统上运行的所有进程,键入: 42 | 43 | ``` 44 | $ ps ux | less 45 | ``` 46 | 47 | 要查看所有的进程,键入: 48 | 49 | ``` 50 | $ ps aux | less 51 | ``` 52 | 53 | 你可以使用 `-o` 选项和 `--sort` 选项对 ps 的输出结果进行修改和排序。如: 54 | 55 | ``` 56 | bh@localhost:~> ps -eo pid,user,uid,group,gid,vsz,rss,comm | less 57 | PID USER UID GROUP GID VSZ RSS COMMAND 58 | 1 root 0 root 0 167048 14080 systemd 59 | 2 root 0 root 0 0 0 kthreadd 60 | 3 root 0 root 0 0 0 rcu_gp 61 | 4 root 0 root 0 0 0 rcu_par_gp 62 | 6 root 0 root 0 0 0 kworker/0:0H-events_highpri 63 | ... ... 64 | bh@localhost:~> ps -eo pid,user,group,gid,vsz,rss,comm --sort=-vsz | head 65 | PID USER GROUP GID VSZ RSS COMMAND 66 | 1543 bh bh 1000 268746444 32796 baloo_file 67 | 1773 bh bh 1000 25530864 191624 cfw 68 | 1577 bh bh 1000 21425924 152472 cfw 69 | ... ... 70 | ``` 71 | 72 | 如上,`-e` 选项能列出全部的进程,`--sort=-vsz` 选项将输出按 `VSZ` 进行降序排列。 73 | 74 | 是不是看着很繁琐,且你无法查看实时运行情况? 75 | 76 | ### 使用 top 列出和更改进程 77 | 78 | `top` 也是一个常用的命令,用于实时查看进程和系统概况: 79 | 80 | ![TOP](./assets/top.png) 81 | 82 | `top` 命令默认根据进程消耗的 CPU 资源(`%CPU`)进行排序。在发现异常进程后,你可以使用 `top` 终止进程(`kill`)或者重新设定进程优先级(`renice`)。 83 | 84 | 如果你希望能够终止或取消任何进程,则需要以 root 用户身份运行 top。如果你只想显示进程并可能终止或更改你自己的进程,你可以普通用户的身份执行此操作。 85 | 86 | 有关系统的概况显示在 `top` 输出的顶部,然后是有关每个正在运行的进程的信息(或至少与屏幕上显示的一样多)。你可以使用 `top` 查看系统运行了多长时间,当前有多少用户登录到系统,以及过去 1、5 和 10 分钟的系统平均负载。其他概况信息包括当前正在运行的进程(任务)数量、正在使用的 CPU 数量以及可用和正在使用的 RAM 和 SWAP 空间。 87 | 88 | 概况信息的下方是进程列表,该列表按每个进程使用的 CPU 百分比排序。默认情况下,所有这些信息每 5 秒重新刷新一次。按 h 键查看帮助选项,然后按 q 或 Esc 键返回 `top` 输出界面。 89 | 90 | 按下 k 键,然后输入进程的 PID 即可杀死(强制终止)该进程。 91 | 92 | ### 使用 Htop 列出进程 93 | 94 | `htop` 是一个类似 `top` 的进程管理器,支持使用鼠标控制进程。 95 | 96 | ![htop](./assets/htop.png) 97 | 98 | - 在 openSUSE 上安装 `htop`:`$ sudo zypper in htop` 99 | - 在 Fedora 上安装 `htop`:`$ sudo dnf in htop` 100 | 101 | 要启动 htop,只需要输入命令:`htop` 即可。 102 | 103 | 你可以使用鼠标点击选中某个进程,然后再点击底栏的按钮(如 `Nice -`、`Nice +` 或 `Kill`)对进程进行管理。要退出 `htop`,点击底栏最右侧的 `Quit` 或按 q 键退出。 104 | 105 | ### 使用系统监视器列出进程 106 | 107 | 每个桌面环境都有一个图形化系统监视器用于管理进程。 KDE 桌面默认使用 `plasma-systemmonitor`,xfce4 桌面默认使用 `xfce4-taskmanager`,gnome 桌面环境默认使用 `gnome-system-monitor`。 108 | 109 | 以 `plasma-systemmonitor` 为例,打开该应用程序,在左侧点击**进程**,进入进程页面。你可以点击顶栏,将进程按照某一要求(如进程名,内存使用量)进行升序或降序排序。然后鼠标右键点击你要控制的进程,然后**发送信号**(如待机、挂起或强制终止等)至进程。 110 | 111 | ## 管理后台和前台进程 112 | 113 | 在图形化界面中,你可以同时运行多个程序,然后在它们之间不断切换。在命令行界面中,你所看到的似乎就是你所运行的全部程序。 114 | 115 | 虽然 shell 不能让你同时运行多个程序,但允许你把活跃的进程移动至后台或前台。这样你就能同时运行多个程序,并处理其中的一个活动进程。 116 | 117 | ### 运行后台进程 118 | 119 | 要将进程放至到后台,你可以在命令运行的时候,按下快捷键 `Ctrl + Z` 或在输入的命令末尾加上 `&`,如: 120 | 121 | ``` 122 | bh@localhost:~> find ~ > ~/filelist & 123 | [3] 8855 124 | ``` 125 | 126 | 如上,该命令会将你用户目录(`$HOME`)下的所有文件都打印出来,然后导入到 同一目录的 `filelist` 纯文本文件中,该命令是在后台运行。在将进程放至后台时,你可以同时看到和该进程相关的 job 值(`[3]`)和进程 ID(`8855`)。要查看当前后台运行的进程,请输入 `jobs`: 127 | 128 | ``` 129 | bh@localhost:~> jobs 130 | [1]- 已停止 sudo zypper ref 131 | [2]+ 已停止 htop 132 | [3] 已完成 find ~ > ~/filelist 133 | ``` 134 | 135 | 如上,第一个进程(Job 1)是一个刷新元数据的进程,第二个进程是 `htop`,第三个进程则是刚刚放至后台的 `find`。 136 | 137 | 紧随 job 数字后加号 (+) 表示它最近被放置在后台中,减号 (-) 表明它在最近的后台进程被放置到后台之前就已经被放置在后台。前两个任务因为都需要终端的输入,所以它们无法在后台运行,只能进入`已停止`的状态,直到用户将它们切换到前台。第三个命令由于不需要终端的输入,所以它在完成任务后,会自动退出(并显示`已完成`)。 138 | 139 | ### 将命令切换到前台 140 | 141 | 你可以使用 `fg` 命令将特定的进程切换到前台,如上文的中例子,要将第二个进程切换到前台,你可以输入:`$ fg 2`。 142 | 143 | ## 强制终止和调整优先级 144 | 145 | ### 使用 kill 和 killall 终止进程 146 | 147 | 你可以使用 `kill` 或 `killall` 向特定的进程发送一个终止信号(signal)。 148 | 149 | 在使用 `ps` 或 `top` 之类的命令确定你要终止的进程后,你可以使用 `kill` 和该进程的 PID 来结束此进程。例如: 150 | 151 | ``` 152 | [bh@c004-v1 ~]$ ps 153 | PID TTY TIME CMD 154 | 2225 pts/0 00:00:00 bash 155 | 2257 pts/0 00:00:00 htop 156 | 2299 pts/0 00:00:00 ps 157 | [bh@c004-v1 ~]$ kill 2257 158 | ``` 159 | 160 | 除了用于告诉进程中止的信号外,还有其他可用于告诉进程重新读取配置文件、暂停或挂起后继续的信号。信号用数字和名称表示,最为常见的信号包括 `SIGKILL (9)`、`SIGTERM (15)` 和 `SIGHUP (1)`。默认的信号是用于完全中止进程的 `SIGTERM`。`SIGKILL` 可用于完全中止进程;`SIGHUP` 可用于让进程重新读取配置文件;`SIGSTOP` 可用于暂停进程;`SIGCONT` 可用于继续运行已暂停的进程。 161 | 162 | 不同的进程对于信号的反应是不一样,但进程都无法屏蔽 `SIGKILL` 和 `SIGSTOP` 信号。一些信号的样例如下所示(键入 `$ man 7 signal` 获取更多信息): 163 | 164 | |信号|数字|描述| 165 | |---|---|---| 166 | |SIGHUP|1|检测到控制终端挂起或控制进程中止。| 167 | |SIGINT|2|从键盘中断。| 168 | |SIGQUIT|3|退出键盘。| 169 | |SIGABRT|6|来自 abort(3) 的中止信号。| 170 | |SIGKILL|9|中止信号。| 171 | |SIGTERM|15|终止信号。| 172 | |SIGCONT|19,18,25|如果暂停则继续| 173 | |SIGSTOP|17,19,23|暂停进程| 174 | 175 | 注意,由于架构的差异,`SIGCONT` 和 `SIGSTOP` 具有不同的值,第一个值适用于 Alpha 和 SPARC 架构,第二个值适用于 x86 和 Power 架构,第三个值适用于 MIPS 架构。 176 | 177 | ``` 178 | $ kill 2257 179 | $ kill -15 2257 180 | $ kill -SIGKILL 2257 181 | ``` 182 | 183 | 紧接上文的例子,`kill` 命令默认发送的信号是 `SIGTERM (15)`。你可以使用 `-` 和数字或者信号名称改变 `kill` 命令发送的信号。另一个有用的信号是 `SIGHUP (1)`,你可以使用此命令在某程序崩溃时,让该程序重新读取配置文件并重启,如重启 gnome-shell: 184 | 185 | ``` 186 | # kill -1 1833 #此处假定 gnome-shell 的 PID 是 1833。 187 | # killall -HUP gnome-shell 188 | ``` 189 | 190 | `killall` 命令和 `kill` 类似。不同之处在于,`killall` 允许你使用进程名字作为命令参数,向匹配关键字的进程发送信号。缺点是,这会杀死所有同名的进程,并误伤正常运行的进程。 191 | 192 | ### 使用 nice 和 renice 设置进程优先级 193 | 194 | Linux Kernel 的一项工作是将计算机资源(CPU、RAM)分配给各个进程,而各个进程所能获得资源由 `nice` 值决定。每一个进程都有 nice 值,其取值范围是 -20 至 19,默认值是 0。 195 | 196 | - nice 值越小,进程能获得 CPU 资源就越多。 197 | - 普通用户只能将 nice 设置为 0~19 之间的数值,不能设置为负值。 198 | - 普通用户只能将 nice 值设置为更高的值,负值和比原始值更低的 nice 值是不允许的操作。 199 | - 普通用户只能调整属于他自己的进程的 nice 值。 200 | - root 用户或系统管理员(`wheel` 用户组成员)不受以上限制。 201 | 202 | 你可以使用 `nice` 为一个进程设定 nice 值,然后使用 `renice` 重新设置该进程的 nice 值。注意,如上所述,你可能需要管理员权限才能运行这两个命令。 203 | 204 | ``` 205 | # nice -n +5 updatedb & 206 | # renice -n -5 20284 207 | ``` 208 | 209 | 如上,要将 `updatedb` 的 nice 值设置为 5,你需要使用 `-n` 选项,将 `+5` 作为参数。要将 `updatedb` 的 nice 值调整为 -5,你需要使用 `-n` 选项,将 `-5` 作为参数。然后你就在 `top` 命令中看到 `updatedb` 进程(因为它具有很高的优先级)。 210 | 211 | - `updatedb` 命令用于收集文件系统的文件名生成供 `locate` 命令使用的数据库文件。 212 | 213 | ## 使用 cgroup 限制进程 214 | 215 | > cgroup 知识属于系统管理员的范围,以下内容仅作了解内容。 216 | 217 | `nice` 命令只能设置单一进程的优先级,而 Linux 系统或应用程序要正常运作是由大量进程所组成的。所以此时你需要使用 `cgroup` 命令。 218 | 219 | Cgroups 可用于将进程标识为属于特定的控制组的任务。你可以设置具有层次结构的任务 (Tasks),例如,可能有一个称为守护进程的任务,它为所有守护进程服务器的进程设置默认限制,然后是子任务 (subtasks),可以为 FTP 服务守护进程 (`vsftpd`) 的 Web 服务器守护进程 (`httpd`) 设置特定限制。 220 | 221 | 当一个任务启动一个进程时,初始进程启动的其他进程(称为子进程)会继承父进程具有的限制。这些限制可能表明控制组中的所有进程只能访问特定的处理器和某些 RAM 集,或者他们可能只允许访问最多 30% 的机器总处理能力。 222 | 223 | cgroup 可以设置限制的资源类型如下: 224 | 225 | - 储存(`blkio`):限制对存储设备(如硬盘、USB 驱动器等)的总输入和输出访问。 226 | - 处理器调度(`cpu`):指定一个 cgroup 任务的访问量,以安排处理能力。 227 | - 进程会计(`cpuacct`):CPU 使用情况报告。可以利用此信息向客户收取他们使用的处理能力的费用。 228 | - CPU 分配(`cpuset`):在具有多个 CPU 内核的系统上,将任务分配给一组特定的处理器和相关的内存。 229 | - 设备访问(`devices`):允许 cgroup 中的任务打开或创建 (mknod) 选定的设备类型。 230 | - 暂停/恢复(`freezer`):暂停或恢复 cgroup 任务。 231 | - 内存使用(`memory`):按任务限制内存使用。它还创建有关使用的内存资源的报告。 232 | - 网络带宽(`net_cls`):限制对选定 cgroup 任务的网络访问。这是通过标记网络数据包来识别发起数据包的 cgroup 任务并让 Linux 流量控制器监控和限制来自每个 cgroup 的数据包来完成的。 233 | - 网络流量(`net_prio`):设置来自选定 cgroup 的网络流量的优先级,并允许管理员动态更改这些优先级。 234 | - 名字空间(`ns`):将 cgroup 分隔为名字空间,因此一个 cgroup 中的进程只能看到与该 cgroup 关联的名字空间。命名空间可以包括单独的进程表、挂载表和网络接口。 235 | 236 | 有关于 cgroup 更深入的内容,详见: 237 | 238 | - [Red Hat Enterprise Linux Resource Management and Linux Containers Guide](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/resource_management_guide/index) 239 | - 内核文档:`/usr/share/doc/kernel-doc-*/Documentation/cgroups`(你需要先安装 `kernel-doc` 以获取这些文档。) -------------------------------------------------------------------------------- /docs/advanced/shell/base5.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "编写简单的 Shell 脚本" 3 | comments: true 4 | --- 5 | 6 | # 编写简单的 Shell 脚本 7 | 8 | Shell 脚本(Shell Script) 脚本提供了一个非常便捷地完成许多图形化界面无法完成的任务的方式。它本质是由许多命令和逻辑语法组合而成,后缀通常为 `.sh` 的纯文本文件。你可以使用任意的文本编辑器打开 shell 脚本,并编辑或保存内容。 9 | 10 | 以下是一个简单的 shell 脚本样例: 11 | 12 | ```shell 13 | bh@c004-h0:~> cat example.sh 14 | #!/bin/sh 15 | # 打印下列行: 16 | echo "Hello World!" 17 | ``` 18 | 19 | 所有的脚本都以 `#!` 符号([Shebang](https://zh.wikipedia.org/wiki/Shebang))开头,表明这是一个 shell 脚本。而紧随其后的 `/bin/sh` 则是脚本指定的解释器。 20 | 21 | 第二行是注释,shell 在执行脚本时,会自动忽略所有以 `#` 符号开头的行。注释有助于帮助阅读者快速了解这个脚本的功能或者其他内容。 22 | 23 | 第三方则是命令,`echo` 会将 `Hello World` 打印在终端输出之中。 24 | 25 | 在运行脚本之前,你需要完成以下几件事: 26 | 27 | 1. 每个脚本必须包含 Shebang 符号,如果你没有输入该行,则需要手动指定运行脚本的程序。 28 | 2. 你可以将脚本保存到任意位置,但为了使用方便,建议将脚本存放到你的 `$PATH` 变量包含的文件夹中,这样当你登陆 shell 会话时,shell 就能直接检索到你需要使用的脚本。 29 | 3. 为脚本赋予可执行权限,否则你需要 `sudo` 权限才能运行脚本: 30 | ``` 31 | $ chmod +x ~/exmaple.sh #为该脚本添加可执行权限 32 | ``` 33 | 34 | 要执行脚本,你可以使用相对或绝对路径来执行脚本。在本例中,如下: 35 | 36 | ``` 37 | bh@c004-h0:~> ./example.sh 38 | Hello World! 39 | bh@c004-h0:~> cd /; ./home/bh/example.sh 40 | Hello World! 41 | ``` 42 | 43 | 如果你将文件存放到 `$PATH` 变量包含的文件夹中,你只需要输入文件名即可运行脚本: 44 | 45 | ``` 46 | bh@c004-h0:~> echo $PATH 47 | /home/bh/.local/bin:/usr/local/bin:/usr/bin:/bin 48 | bh@c004-h0:~> mv example.sh ~/.local/bin 49 | bh@c004-h0:~> example.sh 50 | Hello World! 51 | ``` 52 | 53 | ## 扩展你的脚本 54 | 55 | 在 shell 脚本中,你可以使用你在终端中能够使用的一切命令,元符号或各种组合方法等前文提到的有关于终端的知识。 56 | 57 | ### 使用简单的流结构 58 | 59 | #### if 命令 60 | 61 | 你可以使用 `while`、`if`、`for` 和 `case` 控制你的脚本的流结构(flow constructs)。 62 | 63 | `if` 命令用于检查表达式,如下: 64 | 65 | ```shell 66 | #!/bin/sh 67 | if test $USER = "bh" ; then 68 | #检查条件,检查当前用户是否是 `bh` 69 | echo "Hello bh." 70 | #如果是则打印上述内容 71 | else 72 | #表示或者,or 73 | echo "You are not bh." 74 | #如果不符合条件,则打印上述内容 75 | fi 76 | #脚本在此结束 77 | ``` 78 | 79 | 表达式可以复杂或简单,更多内容详见[此处](https://bash.cyberciti.biz/guide/If..else..fi)。 80 | 81 | #### for 命令 82 | 83 | for 循环允许你对条目列表执行命令。例如,下面的代码打印了当前目录中 PNG 文件的一些信息: 84 | 85 | ```shell 86 | #!/bin/sh 87 | for i in *.png; do 88 | ls -l $i 89 | done 90 | ``` 91 | 92 | ## 更多信息 93 | 94 | 你可以使用 `$ man bash` 命令查询更多的帮助或文档信息。或者点击下列链接深入阅读香港的内容。 95 | 96 | - [Bash Guide for Beginners](http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html) 97 | - [BASH Programming - Introduction HOW-TO](http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html) 98 | - [Advanced Bash-Scripting Guide](http://tldp.org/LDP/abs/html/index.html) 99 | - [Sh - the Bourne Shell](http://www.grymoire.com/Unix/Sh.html) -------------------------------------------------------------------------------- /docs/advanced/shell/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "概述" 3 | comments: true 4 | --- 5 | 6 | # 关于本节内容 7 | 8 | 不论你使用的是哪种发行版,你总是会面对使用 Shell 控制系统的时候。本文将描述如何使用命令行界面控制系统。同时建议在配置系统前,先大致浏览一下本节。 9 | 10 | 注意: 11 | 12 | - 在此感谢 [Christopher Negus](https://www.wiley.com/en-us/search?pq=%7Crelevance%7Cauthor%3AChristopher+Negus) 先生所写的《[Linux Bible, 10th Edition](https://www.wiley.com/en-us/Linux+Bible%2C+10th+Edition-p-9781119578895)》,此节(使用命令行)也是基于此书所成。 13 | - 在终端中使用的命令普遍情况下不包含中文标点符号。 14 | - 和命令行有关的文章建议阅读至少两遍(因为很多内容是前后关联的,只看一遍你是无法完全看懂的全部内容。)。 15 | - 多实践,别只沉浸于理论知识。 -------------------------------------------------------------------------------- /docs/advanced/system-admin/firewall.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 防火墙 3 | comments: true 4 | --- 5 | 6 | ## 简介 7 | 8 | !!! note 9 | 官方文档详见[此处](https://firewalld.org/documentation/)。 10 | 11 | Firewalld 提供了一个动态管理的防火墙,支持使用区域来标识网络连接/接口的可信等级。支持 IPv4、IPv6 防火墙设置、以太网桥接和 IP sets。使用分离的运行时配置和永久设置。也提供了一个接口用来直接为服务或应用添加防火墙规则[^1]。 12 | 13 | ## 准备工作 14 | 15 | 一般而言,openSUSE 和 Fedora 都已经预装了 firewalld。使用下列命令检查 firewalld 的状态: 16 | 17 | ``` 18 | sudo systemctl status firewalld 19 | ``` 20 | 21 | 如果 firewalld 正在运行并开机启动,则会有如下的输出: 22 | 23 | ``` 24 | bh@c004-h0:~> sudo systemctl status firewalld 25 | [sudo] root 的密码: 26 | ● firewalld.service - firewalld - dynamic firewall daemon 27 | Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: disabled) 28 | Active: active (running) since Mon 2022-04-25 17:00:52 CST; 1h 47min ago 29 | Docs: man:firewalld(1) 30 | Main PID: 963 (firewalld) 31 | Tasks: 2 (limit: 4915) 32 | CPU: 535ms 33 | CGroup: /system.slice/firewalld.service 34 | └─963 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid 35 | 36 | 4月 25 17:00:51 c004-h0 systemd[1]: Starting firewalld - dynamic firewall daemon... 37 | 4月 25 17:00:52 c004-h0 systemd[1]: Started firewalld - dynamic firewall daemon. 38 | ``` 39 | 40 | 如上,`Loaded` 中指明文件位置(`/usr/lib/systemd/system/firewalld.service`)的部分后面的 `enabled` 表示 firewalld 已经支持开机启动了。下一行则表示 firewalld 服务正在运行(`active`) 41 | 42 | 你可以使用下列命令启动 firewalld 并启用开机启动: 43 | 44 | ```shell 45 | sudo systemctl enable firewalld --now 46 | #或者 47 | sudo systemctl start firewalld #启动防火墙 48 | sudo systemctl enable firewalld #将防火墙设置为开机启动 49 | ``` 50 | 51 | 要停止运行 firewalld 和禁用 firewalld 开机启动,请使用如下命令: 52 | 53 | ``` 54 | sudo systemctl stop firewalld 55 | sudo systemctl disable firewalld 56 | ``` 57 | 58 | ## 基本概念 59 | 60 | !!! note 61 | 每次你编辑 firewalld 的配置的时候,你都需要重新加载防火墙程序以载入新设置。 62 | 编辑防火墙规则需要管理员权限(root 权限或者 `wheel` 用户组)。 63 | 64 | `firewall-cmd` 是 firewalld 的主要命令行工具。它可以用来获取 firewalld 的状态信息,获取运行时和永久环境的防火墙配置,也可以用来修改这些配置。根据所选择的策略,你需要通过认证才能访问或更改 firewalld 的配置。它只有在 firewalld 运行的情况下才能使用。这个工具也被一些服务用来从使用iptables调用有一个简单的迁移路径。 65 | 66 | 检查防火墙是否正在运行: 67 | 68 | ``` 69 | sudo firewall-cmd --state 70 | ``` 71 | 72 | ### 区域(zone) 73 | 74 | firewalld 将所有的网络数据流量划分为多个区域,再根据数据包的源IP地址或传入网络接口等条件,将数据流量转入相应区域的防火墙规则中。 75 | 76 | !!! note 77 | 下表罗列了 firewalld 默认的区域。用户可以自行创建新的自定义区域。 78 | Fedora Workstation 默认的区域是 `workstation`。 79 | 80 | |名称|描述| 81 | |---|---| 82 | |block|拒绝所有传入的网络连接。只有从系统内部发起的网络连接才可能有效。| 83 | |dmz|隔离区域也称为非军事化区域,为您的局域网提供有限的访问权限,并且只允许选定的传入端口。| 84 | |drop|终止所有传入链接,只允许传出的链接。| 85 | |external|对路由器类型的连接很有用。你需要局域网和广域网的接口来进行伪装(NAT)才能正常工作。| 86 | |home|适用于家庭电脑,如局域网内的笔记本电脑和台式机,您可以信任其他电脑。只允许选定的 TCP/IP 端口| 87 | |internal|用于内部网络,当你几乎信任局域网内的其他服务器或计算机时。| 88 | |public(系统默认值)|适用于始终处于公共区域的云服务器或托管在您处的服务器。您不信任网络上的任何其他计算机和服务器。您只允许使用所需的端口和服务。| 89 | |trusted|允许任何的网络链接。| 90 | |work|适用于您信任您的同事和其他服务器的工作场所。| 91 | 92 | 查看所有区域 93 | 94 | ``` 95 | firewall-cmd --get-zones 96 | ``` 97 | 98 | 查看默认区域 99 | 100 | ``` 101 | firewall-cmd --get-default-zone 102 | ``` 103 | 104 | 当 NetworkManager 添加新的网络联接接口(如 `eth0` 或 `ens3`)时,它们将被连接到默认的区域。通过运行以下命令进行验证: 105 | 106 | !!! note 107 | 你可以使用 `$ ip link show` 命令查看当前所联接的全部网络接口的详细信息。 108 | 109 | ``` 110 | firewall-cmd --get-active-zones 111 | ``` 112 | 113 | ### 服务(services) 114 | 115 | 服务是一个包含了本地端口、协议、源端口、目的地和防火墙帮助模块 (firewall helper modules) 的列表。 116 | 117 | 查询与 public 相关的防火墙规则或服务: 118 | 119 | ``` 120 | sudo firewall-cmd --list-all --zone=public 121 | ``` 122 | 123 | 示例输出如下: 124 | 125 | ``` 126 | public (active) 127 | target: default 128 | icmp-block-inversion: no 129 | interfaces: wlp3s0 130 | sources: 131 | services: dhcpv6-client samba 132 | ports: 133 | protocols: 134 | forward: yes 135 | masquerade: no 136 | forward-ports: 137 | source-ports: 138 | icmp-blocks: 139 | rich rules: 140 | ``` 141 | 142 | 在该查询结果中,默认区域是 `public`,允许的服务是 `dhcpv6-client` 和 `samba`。假设你需要删除 `dhcpv6-client`,那么你应该运行如下指令: 143 | 144 | ``` 145 | $ sudo firewall-cmd --remove-service=dhcpv6-client --zone=public 146 | $ sudo firewall-cmd --reload ## 重载防火墙 147 | #或者使用 sudo systemctl restart firewalld 148 | $ sudo firewall-cmd --list-services ## 列出所有服务 149 | ``` 150 | 151 | 运行下列指令查询特定区域允许的服务列表: 152 | 153 | ``` 154 | $ sudo firewall-cmd --list-services ## 查询当前区域允许的服务 155 | $ sudo firewall-cmd --list-services --zone=* ## 将 * 替换成你所需要查询服务的区域 156 | $ sudo firewall-cmd --list-all-zones ## 查询全部区域的服务或防火墙规则 157 | ``` 158 | 159 | ### 运行时和永久规则 160 | 161 | 如果不加以声明,你对 firewalld 配置更改都是临时性的,当你重新启动系统或 firewalld 时,它们就会消失。这些被称之为运行时规则。 162 | 163 | 你可以在使用 `firewall-cmd` 调整配置时,使用 `--permanent` 选项,将更改设置为永久规则。例如: 164 | 165 | ``` 166 | $ sudo firewall-cmd --zone=public --add-service=http ## 运行时规则 167 | $ sudo firewall-cmd --zone=public --add-service=http --permanent ## 永久规则 168 | $ sudo firewall-cmd --reload ## 重启防火墙让规则生效。 169 | ``` 170 | 171 | 检查规则是否生效: 172 | 173 | ``` 174 | $ sudo firewall-cmd --list-services 175 | $ sudo firewall-cmd --list-services --permanent 176 | ``` 177 | 178 | 查询 firewalld 支持的服务列表: 179 | 180 | ``` 181 | $ sudo firewall-cmd --get-services 182 | ``` 183 | 184 | ### 一些简单规则 185 | 186 | 添加 DNS 服务(TCP/UDP 端口:53,区域为 public,永久性规则): 187 | 188 | ``` 189 | $ sudo firewall-cmd --zone=public --add-service=dns --permanent 190 | ``` 191 | 192 | !!! note 193 | 当 firewalld 的区域是 public 的时候,绝大多数端口是默认禁用的。 194 | 195 | 删除某个服务(例如 VNC 服务器服务,TCP 端口:5900-5903,区域为 public,永久性规则): 196 | 197 | ``` 198 | $ sudo firewall-cmd --zone=public --remove-service=vnc-server --permanent 199 | ``` 200 | 201 | 永久开放特定的端口(TCP/UDP),例如开放 TCP/UDP 端口:55527: 202 | 203 | ``` 204 | $ sudo firewall-cmd --zone=public --add-port=55527/tcp --permanent 205 | $ sudo firewall-cmd --zone=public --add-port=55527/udp --permanent 206 | ``` 207 | 208 | 查看已开放的端口: 209 | 210 | ``` 211 | $ sudo firewall-cmd --zone=public --list-ports 212 | $ sudo firewall-cmd --zone=public --list-ports --permanent 213 | ``` 214 | 215 | 拒绝/禁用特定端口: 216 | 217 | ``` 218 | $ sudo firewall-cmd --zone=public --remove-port=23/tcp 219 | ``` 220 | 221 | ### 图形化前端 222 | 223 | Firewalld 有图形化管理界面。你可以使用下列命令安装: 224 | 225 | ``` 226 | sudo dnf install firewall-config #openSUSE 也有 firewall-config 这个软件包。 227 | ``` 228 | 229 | openSUSE YaST 工具集里面有一个图形化防火墙管理前端(打开 YaST,启动防火墙)。 230 | 231 | [^1]: [Firewalld - ArchLinux Wiki](https://wiki.archlinux.org/title/Firewalld_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)) -------------------------------------------------------------------------------- /docs/advanced/system-admin/images/Nvidia-driver-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/advanced/system-admin/images/Nvidia-driver-list.png -------------------------------------------------------------------------------- /docs/advanced/system-admin/images/proxy-network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/advanced/system-admin/images/proxy-network.png -------------------------------------------------------------------------------- /docs/advanced/system-admin/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "概述" 3 | comments: true 4 | --- 5 | 6 | # 概述 7 | 8 | 本节将讲述在系统安装完成,并登录系统后,首先应该处理的事情。 -------------------------------------------------------------------------------- /docs/advanced/system-admin/nvidia-driver.md: -------------------------------------------------------------------------------- 1 | --- 2 | comments: true 3 | --- 4 | 5 | 6 | # 独显驱动 7 | 8 | !!! Warning 9 | 如果你需要一个稳定良好的游戏体验(针对各种类型的游戏),请使用 Windows 10。 10 | 11 | AMD 的显卡驱动是开源且已经并入内核主线,无需再次手动安装。 12 | 13 | 在安装显卡驱动前,你必须先将系统更新至最新版本。 14 | 15 | ## openSUSE 16 | 17 | !!! warning 18 | 一般地,你需要参考[前文](./setup-proxy.md)配置好代理才能正常从 NVIDIA 源下载适配于 openSUSE 的显卡驱动。 19 | 并不建议直接从 NVIDIA 官网下载驱动文件,手动安装驱动。 20 | 21 | 在 openSUSE 上安装显卡驱动: 22 | 23 | ``` 24 | sudo zypper addrepo --refresh https://download.nvidia.com/opensuse/tumbleweed NVIDIA 25 | ``` 26 | 27 | 运行下列命令,来确定您的显卡型号: 28 | 29 | ``` 30 | sudo lspci | grep VGA 31 | sudo lscpu | grep Arch 32 | ``` 33 | 34 | 或 35 | 36 | ``` 37 | sudo hwinfo --gfxcard | grep Model 38 | sudo hwinfo --arch 39 | ``` 40 | 41 | NVIDIA 为 openSUSE 用户提供了三种显卡驱动: 42 | 43 | ``` 44 | bh@c004-h0:~> zypper se x11-video-* 45 | 正在加载软件源数据... 46 | 正在读取已安装的软件包... 47 | 48 | S | Name | Summary | Type 49 | --+---------------------+---------------------------------------------------------+------- 50 | | x11-video-nvidiaG04 | NVIDIA graphics driver for GeForce 400 series and newer | 软件包 51 | | x11-video-nvidiaG05 | NVIDIA graphics driver for GeForce 600 series and newer | 软件包 52 | | x11-video-nvidiaG06 | NVIDIA graphics driver for GeForce 700 series and newer | 软件包 53 | ``` 54 | 55 | 你需要在 [NVIDIA 的官网](https://www.nvidia.com/Download/index.aspx?lang=en-us)查阅支持你的硬件的驱动型号。在 Product Type 中,将类型选择为 GeForce,然后点击 Product Series 选择框,即可看到所有的 GeForce 显卡系列: 56 | 57 | ![01](./images/Nvidia-driver-list.png) 58 | 59 | 使用新款 NVIDIA 显卡的用户(Geforce 版本号>600,比如 MX450, 630,1080,2060,3090)[支持的型号列表](https://www.nvidia.cn/Download/driverResults.aspx/165210/cn),可以执行下列命令: 60 | 61 | ``` 62 | sudo zypper in x11-video-nvidiaG06 63 | ``` 64 | 65 | 使用老旧 NVIDIA 显卡的用户( Geforce 版本号<600)[支持的型号列表](https://www.nvidia.cn/Download/driverResults.aspx/160312/cn) 66 | 67 | ``` 68 | sudo zypper in x11-video-nvidiaG04 #或者其他型号的驱动也可。 69 | ``` 70 | 71 | 最后,重启电脑,以使用新的显卡驱动。期间,你可能需要[手动导入 MOK 密钥](https://zh.opensuse.org/SDB:NVIDIA_%E9%A9%B1%E5%8A%A8#.E5.AE.89.E5.85.A8.E5.90.AF.E5.8A.A8)。 72 | 73 | 如果要利用 OpenGL 加速,你必须安装一个附加包,选择与驱动程序对应的包: 74 | 75 | ``` 76 | $ zypper se nvidia-glG0* 77 | ``` 78 | 79 | #### 故障排除 80 | 81 | 相关信息详见: 82 | 83 | - [SDB:NVIDIA 驱动](https://zh.opensuse.org/SDB:NVIDIA_%E9%A9%B1%E5%8A%A8) 84 | - [SDB:NVIDIA SUSE Prime](https://zh.opensuse.org/SDB:NVIDIA_SUSE_Prime) 85 | 86 | ## Fedora 87 | 88 | 首先你需要[添加 RPMFusion 软件源](./index.md)。 89 | 90 | 然后检查是否更新至最新状态: 91 | 92 | ``` 93 | sudo dnf update -y #更新后重启 94 | ``` 95 | 96 | 然后安装驱动(针对从 2014 年开始至今发售的 GeForce/Quadro/Tesla 显卡): 97 | 98 | ``` 99 | sudo dnf install akmod-nvidia 100 | ``` 101 | 102 | !!! warining 103 | 请记住在 RPM 事务结束后继续等待,直到完成构建 kmod。在某些系统上,这可能需要长达 5 分钟。 104 | 105 | !!! note 106 | 构建模块后,`modinfo -F version nvidia` 应输出驱动程序的版本,例如 440.64 而不是 modinfo:`ERROR: Module nvidia not found`. 107 | 108 | 安装 CUDA 驱动(可选): 109 | 110 | ``` 111 | sudo dnf install xorg-x11-drv-nvidia-cuda 112 | ``` 113 | 114 | ### 对于老设备 115 | 116 | !!! warining 117 | 请记住在 RPM 事务结束后继续等待,直到完成构建 kmod。在某些系统上,这可能需要长达 5 分钟。 118 | 119 | 针对在 2012 至 2014 期间发售的 NVIDIA Kepler GPU: 120 | 121 | ``` 122 | sudo dnf install xorg-x11-drv-nvidia-470xx akmod-nvidia-470xx 123 | ``` 124 | 125 | CUDA 驱动(可选): 126 | 127 | ``` 128 | sudo dnf install xorg-x11-drv-nvidia-470xx-cuda 129 | ``` 130 | 131 | 针对 2010 年至 2012 年期间发售的 NVIDIA Fermi GPU: 132 | 133 | ``` 134 | sudo dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx 135 | ``` 136 | 137 | CUDA 驱动(可选): 138 | 139 | ``` 140 | sudo dnf install xorg-x11-drv-nvidia-390xx-cuda 141 | ``` 142 | -------------------------------------------------------------------------------- /docs/advanced/system-admin/setup-proxy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 设置网络代理 3 | comments: true 4 | --- 5 | 6 | ## 简述 7 | 8 | ### 什么是网络代理 9 | 10 | ![02](./images/proxy-network.png) 11 | 12 | 所有人都是通过运营商提供的宽带服务接入互联网的,而出于一些原因,运营商必然屏蔽或者对一些网站加以阻断,导致用户无法通过直联访问一些站点(Google)。而用户几乎不可能在没有专线的情况下绕过防火墙直联访问谷歌。此外,还有很多的网站因为和国内用户相距遥远,用户通过直联的访问这些站点,经常会遇到延迟高,加载缓慢的情况。 13 | 14 | 这个时候就需要使用代理工具链接到可以正常访问谷歌服务的服务器。 15 | 16 | ### 为什么需要网络代理 17 | 18 | 因为有难以计数,与 Linux 相关的各类站点(文档、手册、用户论坛或软件源等)被阻断,干扰甚至屏蔽了。你若是想要有一个良好的 Linux 体验,很难绕开配置网络代理这一步。 19 | 20 | 并且相对于 Fedora,openSUSE 用户因为这种网络问题,会遇到的问题会更多。其中最为显著就是后文即将阐述的 NVIDIA 独显驱动程序的安装。 21 | 22 | ### 需要准备什么 23 | 24 | 1. 大致了解一些常用的通用代理工具和它们的使用方法。 25 | 2. 考虑是使用他人搭建的代理服务器还是自行搭建代理服务器。 26 | 3. 在本地系统为其他应用配置代理。 27 | 28 | ## 获取服务 29 | 30 | 如果你有钱有时间,愿意折腾,可以参考下文的社区文档,自行搭建代理服务器。否则你应该考虑购买付费的代理服务,或者查找免费的代理节点。相关的内容(免费节点,机场测评)都可以通过搜索引擎查询关键字获得。这里不再介绍。 31 | 32 | ### 自行搭建网络代理 33 | 34 | !!! note 35 | 除了下面罗列的代理工具以外,还有很多并不广泛流行的代理工具。这里就不一一罗列。 36 | 37 | 此方面的内容请参考相关社区的用户文档和开发者指南: 38 | 39 | - [快速开始 -- v2ray](https://www.v2fly.org/guide/start.html) 40 | * [新 V2Ray 白话文指南](https://guide.v2fly.org/) 41 | * [V2Ray 白话文配置指南](https://toutyrater.github.io/) 42 | - [Trojan Documentation](https://trojan-gfw.github.io/trojan/) 43 | - [Clash Wiki](https://github.com/Dreamacro/clash/wiki) 44 | 45 | ## 获取常用的客户端 46 | 47 | ### v2rayA 48 | 49 | !!! note 50 | v2rayA 是一个易用而强大的,专注于 Linux 的 V2Ray 客户端 51 | 52 | 对于 Fedora 用户,首先需要启用一个第三方 copr 仓库: 53 | 54 | ``` 55 | sudo dnf copr enable zhullyb/v2rayA 56 | ``` 57 | 58 | 然后安装 v2ray-core: 59 | 60 | ``` 61 | sudo dnf install v2ray-core 62 | sudo zypper install v2ray-core 63 | ``` 64 | 65 | 再启动 v2raya 服务: 66 | 67 | ``` 68 | sudo systemctl start v2raya v2ray --now 69 | ``` 70 | 71 | 对于 openSUSE 用户,则需要手动从 [GitHub](https://github.com/v2rayA/v2rayA/releases) 上下载与你的系统相对应的 rpm 软件包(installer_redhat_*.rpm) 72 | 73 | 然后安装软件: 74 | 75 | ``` 76 | sudo rpm -i installer_redhat_*.rpm 77 | ``` 78 | 79 | 后续操作详见: 80 | 81 | - [v2raya - 快速上手](https://v2raya.org/docs/prologue/quick-start/) 82 | - [v2raya - 用户手册](https://v2raya.org/docs/manual/) 83 | - [v2raya - 高级应用](https://v2raya.org/docs/advanced-application/) 84 | 85 | ### Clash For Windows 86 | 87 | Clash 是一个使用 Go 语言编写,基于规则的跨平台代理软件核心程序。 Clash for Windows 是一个流行的图形化 Clash 分支。支持的协议: Vmess, Shadowsocks, Snell , SOCKS5 , ShadowsocksR(在0.11.2版本加入) ​。 88 | 89 | 你首先需要从 [GitHub](https://github.com/Fndroid/clash_for_windows_pkg/releases) 上下载最新发布的 `Clash.for.Windows-*-x64-linux.tar.gz`。 90 | 91 | 然后将下载得到的压缩包解压,打开解压后的文件夹。点击启动名为 `cfw` 的可执行文件即可启动 cfw。 92 | 93 | 有关添加订阅服务的指南详见[此处](https://help.loliloli.live/jiao-cheng/windows/windows)。 94 | 95 | #### flatpak 96 | 97 | !!! note 98 | 并不建议通过 flatpak 安装,因为 flatpak 也时常受到运营商阻断。 99 | 100 | Clash For windows 可通过 flatpak 安装: 101 | 102 | ``` 103 | flatpak install flathub io.github.Fndroid.clash_for_windows 104 | ``` 105 | 106 | ---- 107 | 108 | ## 为本地应用设置代理 109 | 110 | ### 环境变量类 111 | 112 | 环境变量是最原始的方式。理论上讲,所有合格的 Unix 程序都会遵循环境变量,而 YaST、桌面环境的设置中心(如KDE的系统设置)、`/etc/sysconfig/proxy` 配置文件本质上是这种方式。 113 | 114 | 假设,您代理软件支持以下代理方式,并且监听地址是 127.0.0.1 ,socks 监听端口是 1089,HTTP 端口是 8889,那么,sock 代理地址应该为:`socks://127.0.0.1:1089` 115 | 116 | #### 临时环境变量 117 | 118 | ``` 119 | ip=<代理服务器IP>&&port=<代理服务器端口>&&export http_proxy=http://$ip:$port&&export https_proxy=http://$ip:$port 120 | # 例如 ip=127.0.0.1&&port=8889&&export http_proxy=http://$ip:$port&&export https_proxy=http://$ip:$port 121 | ``` 122 | 123 | 取消代理 124 | 125 | ``` 126 | unset http_proxy&&unset https_proxy 127 | ``` 128 | 129 | #### Sysconfig 130 | 131 | 打开 `/etc/sysconfig/proxy` 文件: 132 | 133 | ``` 134 | sudo nano /etc/sysconfig/proxy 135 | ``` 136 | 137 | 在文件中添加下列行: 138 | 139 | ``` 140 | PROXY_ENABLED="yes" 141 | HTTP_PROXY="http://127.0.0.1:8889/" 142 | HTTPS_PROXY="http://127.0.0.1:8889/" 143 | FTP_PROXY="http://127.0.0.1:8889/" 144 | SOCKS_SERVER="socks://127.0.0.1:1089" 145 | SOCKS5_SERVER="socks://127.0.0.1:1089" 146 | ``` 147 | 148 | ### proxychains-ng 149 | 150 | !!! note 151 | 使用 proxychains-ng 和 alias 命令,可以在不修改系统代理配置的情况下,让包管理器使用代理服务。 152 | 153 | 你可以使用 ProxyChains 劫持系统进程,强行代理。 154 | 155 | ProxyChains 是一个 UNIX 程序,它通过预加载的 DLL(dlsym(),LD_PRELOAD)钩住动态链接程序中与网络相关的 libc 函数,并通过 SOCKS4a/5 或 HTTP代理重定向连接。它仅支持 TCP 连接(不支持 UDP、ICMP 等)。实际使用过程中,一些 Java、Go 应用不会遵循 Proxychains。 156 | 157 | ``` 158 | sudo zypper in proxychains-ng 159 | sudo dnf in proxychains-ng 160 | ``` 161 | 162 | 然后编辑配置文件: 163 | 164 | ``` 165 | sudo nano /etc/proxychains.conf 166 | ``` 167 | 168 | 然后在文件的末尾输入代理服务器地址和端口(具体取决于你代理服务的配置,如果你的代理服务软件支持 socks 代理,你可以考虑只填入 socks5 ),例如: 169 | 170 | ``` 171 | quiet_mode 172 | http 127.0.0.1 8889 173 | socks5 127.0.0.1 1089 174 | ``` 175 | 176 | 然后保存并退出文件。 177 | 178 | #### 示例 179 | 180 | 劫持普通程序: 181 | 182 | ```shell 183 | $ proxychains4 <你的命令行> 184 | #例如:proxychains4 wget google.com 185 | ``` 186 | 187 | 劫持需要 Root 权限的程序: 188 | 189 | 在原有的 sudo 命令后,插入 proxychains4 ,例如: 190 | 191 | ``` 192 | sudo proxychains4 zypper ref 193 | ``` 194 | 195 | #### 使用 alias 简化操作 196 | 197 | 在计算机中,`alias` 是各种命令行解释器(shell)中的一个命令,它可以用另一个字符串替换一个单词。它主要用于缩写系统命令,或为常用命令添加默认参数1。`alias` 是一个非常实用的命令。 198 | 199 | 它的常见格式是 200 | 201 | ``` 202 | alias word="command" 203 | ``` 204 | 205 | 为了使得 alias 的命令永久化,你可以在 `.bashrc` 文件中添加别名,这样每当 shell 启动新会话的时候,它就会在自动读取你设置好的别名。 206 | 207 | ``` 208 | nano ~/.bashrc 209 | ``` 210 | 211 | 在 `~/.bashrc` 中添加下列行: 212 | 213 | !!! note 214 | Bash 只检查命令的第一个单词是否有别名,之后的任何单词都不会检查。这意味着在像 `sudo l` 这样的命令中,bash 只检查第一个单词 (sudo) 的别名,忽略 l(`alias l="ls -alF"`)。你可以通过在别名值的末尾添加一个空格来告诉 bash 检查别名之后的下一个单词(即 sudo)。 215 | 216 | ```shell 217 | alias sudo="sudo " 218 | #让 shell 识别 sudo 后面出现的别名 219 | alias pyc="proxychains4" 220 | #更短的命令 221 | alias flatpak="proxychains4 flatpak" 222 | #对 flatpak 使用代理 223 | alias zypper="proxychains4 zypper" 224 | #对 zypper 使用代理 225 | alias dnf="proxychains4 dnf" 226 | #对 dnf 使用代理 227 | ``` 228 | 229 | 然后运行 `source` 命令使新配置生效: 230 | 231 | ``` 232 | source ~/.bashrc 233 | ``` 234 | 235 | 然后打开一个新的终端窗口即可。如果你不需要某些别名,只需要将它们从文件中删除即可。 236 | 237 | ### 浏览器扩展 238 | 239 | Firefox 的设置中有一个单独的网络代理设置,你可以在此处直接指定代理服务器。 240 | 241 | chrome 则需要在终端中启动: 242 | 243 | ```shell 244 | $ google-chrome-stable --proxy-server=http://example.com:proxy_port 245 | #例如 google-chrome-stable --proxy-server=http://127.0.0.1:20171 246 | ``` 247 | 248 | SwitchyOmega 等浏览器插件可为浏览器提供代理服务。你可以在 [chrome](https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif) 和 [Firefox](https://addons.mozilla.org/en-US/firefox/addon/switchyomega/) 的扩展商店里面找到它们。 249 | 250 | ## 其他 251 | 252 | 以下是两个富有实践价值的指南: 253 | 254 | - [Thanks-Mirror](https://github.com/eryajf/Thanks-Mirror) 255 | * 分享的是包管理器直接可用,质量好,速度快的镜像,以及一些其他常用软件,系统镜像的国内镜像。 256 | - [package manager proxy settings](https://github.com/comwrg/package-manager-proxy-settings) 257 | * 记录各个包管理器代理设置坑点。 -------------------------------------------------------------------------------- /docs/advanced/system-admin/systemctl.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 systemctl 管理服务" 3 | comments: true 4 | --- 5 | 6 | ## 简介 7 | 8 | `systemd` 是一个 Linux 系统基础组件的集合,提供了一个系统和服务管理器,运行为 `PID 1` 并负责启动其它程序。其功能包括:支持并行化任务、按需启动守护进程、监视进程、支持快照和系统恢复、维护挂载点和自动挂载点等。 9 | 10 | ## 基本工具 11 | 12 | 监视和控制 systemd 的主要命令是 `systemctl`。该命令可用于查看系统状态和管理系统及服务。详见 `man systemctl`。 13 | 14 | 显示系统状态: 15 | 16 | ``` 17 | $ systemctl status 18 | ``` 19 | 20 | 输出激活(`enable`)的单元: 21 | 22 | ```shell 23 | $ systemctl 24 | #或者 25 | $ systemctl list-units 26 | ``` 27 | 28 | 输出运行失败的单元: 29 | 30 | ``` 31 | $ systemctl --failed 32 | ``` 33 | 34 | 所有可用的单元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 目录(后者优先级更高)。查看所有已安装服务: 35 | 36 | ``` 37 | $ systemctl list-unit-files 38 | ``` 39 | 40 | ### 单元 41 | 42 | 一个单元(`unit`)配置文件可以描述如下内容之一:系统服务(`.service`)、挂载点(`.mount`)、sockets(`.sockets`) 、系统设备(`.device`)、交换分区(`.swap`)、文件路径(`.path`)、启动目标(`.target`)、由 systemd 管理的计时器(`.timer`)。详情参阅 [systemd.unit(5)](https://man.archlinux.org/man/systemd.unit.5)。 43 | 44 | 使用 systemctl 控制单元时,通常需要使用单元文件的全名,包括扩展名(例如 `sshd.service`)。但是有些单元可以在 systemctl 中使用简写方式。 45 | 46 | - 如果无扩展名,systemctl 默认把扩展名当作 `.service`。例如 `netcfg` 和 `netcfg.service` 是等价的。 47 | - 挂载点会自动转化为相应的 `.mount` 单元。例如 `/home` 等价于 `home.mount`。 48 | - 设备会自动转化为相应的 `.device` 单元,所以 `/dev/sda2` 等价于 `dev-sda2.device`。 49 | 50 | !!! note 51 | systemctl命令在 `enable`、`disable` 和 `mask` 子命令中增加了 `--now` 选项,可以实现激活的同时启动服务,取消激活的同时停止服务。 52 | 下面的大部分命令都可以跟多个单元名, 详细信息参见 [systemctl(1)](https://man.archlinux.org/man/systemctl.1)。 53 | 54 | 立即激活单元: 55 | 56 | ``` 57 | # systemctl start <单元> 58 | ``` 59 | 60 | 立即停止单元: 61 | 62 | ``` 63 | # systemctl stop <单元> 64 | ``` 65 | 66 | 重启单元: 67 | 68 | ``` 69 | # systemctl restart <单元> 70 | ``` 71 | 72 | 重新加载配置: 73 | 74 | ``` 75 | # systemctl reload <单元> 76 | ``` 77 | 78 | 输出单元运行状态: 79 | 80 | ``` 81 | $ systemctl status <单元> 82 | ``` 83 | 84 | 检查单元是否配置为自动启动: 85 | 86 | ``` 87 | $ systemctl is-enabled <单元> 88 | ``` 89 | 90 | 开机自动激活单元: 91 | 92 | ``` 93 | # systemctl enable <单元> 94 | ``` 95 | 96 | 设置单元为自动启动并立即启动这个单元: 97 | 98 | ``` 99 | # systemctl enable --now unit 100 | ``` 101 | 102 | 取消开机自动激活单元: 103 | 104 | ``` 105 | # systemctl disable <单元> 106 | ``` 107 | 108 | 禁用一个单元(禁用后,间接启动也是不可能的): 109 | 110 | ``` 111 | # systemctl mask <单元> 112 | ``` 113 | 114 | 取消禁用一个单元: 115 | 116 | ``` 117 | # systemctl unmask <单元> 118 | ``` 119 | 120 | 显示单元的手册页(必须由单元文件提供): 121 | 122 | ``` 123 | # systemctl help <单元> 124 | ``` 125 | 126 | 重新载入 systemd 系统配置,扫描单元文件的变动。注意这里不会重新加载变更的单元文件。参考上面的 reload 示例。 127 | 128 | ``` 129 | # systemctl daemon-reload 130 | ``` 131 | 132 | ## 参考 133 | 134 | - [systemd (简体中文) -- ArchLinux Wiki](https://wiki.archlinux.org/title/Systemd_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)) -------------------------------------------------------------------------------- /docs/advanced/system-admin/update-sys.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "更新系统" 3 | comments: true 4 | --- 5 | 6 | # 更新系统 7 | 8 | **更新系统是完成安装并登录新系统后必须做的第一件事。** 9 | 10 | 建议每周更新一次 openSUSE Tumbleweed 和 Fedora。过高(每日一次)或过低(每月一次)的更新频率是不推荐的。 11 | 12 | ## Fedora 13 | 14 | 登录系统后,直接请直接打开终端: 15 | 16 | ### 调整软件源 17 | 18 | 运行下列指令: 19 | 20 | ``` 21 | [bh@fedora ~]$ sudo dnf repolist 22 | 仓库 id 仓库名称 23 | fedora Fedora 35 - x86_64 24 | fedora-cisco-openh264 Fedora 35 openh264 (From Cisco) - x86_64 25 | fedora-modular Fedora Modular 35 - x86_64 26 | google-chrome google-chrome 27 | phracek-PyCharm Copr repo for PyCharm owned by phracek 28 | rpmfusion-nonfree-nvidia-driver RPM Fusion for Fedora 35 - Nonfree - NVIDIA Driver 29 | rpmfusion-nonfree-steam RPM Fusion for Fedora 35 - Nonfree - Steam 30 | updates Fedora 35 - x86_64 - Updates 31 | updates-modular Fedora Modular 35 - x86_64 - Updates 32 | ``` 33 | 34 | 然后你就会看到两列文字,左边是仓库/软件源的名字,右边是仓库的描述。使用以下命令禁用多余的仓库: 35 | 36 | ``` 37 | sudo dnf config-manager --set-disabled fedora-cisco-openh264 38 | ``` 39 | ``` 40 | sudo dnf config-manager --set-disabled phracek-PyCharm 41 | ``` 42 | ``` 43 | sudo dnf config-manager --set-disabled rpmfusion-nonfree-nvidia-driver 44 | ``` 45 | ``` 46 | sudo dnf config-manager --set-disabled rpmfusion-nonfree-steam 47 | ``` 48 | 49 | 如果你不需要使用 Chrome 浏览器,也可以将 `google-chrome` 源禁用。然后再次运行 `$ sudo dnf repolist`,如下: 50 | 51 | ``` 52 | [bh@fedora ~]$ sudo dnf repolist 53 | 仓库 id 仓库名称 54 | fedora Fedora 35 - x86_64 55 | fedora-modular Fedora Modular 35 - x86_64 56 | updates Fedora 35 - x86_64 - Updates 57 | updates-modular Fedora Modular 35 - x86_64 - Updates 58 | ``` 59 | 60 | **请确保至少启用以上四个基础仓库**(请不要禁用 update 类别的软件源)。然后添加完整版的 rpmfusion: 61 | 62 | !!! note 63 | rpmfusion 提供了大量 Fedora 或 RHEL 官方仓库不能提供的软件包(版权受限或许可证受限),如多媒体解码器、NVIDIA 显卡驱动和其他不符合 Fedora 官方仓库要求规范的软件包。 64 | 65 | ``` 66 | sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm 67 | ``` 68 | 69 | 然后更新系统 70 | 71 | ``` 72 | $ sudo dnf check-update #检查可用的更新 73 | $ sudo dnf up -y #自动确认更新 74 | $ reboot #更新完成后,记得重启系统 75 | ``` 76 | 77 | Fedora 不需要特意去使用镜像站,如果你遇到下载缓慢的情况,请先检查网络连接是否通畅或者清空缓存文件让 dnf 重新生成缓存。 78 | 79 | ``` 80 | sudo dnf clean all; sudo dnf check-update #删除全部缓存文件并重新检查可用的更新。 81 | ``` 82 | 83 | ## openSUSE 84 | 85 | 打开 Konsole,运行下列命令: 86 | 87 | ``` 88 | sudo systemctl disable packagekit.service --now #屏蔽 Packagekit 服务 89 | ``` 90 | 91 | 然后禁用全部的软件源: 92 | 93 | !!! note 94 | - 关于为什么要禁用官方源: 95 | 因为 openSUSE 在更新系统的时候,会先访问 openSUSE 的主软件源来下载缓存数据。而 openSUSE 的主源位于欧洲。因此中国大陆的用户能不能正常访问 openSUSE 主源是很大的问题。后面添加 NVIDIA 软件源的时候,我们会要求中国大陆用户使用代理加速下载驱动。如果不变更软件源,则更系统时 zypper 会根据你的代理 IP 给你指定一些更慢的软件源。而 fedora 没有这种问题,因为 fedora 会将一份镜像站列表放在用户的系统中,让用户自行选择下载服务器。 96 | - 关于为什么不使用 update 源: 97 | Tumbleweed 的更新频率很高,而且 update 源是用于推送紧急安全补丁,平时没有什么内容。整体来说用处不大而且国内的镜像站均不支持 update 源,新安全补丁很快就会在新的快照中发布。 98 | 99 | ``` 100 | sudo zypper mr -da 101 | ``` 102 | 103 | 然后添加镜像源: 104 | 105 | ``` 106 | sudo zypper ar -fcg 'https://opentuna.cn/opensuse/tumbleweed/repo/oss/' 'OPEN-TUNA:TW:OSS' 107 | ``` 108 | ``` 109 | sudo zypper ar -fcg 'https://opentuna.cn/opensuse/tumbleweed/repo/non-oss/' 'OPEN-TUNA:TW:NON-OSS' 110 | ``` 111 | 112 | 刷新软件源: 113 | 114 | ``` 115 | sudo zypper ref 116 | ``` 117 | 118 | 更新系统: 119 | 120 | ``` 121 | sudo zypper dup -y 122 | ``` 123 | 124 | 在 Tumbleweed 更新系统完成后,请重启电脑。 125 | 126 | ## 多媒体解码器 127 | 128 | 为了正常使用多媒体应用程序,你需要安装完整的多媒体解码器。 129 | 130 | ### Fedora 131 | 132 | !!! note 133 | 安装多媒体解码器前,请确保已经启用了 RPMFusion 134 | 135 | 安装多媒体解码器: 136 | 137 | ``` 138 | sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel 139 | ``` 140 | ``` 141 | sudo dnf install lame\* --exclude=lame-devel 142 | ``` 143 | ``` 144 | sudo dnf group upgrade --with-optional Multimedia 145 | ``` 146 | 147 | ### openSUSE 148 | 149 | 添加 Packman 源: 150 | 151 | ``` 152 | sudo zypper ar -cfp 90 https://mirrors.ustc.edu.cn/packman/suse/openSUSE_Tumbleweed/ packman 153 | ``` 154 | !!! note 155 | 如果你不使用 [vlc](https://www.videolan.org/vlc/) 作为多媒体播放器,你可以删除第三条命令末尾的 `vlc-codecs`。 156 | 157 | 更新并安装多媒体解码器: 158 | 159 | ``` 160 | sudo zypper refresh 161 | ``` 162 | ``` 163 | sudo zypper dist-upgrade --from packman --allow-vendor-change 164 | ``` 165 | ``` 166 | sudo zypper install --from packman ffmpeg gstreamer-plugins-{good,bad,ugly,libav} libavcodec-full vlc-codecs 167 | ``` -------------------------------------------------------------------------------- /docs/entry/desktop/apps-gui.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "安装软件(图形化界面)" 3 | comments: true 4 | --- 5 | 6 | # 安装软件 7 | 8 | 本文只描述如何使用图形化界面(软件商店和图形化包管理器)安装软件。 9 | 10 | ## 通过 Gnome Software 11 | 12 | ## 通过 KDE Discover 13 | 14 | ## 通过 Dnfdragora 15 | 16 | ## 通过 YaST Software Management -------------------------------------------------------------------------------- /docs/entry/desktop/assets/Plasma-launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/desktop/assets/Plasma-launcher.png -------------------------------------------------------------------------------- /docs/entry/desktop/general.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 总而言之 3 | --- 4 | 5 | -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/completed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/completed.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/efi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/efi.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/gpt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/gpt.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/grub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/grub.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/keyboard.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/location&time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/location&time.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/online-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/online-update.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/partition1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/partition1.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/root.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/root.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/swap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/swap.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/username.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/welcome.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/Kubuntu/welcome=again.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/Kubuntu/welcome=again.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/config-aboutyou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/config-aboutyou.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/config-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/config-end.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/config-keyword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/config-keyword.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/config-online.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/config-online.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/config-pra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/config-pra.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/config-repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/config-repo.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/config-welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/config-welcome.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/instal-final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/instal-final.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install-manual01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install-manual01.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install-manual02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install-manual02.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_auto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_auto.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_inshort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_inshort.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_keyboard.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_lang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_lang.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_man01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_man01.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_man02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_man02.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_start.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_timezone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_timezone.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/fedora/install_welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/fedora/install_welcome.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/gpg/crc-sha.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/gpg/crc-sha.gif -------------------------------------------------------------------------------- /docs/entry/installation/assets/gpg/kleopatra-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/gpg/kleopatra-01.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/gpg/kleopatra-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/gpg/kleopatra-02.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/gpg/kleopatra-03.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/gpg/kleopatra-03.gif -------------------------------------------------------------------------------- /docs/entry/installation/assets/gpg/kleopatra-04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/gpg/kleopatra-04.gif -------------------------------------------------------------------------------- /docs/entry/installation/assets/gpg/kleopatra-05.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/gpg/kleopatra-05.gif -------------------------------------------------------------------------------- /docs/entry/installation/assets/misc/chec-hash-7z-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/misc/chec-hash-7z-1.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/misc/check-hash-7z.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/misc/check-hash-7z.PNG -------------------------------------------------------------------------------- /docs/entry/installation/assets/misc/check-hash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/misc/check-hash.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/Choose_de_for_linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/Choose_de_for_linux.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/Create_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/Create_account.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_install_guide_-_root_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_install_guide_-_root_account.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_installer_guide_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_installer_guide_overview.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_installer_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_installer_review.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_installer_time-ntp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_installer_time-ntp.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_01.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_02.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_03.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/DVD_partitioning_guide_05.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/Default_partitioning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/Default_partitioning.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/Online_update_or_not.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/Online_update_or_not.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/OpenSUSE_startup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/OpenSUSE_startup.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/Partitioning_tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/Partitioning_tool.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/openSUSE/Time_and_zones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/openSUSE/Time_and_zones.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/0-install-welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/0-install-welcome.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/01-install-silverblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/01-install-silverblue.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/02-install-summary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/02-install-summary.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/03-install-keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/03-install-keyboard.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/04-install-language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/04-install-language.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/05-install-time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/05-install-time.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/06-install-NTS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/06-install-NTS.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/07-install-dest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/07-install-dest.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/08-install-efi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/08-install-efi.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/09-install-boot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/09-install-boot.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/1.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/10-install-root.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/10-install-root.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/11-install-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/11-install-home.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/12-install-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/12-install-end.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/13-install-progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/13-install-progress.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/14-install-repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/14-install-repo.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/15-install-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/15-install-user.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/16-install-pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/16-install-pw.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/17-install-gnome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/17-install-gnome.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/2.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/silverblue/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/silverblue/3.jpg -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-begain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-begain.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-conf-display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-conf-display.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-conf-iso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-conf-iso.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-conf-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-conf-reg.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-conf-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-conf-share.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-conf-sys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-conf-sys.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-disk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-disk.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-extensions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-extensions.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-iso-man.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-iso-man.gif -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-net.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-net.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-snapshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-snapshot.gif -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-vm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-vm1.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-vm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-vm2.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-vm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-vm3.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vbox-vm4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vbox-vm4.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-begain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-begain.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-install-expak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-install-expak.gif -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-nano.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-nano.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-new01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-new01.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-new02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-new02.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-new03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-new03.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-new04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-new04.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-new05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-new05.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-share-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-share-end.png -------------------------------------------------------------------------------- /docs/entry/installation/assets/vm/vm-sharefolder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/installation/assets/vm/vm-sharefolder.png -------------------------------------------------------------------------------- /docs/entry/installation/fedora-silverblue.md: -------------------------------------------------------------------------------- 1 | # Fedora Silverblue 安装指南 2 | 3 | 4 | ## Fedora Silverblue 简介 5 | 6 | ![fedora_silverblue_1.png](./assets/silverblue/1.png) 7 | 8 | Fedora Silverblue 是 Fedora Workstation 的变体版本,由 Atomic Workstation 更名而来。它是一个不可变的操作系统,目标是为开发者和重度容器用户提供一个稳定且可靠的平台。 9 | 10 | - Silverblue 的默认桌面环境是 Gnome,但它也有一个基于 KDE 桌面环境的变体:[Fedora Kinoite](https://kinoite.fedoraproject.org/)。安装 Fedora Kinoite 所需要注意的事项基本与 Silverblue 相同,此处不再重复叙述。 11 | 12 | Fedora Silverblue 不可变是指 `/` 和 `/usr` 目录下的文件为只读模式。由于该特性使得它相对于传统的 Linux 操作系统更加稳定,更适合于容器化程序的应用和基于容器的软件开发。同时,容器将应用程序与系统隔离也让系统更为可靠。 13 | 14 | Fedora Silverblue 系统更新的速度非常快,无需等待安装,重启系统后即可使用新版本。如果系统出现问题可选择回滚。 15 | 16 | ## 安装前的准备 17 | 18 | Fedora Silverblue 的安装方式和 Fedora Workstation 几乎一致,差异在硬盘分区部分。 19 | 其它安装步骤也可以参考 [Fedora Workstation 安装指南](https://docs.fedoraproject.org/en-US/docs/)。 20 | 21 | !!! attention 22 | 无论是双系统还是手动分区都存在一定的风险,建议有相关的知识储备或经验时再做尝试。 23 | 24 | 1. 已知局限 25 | 双系统引导和手动分区时 Fedora Silverblue 缺乏一定的灵活性。 26 | 当然,Fedora Silverblue 是支持双系统引导和手动分区的,详见“手动分区”部分。 27 | 28 | 2. 获取 Fedora Silverblue 安装镜像 29 | 请前往 [Fedora Silverblue 网站](https://silverblue.fedoraproject.org/)进行下载。 30 | 31 | 3. 验证安装镜像 32 | 安装前请务必验证镜像。验证镜像的方法有很多,Unix-like 系统下可运行: 33 | ``` 34 | sha256sum /path/to/Fedora-Silverblue-ostree-x86_64-35-1.2.iso 35 | ``` 36 | 然后,将输出的结果与[下载页面](https://silverblue.fedoraproject.org/)的 checksum 文件进行比对。 37 | 38 | 4. 制作安装介质 39 | 使用 [Ventoy](https://www.ventoy.net/cn/index.html)、[Rufus](https://rufus.ie/zh/) 或 [Fedora Media Writer](https://silverblue.fedoraproject.org/download) 创建安装所需要的引导盘。 40 | 41 | ## Fedora Silverblue 安装流程 42 | 43 | !!! attention 44 | 安装前请注意做好资料备份。 45 | 46 | Fedora Silverblue 桌面环境是 GNOME,如果希望安装 KDE 桌面环境请选择 [Fedora Kinoite](https://kinoite.fedoraproject.org/),XFCE、LXQt、i3 正在构建中。除了 Fedora Silverblue 之外,其它基于 Fedora Silverblue 的桌面环境由社区特别兴趣小组(SIG)构建。 47 | 48 | ![fedora_silverblue_2.png](./assets/silverblue/2.png) 49 | 50 | ### 启动到安装环境 51 | 52 | 开机后选择刚刚创建的引导介质进行引导。 53 | 如果已完成校验镜像选择 “Install Fedora 35”,否则选择第二项 “Test this media & install Fedora 35”。如下图所示: 54 | 55 | ![silverblue1](./assets/silverblue/01-install-silverblue.png) 56 | 57 | ### 安装界面 58 | 59 | 首先选择安装界面所使用的语言,示例选择英文 60 | 61 | ![silverblue2-1](./assets/silverblue/0-install-welcome.png) 62 | 63 | 点击“继续”,进入安装信息摘要画面。 64 | 65 | ![silverblue2-2](./assets/silverblue/02-install-summary.png) 66 | 67 | ### 键盘布局 68 | 69 | 键盘布局默认为 us(美式键盘映射)。根据自己的情况,点击左下角“+”添加所需键盘布局,通常使用默认的美式键盘布局就可以了。 70 | 71 | ![silverblue3](./assets/silverblue/03-install-keyboard.png) 72 | 73 | ### 系统语言 74 | 75 | 根据个人偏好选择系统的默认语言。如果要使用中文,请将滚动条拖至最下方或输入 `chinese` 进行检索。 76 | 77 | ![silverblue4](./assets/silverblue/04-install-language.png) 78 | 79 | ### 时区和校时服务器 80 | 81 | #### 时区 82 | 83 | 设置时区,示例设置为中国上海。如果与 Windows 安装双系统,请取消右上方 Network Time (网络时间)的勾选。 84 | 85 | ![silverblue5-1](./assets/silverblue/05-install-time.png) 86 | 87 | #### 校时服务器 88 | 89 | 点击上图右上角齿轮图标,设置网络校时服务器,一般默认就可以了。也可以选择距离相对近的校时服务器,比如:中国国家授时中心 `cn.ntp.org.cn`。 90 | 91 | ![silverblue5-2](./assets/silverblue/06-install-NTS.png) 92 | 93 | ### 分区 94 | 95 | #### A. 自动分区 96 | 97 | 官方推荐自动分区。经测试,目前最新的 Fedora Silverblue 35 安装程序的自动分区方案已经兼容单系统与双系统安装方案。 98 | 99 | #### B. 手动分区 100 | 101 | 大多数使用场景硬盘分区应遵循够用原则(越简单越好),易于后期的维护和排障。手动分区时 Fedora Silverblue 可使用常规的文件系统,如:`Btrfs`、`LVM`、`xfs`、`ext4` 等。 102 | 103 | 下面以 `/` 、`/boot`、`/boot/efi`、`/var/home` 为例进行演示。 104 | 105 | **分区示例** 106 | 107 | 挂载点 | 分区 | 分区类型 | 建议大小 108 | -- | -- | -- | -- 109 | `/boot/efi` | EFI 系统分区 | FAT32 | 100-512M 110 | `/boot` | 引导分区 | Ext4 | 512M-1G 111 | `/` | `/` 子卷 | Btrfs | 15-30G以上 112 | `/var/home` | home 子卷| Btrfs | 剩余空间 113 | 114 | 如[已知局限](#limitations)所述,Fedora Silverblue 手动分区存在一些问题,请谨慎使用,官方推荐使用自动分区。 115 | 116 | 如果希望尝试手动分区,请参考以下说明。 117 | 118 | **可指定为分区挂载点的有:** 119 | 120 | - / 121 | - swp 122 | - /boot 123 | - /boot/efi 124 | - /var 125 | - /var/home 126 | - /var/log 127 | - /var/containers 128 | 129 | !!! attention 130 | Anaconda 安装程序无法检测分区方案是否符合 Silverblue 的分区限制。也就是说,即使分区方案不兼容,安装程序也没有任何提示。 131 | 132 | #### 进入手动分区界面 133 | 点击安装信息摘要界面的“安装位置”,进入以下界面: 134 | 135 | ![silverblue6-1](./assets/silverblue/07-install-dest.png) 136 | 137 | 现在位于设备选择界面,点选”本地标准硬盘“中的安装系统所需硬盘,然后选择”自定义“;点击左上角”完成“按扭即可进入”手动分区“界面。 138 | 139 | 140 | #### EFI 系统分区 141 | ![silverblue6-2](./assets/silverblue/08-install-efi.png) 142 | #### 引导分区 143 | ![silverblue6-3](./assets/silverblue/09-install-boot.png) 144 | #### / 子卷 145 | `/` 子卷和 `home` 子卷共享一个 btrfs 卷,根据占用情况 btrfs 文件系统将自动动态调整空间。 146 | ![silverblue6-4](./assets/silverblue/10-install-root.png) 147 | #### home 子卷 148 | 该子卷使用剩余空间,因此无需要指定大小。 149 | 150 | ![silverblue6-5](./assets/silverblue/11-install-home.png) 151 | 152 | #### 分区完成状态如下图: 153 | 154 | ![manual-partition-complete](./assets/silverblue/12-install-end.png) 155 | 156 | 检查刚才的分区并点击左上角”完成“,此时程序将跳出确认对话框,确保无误后点击”确认“。 157 | 158 | ### 等待安装完毕 159 | 接下来执行系统安装,完成后点击右下角的”重启系统“。 160 | 161 | ![silverblue7](./assets/silverblue/13-install-progress.png) 162 | 163 | ### 完成安装 164 | 重启后将进入欢迎界面,进行简单的用户名、密码以及开启第三方存储库等设置后,安装完成。 165 | 166 | ![silverblue8-1](./assets/silverblue/14-install-repo.png) 167 | 168 | ![silverblue8-2](./assets/silverblue/15-install-user.png) 169 | 170 | ![silverblue8-3](./assets/silverblue/16-install-pw.png) 171 | 172 | ![silverblue8-4](./assets/silverblue/17-install-gnome.png) 173 | 174 | 更多技术细节,请参考 [Fedora Silverblue 用户指南](https://docs.fedoraproject.org/zh_Hans/fedora-silverblue/) 175 | 176 | ![fedora_silverblue_3.png](./assets/silverblue/3.jpg) -------------------------------------------------------------------------------- /docs/entry/installation/fedora.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Fedora 安装指南" 3 | comments: true 4 | --- 5 | 6 | # 安装 Fedora 7 | 8 | ## 概述 9 | 10 | Fedora 是一个流行的发行版,它有很多的分支,本文只描述使用 LiveDVD 镜像安装 Fedora Workstation 以及物理机双系统(Windows 10 & Fedora)所需要注意的事项。 11 | 12 | - 参考:[Fedora - Installation Guide](https://docs.fedoraproject.org/en-US/quick-docs/creating-and-using-a-live-installation-image/) 13 | 14 | ## 安装前准备 15 | 16 | 请参照[前文](./pre-install.md)自行制作安装介质。 17 | 18 | - 如果你不喜欢 Workstation 的桌面环境(Gnome Desktop),你可以选择 [Fedora Spin](https://spins.fedoraproject.org/)。 19 | 20 | ## 使用 Anaconda 安装系统 21 | 22 | 将 U 盘插入电脑并重启,你就会看到 Fedora 的引导启动页面,选择 **Test this media & start Fedora-Workstation-Live 35**,进入下一步。 23 | 24 | ![start](./assets/fedora/install_start.png) 25 | 26 | 在系统完成自检后,你就会进入到 Fedora Live 环境: 27 | 28 | ![Welcome](./assets/fedora/install_welcome.png) 29 | 30 | 你此时可以体验一下 Fedora 的图形界面(Gnome 桌面环境),你此时所作出的更改基本不会影响到电脑原有的文件和设备。如果你想要立即进行安装系统,请点击 **Install To Hard Drive** 31 | 32 | 然后你就会进入 Anaconda 的操作界面: 33 | 34 | ![Anaconda Begain](./assets/fedora/install_lang.png) 35 | 36 | ### 语言 37 | 38 | 启动 Anaconda 后,第一步是选择语言,找到**中文**,并选择**简体中文**(如果你已经连接到网络,Anaconda 会自动选择语言),然后进入下一步。 39 | 40 | !!! attention 41 | 选择语言后,你无法更改语言,除非你停止并重新启动安装程序,才能再次选择语言。 42 | 43 | 然后你就会进入安装信息摘要页面: 44 | 45 | ![In short](./assets/fedora/install_inshort.png) 46 | 47 | 由于 workstation 的特点,此时你只能先配置语言、键盘、网络和安装位置。剩余内容需要等待安装完成后,初次启动系统才能配置。 48 | 49 | ### 键盘 50 | 51 | 打开**键盘**页面,如果你发现当前键盘布局不正确,或你需要其他语言的键盘布局,请点击左下方的加号,进行添加: 52 | 53 | ![keyboard](./assets/fedora/install_keyboard.png) 54 | 55 | 减号按钮用于删除,上下箭头按钮用于排序键盘布局的优先级。 56 | 57 | ### 时间和日期 58 | 59 | 打开**时间和日期**页面,检查时区和地区是否正确: 60 | 61 | ![location](./assets/fedora/install_timezone.png) 62 | 63 | 如果你发现时区不正确,在世界地图上点击你所在的位置。然后点击左上方的**完成**确认更改。 64 | 65 | ### 安装目的地 66 | 67 | 你可以在**安装目的地**中,对 Fedora 安装位置进行设置。 68 | 69 | 注意,此步需要对硬盘分区进行更改和读写,如果你不熟悉如何手动创建,挂载分区,请使用自动分区。 70 | 71 | #### 自动分区 72 | 73 | 你可在**本地标准磁盘**中勾选提前划分的空闲磁盘空间,然后在存储配置中选择**自动**进行自动分区。最后点击两次左上方的 **完成(D)** 确认更改即可。 74 | 75 | ![auto partition](./assets/fedora/install_auto.png) 76 | 77 | #### 手动分区 78 | 79 | - 有关使用 Blivet-GUI 进行分区的内容详见后文。 80 | 81 | 要进行简单的手动分区: 82 | 83 | 请在**本地标准磁盘**中勾选提前划分的空闲磁盘空间,然后在存储配置中选中**自定义**,然后点击左上方的 **完成(D)** 即可进入手动分区。 84 | 85 | ![手动分区](./assets/fedora/install_man01.png) 86 | 87 | 推荐使用默认的分区方案,然后点击上方的 **点击这里自动创建它们**,然后 Anaconda 就会自动创建分区表: 88 | 89 | ![手动分区2](./assets/fedora/install_man02.png) 90 | 91 | 点击两次左上方的 **完成(D)** 确认更改即可。 92 | 93 | 最后回到安装信息摘要的首页,点击右下方的 **开始安装(B)** 开始安装 Fedora。 94 | 95 | Fedora 很快就会安装到你的设备上,这时你可以放松一下~ 96 | 97 | ![](./assets/fedora/instal-final.png) 98 | 99 | ## 安装后初次启动 100 | 101 | 安装完成后,重启系统,系统会自动进入配置页面,你可以在此处完成剩余的配置。 102 | 103 | ![welcome](./assets/fedora/config-welcome.png) 104 | 105 | ### 隐私 106 | 107 | 请根据你个人情况和喜好进行选择: 108 | 109 | ![prav](./assets/fedora/config-pra.png) 110 | 111 | ### 第三方软件源 112 | 113 | 此时,你可以选择是否开启第三方[软件源](https://rpmfusion.org)。 114 | 115 | 如果你使用了非自由固件(如 NVIDIA 设计的独显,个别厂商生产的网卡)或非其他分发受限软件(一些私有固件驱动,多媒体解码器)。那么建议你开启第三方软件源: 116 | 117 | ![non-free-repo](./assets/fedora/config-repo.png) 118 | 119 | ### 在线账户 120 | 121 | 你可以在此处登录你的网络账户,或者跳过: 122 | 123 | ![online](./assets/fedora/config-online.png) 124 | 125 | ### 创建用户 126 | 127 | 你可以在此处创建你的系统账户,请输入用户全名和用户名 128 | 129 | ![User](./assets/fedora/config-aboutyou.png) 130 | 131 | - 用户全名是你的账户全称,用户名则是你的账户简称。建议设置一个简短的用户名。 132 | - 点击头像即可切换头像图片。 133 | 134 | 然后设置一个安全的,不低于 6 位的密码,注意保管好你的密码,一旦忘记密码是无法找回的。 135 | 136 | ![Keyword](./assets/fedora/config-keyword.png) 137 | 138 | ### 收尾工作 139 | 140 | ![end](./assets/fedora/config-end.png) 141 | 142 | 最后,点击 **开始使用 Fedora Linux** 进入系统。 143 | 144 | 祝你玩的愉快!(¬‿¬) 145 | 146 | ---- 147 | 148 | ## 进阶内容 149 | 150 | !!! attention 151 | 以下内容要求操作者对于 Linux 具有一定的基础知识。 152 | 153 | ### 使用 Blivet-GUI 进行手动分区 154 | 155 | 要使用 Blivet-GUI 进行手动分区: 156 | 157 | 首先点击选中你之前预留的未分配的磁盘空间(你可以同时选中多个硬盘)。然后在下方存储配置中选择**高级自定义 (Blivet-GUI)**,点击**完成(D)**进入配置页面: 158 | 159 | ![manual1](./assets/fedora/install-manual01.png) 160 | 161 | 选中右侧逻辑视图下方的 free space,点击上方工具栏的加号,添加一个新的分区: 162 | 163 | ![manual2](./assets/fedora/install-manual02.png) 164 | 165 | !!! note 166 | 若磁盘没有分区表或者你打算删除原有系统进行一次全新的安装,Anaconda 会提示你选择新分区表类型(推荐设置为 GPT)。 167 | 168 | 为了安装 Fedora,你至少需要 `/` 和 `/boot` 两个基本的分区。 169 | 170 | |分区|描述| 171 | |---|---| 172 | |`/boot`|这个分区包含操作系统内核和在引导过程中使用的其他文件。推荐大小为 1GB。文件系统类型可设置为 `ext4`。| 173 | |`/boot/efi`|独立的 [EFI](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface) 分区,推荐当 Fedora 需要与 Windows 共存时创建该分区,大小为 512MB,格式为 `vfat` 或 `fat32`。| 174 | |`/(root)`|这是根目录所在的位置。根目录是目录结构的顶层。默认情况下,所有文件都写入此分区,除非在写入的路径中安装了不同的分区(例如,`/boot` 或 `/home`)。

Fedora 现在已经使用 [Btrfs](https://wiki.archlinux.org/title/Btrfs) 卷作为根目录的默认文件系统。官方推荐大小为 25GB 及以上。实际上你只需要保证根目录大于 15GB 即可。| 175 | |`/home`|独立的用户目录,具体大小取决于你想要放入多少文件;不是必需的分区。分区格式为 `xfs`、`ext4` 或 `btrfs` 等你所偏好的分区格式。| 176 | |`biosboot`|如果你的硬盘使用了 [MBR](https://wiki.archlinux.org/title/Partitioning#Master_Boot_Record_(bootstrap_code)) 分区表而不是 [GPT](https://wiki.archlinux.org/title/Partitioning#GUID_Partition_Table) 分区表作为启动盘的分区形式,则你需要额外创建一个大小为 1MB,格式为 `biosboot` 的空白分区。| 177 | |`swap`|[交换分区](https://wiki.archlinux.org/title/Swap),Linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放这份内存页面。物理内存和交换空间的总大小是可用的虚拟内存的总量。分区格式为 `swap`。| 178 | 179 | SWAP 分区推荐大小如下所示: 180 | 181 | |系统物理内存(RAM)大小|推荐的 swap 分区大小|推荐的 swap 分区大小(如果需要休眠)| 182 | |---|---|---| 183 | |小于 2GB|RAM 的两倍|RAM 的三倍| 184 | |2GB - 8GB|和 RAM 相同|RAM 的两倍| 185 | |8GB - 64GB|RAM 的 0.5 倍|RAM 的 1.5 倍| 186 | |大于 64GB|基于实际工作负载而定|不推荐休眠| 187 | 188 | !!! note 189 | 延伸阅读:[MBR 与 GPT](https://zhuanlan.zhihu.com/p/26098509) 190 | 191 | 综上, 192 | 193 | 对于 BIOS 设备: 194 | 195 | - **/boot**:设备类型设置为**分区**,大小设置为 1GB,文件系统设置为 `ext4`,挂载点设置为 `/boot`。 196 | - **biosboot**:设备类型设置为**分区**,大小设置为 1~2MB,文件系统设置为 `BIOS Boot`。 197 | - **swap**:设备类型设置为**分区**,大小请参考上表而定,文件系统设置为 `swap`。 198 | - **/(root)**:设备类型设置为 **Btrfs 卷**,大小设置为剩余空闲空间大小。 199 | - **/home**:*请根据实际需要创建该分区*。设备类型设置为**分区**,大小和文 件系统类型依照实际需要而定,挂载点为 `/home`。 200 | 201 | 对于 UEFI 设备: 202 | 203 | - **/boot**:设备类型设置为**分区**,大小设置为 1GB,文件系统设置为 `ext4`,挂载点设置为 `/boot`。 204 | - **/boot/efi**:设备类型设置为**分区**,大小设置为 512MB,文件系统设置为 `vfat` 或 `fat32`,挂载点为 `/boot/efi`。 205 | - **swap**:设备类型设置为**分区**,大小请参考上表而定,文件系统设置为 `swap`。 206 | - **/(root)**:设备类型设置为 **Btrfs 卷**,大小设置为剩余空闲空间大小。 207 | - **/home**:*请根据实际需要创建该分区*。设备类型设置为**分区**,大小和文件系统类型依照实际需要而定,挂载点为 `/home`。 208 | 209 | 如果你创建了错误的分区,可以点击 “+” 右侧的 “X” 删除错误的分区,或者右下方的**撤销上一次操作**进行回退。完成创建分区后,点击两次右上角**完成**确认分区结果即可。 210 | 211 | 小技巧: 212 | 213 | - 创建分区的时候,先创建小分区(如:`/boot`),再创建大分区(如:`/home`)。 214 | - 独立的 `/boot/efi` 可避免 Windows 更新 EFI 分区时导致损坏 Linux 的引导文件的可能情况(Windows Boot Manager 不是为多系统引导而设计的)。 215 | - 不创建 `swap` 分区也可安装 Fedora。 216 | - 独立的 `/home` 不是必须的,你也可以编辑现有的磁盘分区或创建一个新的大分区(用于储存大量个人文件),设置挂载点挂载到 `/` 或 `/home` 下(如果挂载的分区存储有重要文件,请勿格式化该分区)。 -------------------------------------------------------------------------------- /docs/entry/installation/opensuse.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "openSUSE 安装指南" 3 | comments: true 4 | --- 5 | 6 | # 安装 openSUSE 7 | 8 | ## 参考资料 9 | 10 | 本文参考了 openSUSE 中文 Wiki 的一些页面: 11 | 12 | - [为什么选择 openSUSE](https://zh.opensuse.org/%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9_openSUSE) 13 | - [SDB:制作安装 U 盘](https://zh.opensuse.org/SDB:%E5%88%B6%E4%BD%9C%E5%AE%89%E8%A3%85_U_%E7%9B%98) 14 | - [SDB:DVD 安装方式](https://zh.opensuse.org/SDB:DVD_%E5%AE%89%E8%A3%85%E6%96%B9%E5%BC%8F) 15 | 16 | 你可以前往 [openSUSE wiki](https://zh.opensuse.org/) 查阅本指南省略的部分。 17 | 18 | ## 准备 19 | 20 | openSUSE 有两个正式的发行分支:[Leap](https://zh.opensuse.org/Portal:Leap) 和 [Tumbleweed](https://zh.opensuse.org/Portal:Tumbleweed)。 21 | 22 | openSUSE 项目每 8 个月发布一个 Leap 的新版本,每个版本有 18 个月的维护周期,Leap 致力于为用户提供稳定的桌面环境和成熟的软件包。Tumbleweed 是 openSUSE 的滚动发行分支,致力于为用户提供最新的稳定版内核、软件和桌面环境。 23 | 24 | 对于想要尝试一下 Leap 的用户,点击下方连接下载 Leap 的镜像: 25 | 26 | - [openSUSE-Leap-15.4-DVD-x86_64-Media.iso | openTUNA](https://opentuna.cn/opensuse/distribution/openSUSE-current/iso/openSUSE-Leap-15.4-DVD-x86_64-Media.iso) 27 | 28 | ### 制作安装介质 29 | 30 | 请参照[前文](./pre-install.md)自行下载 ISO 并创建安装介质。 31 | 32 | ## 安装系统 33 | 34 | 1. 启动系统:将 U 盘或 ISO 文件插入到电脑或虚拟机中,重新启动计算机。紧接着,你可以看到 Boot Screen(启动菜单),点击 F8 切换到简体中文页面。通过向上/向下和回车键来选择 Installation(安装)。

35 | ![启动](./assets/openSUSE/OpenSUSE_startup.png) 36 | 37 | 2. 欢迎界面:然后你会进入欢迎界面。在页面的顶部可以设置语言和键盘布局。设置好语言以后,YaST 会自动为您选择合适的键盘布局。如果自动选择的不正确的话,您可以通过键盘布局下拉菜单来更正它。点击**下一步**,YaST2 会开始刷新软件源,并询问你是否启用在线源。由于大陆特殊的网络环境,为了防止安装错误或中断,你应当选择否。

38 | ![在线更新](./assets/openSUSE/Online_update_or_not.png) 39 | 40 | 3. 选择桌面环境:接下来您可以选择一个你偏好的桌面环境来作为您的默认桌面环境(有关各个桌面的介绍详见[此处](https://zh.opensuse.org/SDB:%E5%A6%82%E4%BD%95%E4%BB%8E_Windows_%E8%BF%81%E7%A7%BB#.E6.A1.8C.E9.9D.A2.E7.8E.AF.E5.A2.83.E4.B8.8E.E4.B8.AD.E6.96.87.E7.8E.AF.E5.A2.83))。如果你是高级用户,并想安装 KDE/GNOME/Xfce 以外的桌面环境或不需要 GUI,你可以选择**通用桌面**或**事务服务器**。

41 | ![选择桌面](./assets/openSUSE/Choose_de_for_linux.png) 42 | 43 | 4. 磁盘分区:接下来显示了一个建议的磁盘分区方案。如果您在同一块硬盘上还安装了其他操作系统(比如,Windows 或者其他 Linux),YaST 不会删除它而是缩小那个系统所在磁盘的空间,好腾出足够的空间来安装 openSUSE。

44 | ![默认分区](./assets/openSUSE/Default_partitioning.png)

45 | 如果对建议配置不满意,您也可以点击**专家分区程序**。如果点击了该项,会加载分区程序,然后显示建议配置的细节以供您编辑。

46 | 点击 从现有提案开始 ,会显示右侧用于编辑分区的界面。关于手动分区的细节将在后文详述,你也可以选择接受 openSUSE 默认的分区方案。

47 | ![专家模式](./assets/openSUSE/Partitioning_tool.png) 48 | 49 | 5. 设置时区:接下来,您需要设定在地图上显示的时区。您可以点击地图上的国家来选择时区,或者使用下拉菜单来选择时区。

openSUSE 会自动检测已安装的系统,如果你是计划成为 win/openSUSE 双系统用户,并且预先安装了 windows ,openSUSE 会自动取消勾选设置系统时间为 UTC 调整世界时。如果没有安装双系统的话(因为视窗系统不使用 UTC 时间),也可以把系统时间设定到 UTC 调整世界时。

50 | ![选择时区](./assets/openSUSE/Time_and_zones.png)

51 | 在时区下面显示着当前设定的时间。如果不正确的话,可以点击**手工**手动变更它。 如果您有可用的网络连接,也可以选择**与 NTP 服务器同步**来使用时间服务器。可以从下拉列表里手选一个时间服务器。点击**接受**就会自动从它同步正确的时间。

52 | ![设置时间](./assets/openSUSE/DVD_installer_time-ntp.png) 53 | 54 | 6. 创建主要用户:输入您的全名,openSUSE 会自动为您选择一个用户名,不满意的话也可以自己修改。指定一个新密码,并输入两次确认。系统会默认使用该密码作为系统管理员(也就是 root 根用户)的密码。同样,自动登录也是默认开启的。然而,如果您想要让系统更安全一些,或者安装的将是一个多用户系统,也可以取消自动登录。

55 | ![创建用户](./assets/openSUSE/Create_account.png)

56 | 如果在前一屏中您取消选中了**对系统管理员使用此口令**选项,接下来你得为根用户 Root 提供它的认证口令(密码)。在本例中使用了一个简单密码,YaST 会对这种过于简单的密码做出警示:

57 | ![设置 root 密码](./assets/openSUSE/DVD_install_guide_-_root_account.png) 58 | 59 | 7. 安装设置:这里是 YaST 将要对你的磁盘做什么事情的一个概览。请通读一遍列表,如果您想要改动任何一个选项,可以通过点击那个章节的标题来实现。你可以通过 YaST 的帮助文本来了解每个选项的意思。

60 | ![安装设置](./assets/openSUSE/DVD_installer_review.png)

61 | 有关在此步继续对系统进行配置的指南详见[此处](https://zh.opensuse.org/SDB:DVD_%E5%AE%89%E8%A3%85%E6%96%B9%E5%BC%8F#.E7.AC.AC.E5.85.AD.E6.AD.A5.EF.BC.9A.E5.AE.89.E8.A3.85.E8.AE.BE.E7.BD.AE)。 62 | 63 | 8. 开始安装:如果你同意此概览中的内容,点击**安装**。你会被提示确认你是不是真的想要进行下去。再次点击**安装**以确认。

64 | ![概览](./assets/openSUSE/DVD_installer_guide_overview.png)

65 | 确认后,YaST 现在正在安装您的崭新的 openSUSE 系统。在第一次重启系统前,YaST 会自动配置您系统的硬件和网络设置。一旦完成,您的计算机将自动重启。在计算机重启时,记得取出 openSUSE 安装盘或移除虚拟盘片。 66 | 67 | ## 手动分区 68 | 69 | 首先,在**建议分区**页面点击正下方的**专家分区程序**,然后你可以选择 openSUSE 预置的分区方案,也可选择自己修改分区方案。从**当前提案开始**表示你选择以 openSUSE 默认的分区方案为基础进行修改,从**现有分区开始**表示是你选择自己创建分区。 70 | 71 | 注意: 72 | 73 | - 本文使用的演示用虚拟机的磁盘空间为 30GB(`/dev/sda`)。 74 | - 实际操作中,SWAP 分区大小请参考[安装 Fedora - 手动分区](https://linuxhitchhiker.github.io/THGLG/entry/installation/fedora/#%E6%89%8B%E5%8A%A8%E5%88%86%E5%8C%BA)中提供的参考表格。 75 | - openSUSE 的[硬件需求](https://zh.opensuse.org/Hardware_requirements_15.2)要求至少需要 10GB 的空间进行安装系统,如果需要图形化界面,最小的磁盘空间需要大于 16GB 。在实体机上日常使用推荐的空间大小为 40GB 及以上。 76 | - 请不要让 windows 和 openSUSE 共享同一个 EFI 分区。 77 | - 如果你是 Tumbleweed 用户,建议使用官方的 btrfs 文件系统,且不建议你关闭 [Snapper 快照功能](https://zh.opensuse.org/SDB:Snapper_Tutorial)。 78 | - 在你确定接受分区方案前,你所作的更改都不会影响到原有的磁盘分区。 79 | 80 | 安装 openSUSE 所需的基本分区: 81 | 82 | |分区名称|挂载点|分区大小|文件系统类型| 83 | |---|---|---|---| 84 | |root|`/`|16GB 及以上(推荐 40GB 或以上)|推荐使用 `btrfs`| 85 | |efi|`/boot/efi/`|512MB|`fat32` 或 `vfat`| 86 | |swap|`swap`|依照实际情况而定|`swap`| 87 | |home|`/home`|依照实际情况而定|`xfs`、`ext4`、`btrfs` 等| 88 | 89 | 找到你预留的空白分区,首先需要先创建**交换分区**(或者你可以先创建 EFI。),请先点击你要创建分区的磁盘,例如下图中的 `/dev/sda`,点击下方的**添加分区**,然后选择自定义尺寸,并在下方输入 `2`: 90 | 91 | ![01](./assets/openSUSE/DVD_partitioning_guide_01.png) 92 | 93 | 点击下一步,并选择**交换区**,然后点击下一步;检查分区 ID、文件系统和挂载点是否与下图一致,然后点击下一步: 94 | 95 | ![02](./assets/openSUSE/DVD_partitioning_guide_02.png) 96 | 97 | 这样我们就创建了第一个分区: 98 | 99 | ![03](./assets/openSUSE/DVD_partitioning_guide_03.png) 100 | 101 | 依照同样的方法,你需要再创建一个根分区(注意,创建根分区时,请将分区的角色选择为**操作系统**,新建的根分区默认启用了 btrfs 子卷 ;`/home` 分区则应该选择**数据和 ISV 应用程序**。): 102 | 103 | ![05](./assets/openSUSE/DVD_partitioning_guide_05.png) 104 | 105 | 如果创建了错误的分区,你只需要选中错误的分区,然后点击右下角的**删除**即可。 106 | 107 | 要挂载已有的磁盘分区,只需要点击相应的分区,然后点击左下方的 **Edit**,然后添加挂载点即可。注意在编辑分区的时候,请点击**格式化设备**下方的**不格式化设备**,以免数据因为操作失误而被格式化。 108 | 109 | 如果你有大量的文件存放在机械硬盘中,考虑到 Linux 会频繁读写用户文件夹中的一些配置文件,可以先将机械盘挂载到 `/` 、`/home` 或用户文件下面,再将 `/home` 分区放在固态硬盘中(或不设立独立的 `/home` 分区)。主要目的是强调用户文件和系统文件互相隔离,但具体实操手段并不唯一。 110 | 111 | - 我误删了某个子卷,怎么办?

112 | 点击根分区,再点击下方的 `add subvolume`,然后输入你误删的分区的名称(@ + 子卷名,如 `@/home`),然后点击**接受**。 113 | 114 | 经过一番折腾后,如果你确认你的分区方案没有问题,点击**接受**,然后再点击下一步(此时你可以预览你的分区方案)。 115 | 116 | ### 额外内容 117 | 118 | 有关重装系统、双引导启动等内容另见 [SDB:DVD 安装方式](https://zh.opensuse.org/SDB:DVD_%E5%AE%89%E8%A3%85%E6%96%B9%E5%BC%8F#.E7.AC.AC.E5.85.AD.E6.AD.A5.EF.BC.9A.E5.AE.89.E8.A3.85.E8.AE.BE.E7.BD.AE)。 119 | -------------------------------------------------------------------------------- /docs/entry/installation/pre-install.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 安装前准备 3 | comments: true 4 | --- 5 | 6 | # 安装前准备 7 | 8 | 本文主要描述安装 Linux 前应当做的一些预备工作。 9 | 10 | ## 硬件需求 11 | 12 | 本文档建议您确认电脑的硬件满足以下要求,以获得较为完整和流畅的使用体验: 13 | 14 | - 核心数不少于 2 个,主频为 2GHz 以上的 x86_64 CPU; 15 | - 4GB 物理内存(RAM); 16 | - 至少 32GB 大小的硬盘; 17 | - 现代的声卡、显卡和外设; 18 | - 分辨率至少为 800x600 的显示器。 19 | 20 | 即便电脑无法满足以上要求,也可能可以运行 Linux 桌面系统。不过这种情况下,可能会时不时遇到卡顿,或是屏幕太小而无法显示完整的内容。因此,还是建议确保电脑硬件规格满足以上要求。 21 | 22 | 23 | 24 | ## 选择桌面环境 25 | 26 | Linux 可用的桌面环境(Desktop Environment)非常多,流行的桌面环境主要有 KDE,Gnome 和 Xfce,您可以先选择一个最喜欢的。有关这三个桌面的介绍详见[此处](./../prologue/desktop-environment.md)。 27 | 28 | 如果觉得难以抉择,也可以使用自带桌面环境的 LiveDVD,体验一下几种桌面环境。 29 | 30 | ## 选择发行版类型 31 | 32 | 按软件技术来划分,发行版主要分为滚动发行版和固定更新发行版。 33 | 34 | 与 Windows 不同的是,Linux 上的第三方软件一般由发行版打包提供,通常情况下并不是用户自己从网络上寻找、下载的。 35 | 36 | 发行版直接决定用户电脑上软件的版本,滚动发行版会不断升级这些软件的版本,这样您电脑上的软件始终是比较新的;固定更新发行版会选择一个固定的版本,之后在发行版的维护周期中,软件的版本不会升级,但是发行版会修复这个版本中的漏洞,这样您电脑上的软件会比较稳定。 37 | 38 | !!! info 39 | 固定更新发行版的维护周期是指某个版本从发布到停止维护的这段时间。 40 | 在某个版本维护周期结束后,这个版本对应软件漏洞的修复也会停止,您就不能再继续用这个版本了,否则太老的软件可能无法满足您的需求,同时漏洞修复的停止也可能让您暴露在网络攻击之中。 41 | 这种情况下,要想继续使用电脑,您需要升级到更新的版本。 42 | 43 | 44 | 45 | 从体验上来说,滚动发行版能体验到更新的软件,而固定更新发行版上的软件更稳定。您可以结合对软件版本的需求和对漏洞的容忍程度,选择最适合的类型。 46 | 47 | !!! info 48 | openSUSE Leap 和 Fedora 是固定版本发行版;openSUSE Tumbleweed 是滚动发行版。 49 | 50 | ## 下载可启动镜像 51 | 52 | 为了简化流程,我们直接提供了指向镜像站的 DVD 离线镜像。 53 | 54 | !!! attention 55 | 用于离线安装的 ISO 镜像体积较为庞大,推荐采用 [aria2](https://aria2.github.io/)、[FDM](https://www.freedownloadmanager.org/zh/) 或 [Motrix](https://motrix.app/) 之类的下载管理器下载,以免遇到某些浏览器下载较慢或者在下载失败后只能从头开始的问题。 56 | 如果您不熟悉下载管理器,也可以直接使用浏览器下载,只需要点击蓝色的下载链接即可。 57 | 58 | 本指南快速入门安装教程涵盖的发行版的镜像下载链接如下: 59 | 60 | === "openSUSE Leap 15.5" 61 | 62 | * 安装镜像:[openSUSE Leap (x86_64, DVD)](https://mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/leap/15.5/iso/openSUSE-Leap-15.5-DVD-x86_64-Current.iso) [约 4.1GB] 63 | 64 | === "openSUSE Tumbleweed" 65 | 66 | * 安装镜像:[openSUSE Tumbleweed (x86_64, DVD)](https://mirrors.tuna.tsinghua.edu.cn/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso) [约 4.7GB] 67 | 68 | === "Fedora" 69 | 70 | * 安装镜像:[Fedora 39 (x86_64, Workstation)](https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/39/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-39-1.5.iso) [约 2GB] 71 | 72 | !!! attention 73 | 许多 Linux 发行版会有多种不同的镜像。这些镜像会针对不同的 CPU 或者带有不同的软件,同时也有一种专门用于试用的 Live 镜像。 74 | 本教程只涵盖 x86_64 的计算机,本节介绍的是离线安装,因此提供的是 x86_64 DVD 镜像。 75 | 76 | ## 创建可启动盘 77 | 78 | !!! info 79 | 尽管您下载的镜像名字是“DVD”镜像,但并不是一定要烧录在 DVD 上才可以使用。事实上,现在人们装系统的时候都把镜像写到 U 盘上,然后从 U 盘上启动了。 80 | 81 | 首先,你需要一个储存空间大小在 8GB 或以上的 U 盘,这个 U 盘将会被做成可启动盘。 82 | 83 | !!! attention 84 | 制作可启动盘前,请先备份 U 盘上的所有数据,因为这些数据在 U 盘被做成可启动盘后都会永久丢失。 85 | 您可以将可启动盘恢复成普通数据盘,但丢失的数据是不会回来的。 86 | 87 | 88 | 89 | 之后,可以使用 [Rufus](https://rufus.ie/zh/)、[balenaEtcher](https://www.balena.io/etcher/) 或 [Fedora Media Writer](https://getfedora.org/en/workstation/download/) 等工具将 ISO 文件刻录到 U 盘中,制成一个可引导启动的 Linux 系统安装介质。 90 | 91 | - Rufus 92 | 将你的 U 盘插入电脑,打开 Rufus,它会自动选择可用的移动存储设备。点击“**选择**”打开要刻录的镜像文件。请确认选择正确的设备,然后点击底端的“**开始**”等待刻录自动完成。 93 | - balenaEtcher 94 | 将你的 U 盘插入电脑,打开 balenaEtcher,点击最左侧的加号下面的“Flash from file”,选择要写入的ISO镜像。点击中间的磁盘图标下面的“Select target”,选择要写入的设备。点击最右边的“Flash!”按钮,开始写入。等待刻录自动完成。 95 | - Fedora Media Writer 96 | 插入 U 盘,运行 Fedora Media Writer 选择“自定义镜像”,并选择刚刚下载的 ISO 镜像。请确保选择正确的设备,然后点击 “写入磁盘”,等待刻录完成后即可。 97 | 98 | 如果想同时将 U 盘用作启动盘和存放数据的盘,或者想用一个 U 盘容纳多个镜像,也可以在 U 盘上安装 [Ventoy](https://www.ventoy.net/cn/index.html) 。之后,把镜像(.iso 格式)复制到 Ventoy U 盘中即可。 99 | 100 | 如果你现在暂时不希望用 Linux 替换电脑上当前的操作系统,你可以阅读[使用虚拟机安装 Linux](./virtual-machine.md)获得更多信息。 101 | 102 | ## 引导启动 103 | 104 | !!! attention 105 | 在安装前,请确保电脑上的所有重要文件都已备份完成,因为 Linux 需要对您电脑上的硬盘进行一个彻底的重新分区,这会卸载电脑上的 Windows,删除硬盘上的所有资料(包括音频、文档、音乐、软件数据)。如果没有备份,删除后的资料就无法恢复。 106 | 107 | 确保所有备份都已经完成,然后关闭电脑。再次启动时,进入引导菜单,并选择从刚刚制作的可启动 U 盘上启动。 108 | 109 | 由于不同电脑进入引导菜单的方式不同,您需要自行搜索您的电脑上如何进入引导菜单。如果实在搜索不到,也可以在开机时反复按“F12”“DEL”“F2”“ESC”键,进行尝试。 110 | 111 | 在成功进入 U 盘中的安装程序后,请继续阅读具体发行版的安装步骤。 112 | 113 | 114 | -------------------------------------------------------------------------------- /docs/entry/installation/verify.md: -------------------------------------------------------------------------------- 1 | # 校验文件 2 | 3 | !!! note "注意" 4 | 5 | - 本文主要描述如何快速地校验文件,有关 GPG 的更多信息详见:; 6 | - 有关哈希函数的详细介绍另见: 7 | - 本文假定读者仍在使用 Windows。 8 | 9 | 虽然 ISO 文件损坏的情况很少发生,但计算 ISO 文件的校验并与官方的校验和进行对比,同时验证一下 ISO 的签名是否被篡改并非多此一举。 10 | 11 | 如果你觉得检验文件很繁琐,可以直接跳转到下一篇文本 12 | 13 | 所需的工具: 14 | 15 | - [7-zip](https://www.7-zip.org/) 16 | - [GnuPG](https://gnupg.org/) 17 | - 文本编辑器 18 | 19 |
20 | 21 | ![01](./assets/gpg/01.svg) 22 | 23 |
24 | 25 | ## 下载校验文件 26 | 27 | === "openSUSE" 28 | 29 | - 安装镜像:[openSUSE Tumbleweed (x86_64, DVD)](https://opentuna.cn/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso) [约 4.7GB] 30 | - ISO 文件校验文件:[ISO Cheksum](https://opentuna.cn/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256) 31 | - ISO 签名文件:[ISO signature](https://opentuna.cn/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256.asc) 32 | 33 | === "Fedora" 34 | 35 | - 安装镜像:[Fedora 37 (x86_64, Workstation)](https://opentuna.cn/fedora/releases/37/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-37-1.7.iso) [约 2GB] 36 | - ISO 文件校验文件:[ISO Cheksum](https://opentuna.cn/fedora/releases/37/Workstation/x86_64/iso/Fedora-Workstation-37-1.7-x86_64-CHECKSUM) 37 | 38 | 通过上述链接,你会获得如下三个或两个文件: 39 | 40 | ``` 41 | Fedora-Workstation-37-1.7-x86_64-CHECKSUM 42 | Fedora-Workstation-Live-x86_64-37-1.7.iso 43 | 44 | openSUSE-Tumbleweed-DVD-x86_64-Current.iso 45 | openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256 46 | openSUSE-Tumbleweed-DVD-x86_64-Current.iso.sha256.asc 47 | ``` 48 | 49 | 请将它们放置在同一个文件夹之中。 50 | 51 | ## 初始化 GnuPG 52 | 53 | ### 安装 54 | 55 | 你需要先下载适用于 Windows 系统的 [Gpg4win](https://gpg4win.org/download.html),然后根据提示安装 Gpg4win。 56 | 57 | !!! note "注意" 58 | 59 | - 下载站点会请求你对 Gpg4win 项目进行捐款,你可以使用页面上提示的支付方式进行赞助 Gpg4win 项目的运营;或者选择 0$ 直接下载安装包。 60 | - 如果你不清楚你在做什么,直接遵循 Gpg4win 安装程序的默认推荐值即可。 61 | 62 | ### 获取公钥 63 | 64 | Gpg4win 安装完成后,打开开始菜单,找到并启动名为 Kleopatra 的应用程序: 65 | 66 | ![01](./assets/gpg/kleopatra-01.png) 67 | 68 | 点击**新建密钥对**,输入你的名字和邮件地址,点击 **OK** 确认生成密钥对,例如: 69 | 70 | ![02](./assets/gpg/kleopatra-02.png) 71 | 72 | 然后点击设置,选择**配置 Kleopatra**,在 **S/MIME 校验**中设定好 http 代理地址: 73 | 74 | !!! tip "网络代理" 75 | 76 | 你也可以直接在代理软件中开启系统代理。 77 | 78 | ![03](./assets/gpg/kleopatra-03.gif) 79 | 80 | 点击此页面上方的**在服务器上查找**,然后在弹出的对话框中输入 “openSUSE”,找到并导入 *`openSUSE Project Signing Key`*: 81 | 82 | ![04](./assets/gpg/kleopatra-04.gif) 83 | 84 | 同样地,以相似的步骤导入来自 *`fedora(37)`*[^1] 的公钥。 85 | 86 | 上述方法是有关于如何从 Kleopatra 内置的 key 服务器地址[^2][^3]获取公钥。当你需要添加某人或项目的公钥的时候,最好向本人直接索取或前往官网查找密钥。导入密钥的时候,记得对比一下导入的密钥指纹(Key fingerprint)和公钥发布者给出的密钥指纹是否吻合。 87 | 88 | 同时,需要注意的一点是,[openSUSE 项目已经将公钥更新为 4096 位 RSA 签名密钥](https://suse.org.cn/%E7%A4%BE%E5%8C%BA%E6%96%B0%E9%97%BB/2023/01/22/Tumbleweed-%E7%9A%84%E6%96%B0-4096-%E4%BD%8D-RSA-%E7%AD%BE%E5%90%8D%E5%AF%86%E9%92%A5.html),Tumbleweed 已经采用了新的公钥,但 [Leap](https://get.opensuse.org/leap/) 当前还在使用旧的密钥。 89 | 90 | 你可以将下面的 OpenPGP 密钥信息保存至一个纯文本文档,然后再导入至 Kleopatra 中,或者直接前往 [openSUSE 官网](https://get.opensuse.org/tumbleweed/),你会在页面底部看到公钥下载链接。 91 | 92 | === "公钥信息" 93 | 94 | ``` 95 | pub rsa4096/0x35A2F86E29B700A4 2022-06-20 [SC] [expires: 2026-06-19] 96 | Key fingerprint = AD48 5664 E901 B867 051A B15F 35A2 F86E 29B7 00A4 97 | uid openSUSE Project Signing Key 98 | ``` 99 | 100 | === "OpenPGP 公钥文件" 101 | 102 | ``` 103 | -----BEGIN PGP PUBLIC KEY BLOCK----- 104 | Version: GnuPG v2.0.15 (GNU/Linux) 105 | 106 | mQINBGKwfiIBEADe9bKROWax5CI83KUly/ZRDtiCbiSnvWfBK1deAttV+qLTZ006 107 | 090eQCOlMtcjhNe641Ahi/SwMsBLNMNich7/ddgNDJ99H8Oen6mBze00Z0Nlg2HZ 108 | VZibSFRYvg+tdivu83a1A1Z5U10Fovwc2awCVWs3i6/XrpXiKZP5/Pi3RV2K7VcG 109 | rt+TUQ3ygiCh1FhKnBfIGS+UMhHwdLUAQ5cB+7eAgba5kSvlWKRymLzgAPVkB/NJ 110 | uqjz+yPZ9LtJZXHYrjq9yaEy0J80Mn9uTmVggZqdTPWx5CnIWv7Y3fnWbkL/uhTR 111 | uDmNfy7a0ULB3qjJXMAnjLE/Oi14UE28XfMtlEmEEeYhtlPlH7hvFDgirRHN6kss 112 | BvOpT+UikqFhJ+IsarAqnnrEbD2nO7Jnt6wnYf9QWPnl93h2e0/qi4JqT9zw93zs 113 | fDENY/yhTuqqvgN6dqaD2ABBNeQENII+VpqjzmnEl8TePPCOb+pELQ7uk6j4D0j7 114 | slQjdns/wUHg8bGE3uMFcZFkokPv6Cw6Aby1ijqBe+qYB9ay7nki44OoOsJvirxv 115 | p00MRgsm+C8he+B8QDZNBWYiPkhHZBFi5GQSUY04FimR2BpudV9rJqbKP0UezEpc 116 | m3tmqLuIc9YCxqMt40tbQOUVSrtFcYlltJ/yTVxu3plUpwtJGQavCJM7RQARAQAB 117 | tDRvcGVuU1VTRSBQcm9qZWN0IFNpZ25pbmcgS2V5IDxvcGVuc3VzZUBvcGVuc3Vz 118 | ZS5vcmc+iQI+BBMBAgAoBQJisH4iAhsDBQkHhM4ABgsJCAcDAgYVCAIJCgsEFgID 119 | AQIeAQIXgAAKCRA1ovhuKbcApKRrEACJMhZhsPJBOkYmANvH5mqlk27brA3IZoM4 120 | 8qTzERebzKa0ZH1fgRI/3DhrfBYL0M5XOb3+26Ize0pujyJQs61Nlo1ibtQqCoyu 121 | dvP/pmY1/Vr374wlMFBuCfAjdad4YXkbe7q7GGjo6cF89qtBfTqEtaRrfDgtPLx/ 122 | s9/WXLGo0XYqCCSPVoU66jQYNcCt3pH+hqytvntXJDhU+DveOnQCOSBBHhCMST3E 123 | QvriN/GnHf+sO19UmPpyHH0TM5Ru4vDrgzKYKT/CzbllfaJSk9cEuTY8Sv1sP/7B 124 | Z7YvOE0soIgM1sVg0u3R/2ROx0MKoLcq7EtLw64eE+wnw9bHYZQNmS+J/18p7Bo8 125 | I7e+8WRi+m/pus5FEWsIH1uhxKLgJGFDTHHGZtW+myjnUzXVIkpJGrKoolzYjHdK 126 | lRYM2fVuNI1eq6CZ6PFXg2UxovVczSnGMO33HZE09vpgkRDBrw1vF0o/Wnm02kig 127 | V6xYHk5wJx8vL74wPvCbw73UNT9OSdxYAz7JPqGOD6cpKe7XcAH2sYmlGpggAIUz 128 | Rq/lROEF5lx4SxB838JU4ezxD++BJXfBTE8JZmlGscXv74y9nCtSOZza8KOKj8ou 129 | WRl739FMnx9jRd7HHj3TIyymoveODnZ7f3IElyyFsjBW3XuQ9XfpZrIkwHuaZV5M 130 | 6q2h+hgWNQ== 131 | =nMh8 132 | -----END PGP PUBLIC KEY BLOCK----- 133 | ``` 134 | 135 | ### 验证签名 136 | 137 | 点击 Kleopatra 菜单栏上的**解密/校验**,选择对应的 sha256 文件或者 CHECKSUM 文件,进行校验: 138 | 139 | ![05](./assets/gpg/kleopatra-05.gif) 140 | 141 | ## 校验哈希值 142 | 143 | !!! attention "注意" 144 | 145 | - 请不要修改 SHA256 值,直接复制黏贴即可; 146 | - 文件名必须和要校验的文件的文件名保持一致; 147 | - sha256 文件必须和要校验的文件处于同一个文件夹中。 148 | 149 | 此处推荐使用 [7-zip](https://www.7-zip.org/) 对文件进行校验。 150 | 151 | 选中已下载的 sha256 文件,在鼠标右键菜单中,使用 **CRC SHA** 菜单中的**测试压缩包:校验和**功能,如下: 152 | 153 | !!! tip "注意" 154 | 155 | 如果你没有看到相似的选项,你可能需要在 7-zip 的设置(工具→选项→7-Zip)中,取消勾选**层叠右键菜单**。 156 | 157 | ![crc-sha](./assets/gpg/crc-sha.gif) 158 | 159 | 对于 `Fedora-Workstation-37-1.7-x86_64-CHECKSUM`,它的本质是一个纯文本文件,你可以使用编辑器打开它,然后把其中你需要的部分复制黏贴到一个新建的,以 `sha256` 为后缀名的纯文本文件中,例如: 160 | 161 | ``` 162 | # Fedora-Workstation-Live-x86_64-37-1.7.iso: 2037372928 bytes 163 | SHA256 (Fedora-Workstation-Live-x86_64-37-1.7.iso) = 9c69005baafdba6e4ff04c1cf4779121b7fc9aacab80b4633394576da336a515 164 | ``` 165 | 166 | 然后将如上的文件修改为(SHA256 值 + 文件名): 167 | 168 | ``` 169 | 9c69005baafdba6e4ff04c1cf4779121b7fc9aacab80b4633394576da336a515 Fedora-Workstation-Live-x86_64-37-1.7.iso 170 | ``` 171 | 172 | [^1]: Fedora 37 的公钥 173 | [^2]: 174 | [^3]: 除了 Ubuntu 的密钥服务器,你可以前往 下载公钥。 -------------------------------------------------------------------------------- /docs/entry/installation/virtual-machine.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 在虚拟机中安装 Linux 3 | comments: true 4 | --- 5 | 6 | # 在虚拟机中安装 Linux 7 | 8 | !!! note 9 | 本文只是虚拟化软件的简单介绍和使用,具体更为细节的内容请自行翻阅相关文档。同时,本文假定读者当前使用的操作系统是 Windows。 10 | 11 | ## 虚拟机与物理机 12 | 13 | 在不熟悉 Linux 基本知识的情况下,直接在物理机上安装 Linux 可能会导致数据丢失,或者是硬件损坏。 14 | 15 | 虚拟机作为一个让你在不破坏当前系统结构的情况下,能够获得最接近原生 Linux 环境体验的工具。非常适合 Linux 初学者安全地练习如何安装和使用 Linux。 16 | 17 | !!! attention 18 | 在物理机上安装 Linux 并非是必须的步骤,不安装到物理机上可以省去大量的迁移工作,但安装到物理机上会让系统具备更强的性能和更多的功能。 19 | 本文所描述的虚拟化软件都有 Linux 版。 20 | 21 | 本文主要描述如何使用两种流行的虚拟化软件: 22 | 23 | - [Virtualbox](https://www.virtualbox.org/):自由,开源,免费。 24 | - [VMware Workstation](https://www.vmware.com/products/workstation-pro.html):历史悠久的企业级虚拟化产品,闭源,收费。 25 | - [VMWare Workstation Player](https://www.vmware.com/cn/products/workstation-player/workstation-player-evaluation.html):VMware Workstation 的免费版本,不支持多个虚拟机同时运行。 26 | 27 | ## Virtualbox 28 | 29 | ### 安装 Virtualbox 30 | 31 | 打开 [Download VirtualBox](https://www.virtualbox.org/wiki/Downloads) 页面,点击 `Windows hosts` 下载适用于 Windows 系统的 virtualbox 安装包。然后在此页面找到并下载 `VirtualBox Oracle VM VirtualBox Extension Pack`。 32 | 33 | 打开 virtualbox 安装程序,依照提示完成安装。完成安装后,即可启动管理器: 34 | 35 | ![begain](./assets/vm/vbox-begain.png) 36 | 37 | ### 安装扩展包 38 | 39 | `VirtualBox Oracle VM VirtualBox Extension Pack` 扩展包主要提供了 USB 驱动和 3D 加速驱动等因版权无法自由分发的内容。 40 | 41 | 要安装扩展包,请先打开 VirtualBox,点击左侧**工具**栏上的选项按钮,切换到**扩展**页面,然后再点击上方的 **install** 安装你刚刚下载保持的扩展包文件,然后你就会看到扩展包的使用许可协议,滚动到底端,然后点击**我同意**,即可安装扩展包: 42 | 43 | ![extensions](./assets/vm/vm-install-expak.gif) 44 | 45 | ### 新建虚拟机 46 | 47 | !!! note 48 | 将鼠标光标停留在某个选项上会显示该选项的简易使用说明。 49 | 注意,请将虚拟机安装在固态硬盘分区中以提高虚拟机的性能。 50 | 51 | 打开 VirtualBox ,点击**新建** ,输入虚拟机的名称(VirtualBox 会根据你输入的名称快速筛选虚拟机的版本和类型),点击下一步: 52 | 53 | ![name](./assets/vm/vbox-vm1.png) 54 | 55 | 内存大小建议最小值为 **2048MB**,具体的最低配置要求详见你所安装的系统版本的[最低配置要求](./pre-install.md)。点击下一步: 56 | 57 | ![ram](assets/vm/vbox-vm2.png) 58 | 59 | - CPU 核心数量可以拉到一半的位置,同时可以根据使用情况考虑是否启用 EFI。 60 | - 并不建议将指针拖动到红色区域,这可能会对主机的正常运行造成影响。 61 | 62 | 在选择默认的**现在创建虚拟硬盘**,虚拟硬盘文件类型默认为 VDI。点击下一步,选择**动态分配**,大小建议 **20GB** 或更高值,具体的最低配置详见你所安装的系统版本的[最低配置要求](./pre-install.md)。点击下一步完成创建: 63 | 64 | ![vbox](./assets/vm/vbox-vm3.png) 65 | 66 | ![finish](./assets/vm/vbox-vm4.png) 67 | 68 | ### 配置虚拟机 69 | 70 | 在启动安装前,你还需要进行一些额外的配置。 71 | 72 | 点击虚拟机详情页中的**设置** ,在**常规**页面中,点击**高级**,然后为虚拟机启用剪贴板共享和文件拖放: 73 | 74 | ![reg](./assets/vm/vbox-conf-reg.png) 75 | 76 | 再点击**系统**;在**主板**页面,你可以点击勾选**启用 EFI**(某些系统需要用户启用 UEFI 支持)或安全启动支持。在**处理器**页面,你可以更改虚拟机使用的**CPU 核心数**: 77 | 78 | ![sys](./assets/vm/vbox-conf-sys.png) 79 | 80 | !!! note 81 | 给虚拟机分配过多的资源会导致宿主机卡顿。你可以修改该页面中的启动顺序来改变虚拟机启动时引导设备的顺序。虚拟机系统安装完成后 VirtualBox 需要用户手动移除虚拟盘片。 82 | 83 | 注意,你必须在**显示**页面中,将**显存大小**拉满,否则你很有可能会遇到显存耗尽的问题。同时可以考虑是否为虚拟机启用 3D 图形加速(具体取决于你的硬件性能)。 84 | 85 | ![display](./assets/vm/vbox-conf-display.png) 86 | 87 | !!! note 88 | 如果你遇到无法调节虚拟机屏幕分辨率的问题,你可以在关闭虚拟机后,更换虚拟机使用的虚拟显卡或者关闭 3D 图形加速。 89 | 90 | 在**存储**中,点击**没有盘片** ,再点击**分配光驱**右侧的光碟小图标,再点击**选择虚拟盘**,找到并选中你准备好的 ISO 镜像文件。 91 | 92 | ![iso](./assets/vm/vbox-conf-iso.png) 93 | 94 | 在 **USB 设备**中,点击右侧的**添加一个 USB 筛选器**,勾选你插入宿主机的 USB 设备。 95 | 96 | !!! note 97 | 该步骤为可选操作。一旦启动虚拟机,你插入宿主机的 USB 设备就会自动被重定向到虚拟机中,并且在虚拟机关机前,你都不能在宿主机访问该 USB 设备。 98 | 99 | 在**共享文件夹**中,点击右侧的**添加共享文件夹** ,点击**共享文件夹路径**右侧的倒三角符号,点击**其他**,选择一个文件夹用于共享文件: 100 | 101 | ![share](./assets/vm/vbox-conf-share.png) 102 | 103 | !!! note 104 | - 该步骤为可选操作。共享文件夹可以实现主宿机间文件的实时交流。请勿将虚拟机的任何程序或者程序所使用的文件夹安装或存放到共享文件夹中。 105 | - 建议勾选**自动挂载**以便于虚拟机在开机后自动发现共享文件夹。 106 | 107 | 如果你在配置虚拟机的时候,没有指定使用的系统镜像文件。虚拟机在启动的时候会提醒你选择一个镜像文件。点击提示页面右侧的**选择一个虚拟光盘文件** ,再点击**注册**,找到并选中你下载的光盘文件,点击你新添加的镜像文件,再点击**选择**,确定无误后启动虚拟机。 108 | 109 | ### 注册 ISO 文件 110 | 111 | 打开 Virtualbox,点击**工具**,然后切换到**介质**页面,此时你可以看到 virtualbox 已经使用的虚拟机磁盘和镜像文件: 112 | 113 | ![iso-list](./assets/vm/vbox-iso-man.gif) 114 | 115 | 你可以在虚拟镜像文件页面中将已下载好的 ISO 文件都导入到此列表中,方便后续新建虚拟机的时候可以直接使用。 116 | 117 | ### 快照 118 | 119 | 快照是一个非常有用的功能,它可以将你的虚拟机恢复到指定的状态,特别适合于测试环境。 120 | 121 | 点击要生成快照的虚拟机,然后切换到**备份**页面,新建一个快照即可。当你需要使用的时候,再点击恢复备份: 122 | 123 | ![snapshot](./assets/vm/vbox-snapshot.gif) 124 | 125 | ### 安装增强功能 126 | 127 | 启动虚拟机后,Virtualbox 会自动捕获用户的鼠标光标,你可以按 `右 Ctrl` 取消捕获。按 `右 Ctrl + F` 进入全屏。 128 | 129 | 你可以通过命令行安装 virtualbox 的增强功能包: 130 | 131 | ``` 132 | sudo zypper in virtualbox-guest-tools #适用于 openSUSE 133 | sudo dnf in virtualbox-guest-tools #适用于 Fedora 134 | ``` 135 | 136 | 然后将你的用户添加至 `vboxsf` 用户组: 137 | 138 | ``` 139 | sudo usermod -aG vboxsf $USER 140 | ``` 141 | 142 | 重新登录系统即可看到你之前设置好的共享文件夹(该共享文件夹一般位于 `/media` 目录之下,如果你没有看到自动挂载的文件夹,你需要手动将共享文件夹固定到文件浏览器的侧边栏之中)。 143 | 144 | ### 断开网络连接和虚拟盘 145 | 146 | 要断开网络连接,只需要点击底部图标,取消勾选网络连接即可: 147 | 148 | ![net](./assets/vm/vbox-net.png) 149 | 150 | 在系统安装完成后,virtualbox 并不会自动弹出 ISO 文件,你可以手动点击底栏图标,移除虚拟盘即可: 151 | 152 | ![disk](./assets/vm/vbox-disk.png) 153 | 154 | ### 其他 155 | 156 | - [Virtualbox Documentation](https://www.virtualbox.org/wiki/Documentation) 157 | 158 | ### 增强虚拟机的图形性能 159 | 160 | 要增强虚拟机的性能,主要有以下几个办法: 161 | 162 | 1. 提高虚拟机可使用的 CPU 核心数; 163 | 2. 提高虚拟机可使用的 RAM; 164 | 3. 将虚拟机放置在宿主机的固态硬盘上以提高读写性能; 165 | 4. 使用独立显卡运行 virtualbox(如果出现撕裂问题,可以在设置中关闭 3D 图形加速)。 166 | 167 | !!! note "注意" 168 | 以上的建议也适用于 VMware Workstation。 169 | 170 | ---- 171 | 172 | ## VMWare Workstation 173 | 174 | ### 安装 175 | 176 | 打开 [VMware Workstation Pro](https://www.vmware.com/cn/products/workstation-pro.html),点击 **试用 Workstation 16 Pro** 进入下载页面。下载完成后,打开安装程序,依照引导提示完成安装。有关 VMware Workstation Pro 的商业授权使用详见[此处](https://store-us.vmware.com/vmware-workstation-16-pro-5424176500.html)。 177 | 178 | 如果你需要免费的 VMware 虚拟化产品,你可以选择使用 [VMware Workstation Player](https://www.vmware.com/cn/products/workstation-player.html),此站点的 **比较** 页面分析了 Workstation Player 和 Workstation Pro 的差异,以及你适合哪一种产品。 179 | 180 | ### 新建虚拟机 181 | 182 | 在安装好 VMWare Workstation 后,打开 VMware,点击左上方**文件**,选择**新建虚拟机**。 183 | 184 | ![Begain](./assets/vm/vm-begain.png) 185 | 186 | 在弹出的新建虚拟机向导中,点击**下一步**,然后选择**安装程序光盘映像文件**,打开你下载好的 Linux ISO 文件。点击**下一步**: 187 | 188 | ![new01](./assets/vm/vm-new01.png) 189 | 190 | 在“命名虚拟机”中指定你的虚拟机的名称和虚拟机保存的位置。点击**下一步**: 191 | 192 | ![new02](./assets/vm/vm-new02.png) 193 | 194 | 在此页面,你可以指定虚拟机的**最大磁盘大小**,你可以使用默认值,或者指定更大的容量。完成后点击**下一步**: 195 | 196 | ![new03](./assets/vm/vm-new03.png) 197 | 198 | 在“已准备好创建虚拟机”页面中,检查虚拟机硬件配置是否合乎要求。你可以点击**自定义硬件**,自行调整配置(VMware 默认的配置一般不适合使用 Linux 桌面环境)。 199 | 200 | ![new04](./assets/vm/vm-new04.png) 201 | 202 | ![new05](./assets/vm/vm-new05.png) 203 | 204 | 完成后点击**完成**启动虚拟机。`Ctrl + Alt` 快捷键组合可以让 VMware 停止捕获你的鼠标。如果你勾选了**创建后开启此虚拟机**,则 VMware 会自动启动虚拟机。 205 | 206 | ### 安装 open-vm-tools 207 | 208 | 一般而言,Fedora 和 openSUSE 都默认预置了 `open-vm-tools`,你也可以手动安装该扩展包。 209 | 210 | ``` 211 | sudo zypper in open-vm-tools #适用于 openSUSE 212 | sudo dnf in open-vm-tools #适用于 Fedora 213 | ``` 214 | 215 | 安装完成后,重启系统。 216 | 217 | ### 创建共享文件夹 218 | 219 | 在关闭虚拟机后,点击**编辑虚拟机设置**,再点击**选项**,找到并点击**共享文件夹**,将设置调整为**总是启用**,然后在下方点击**添加**,选择你所要用于主机-虚拟机共享的文件夹: 220 | 221 | ![share](./assets/vm/vm-sharefolder.png) 222 | 223 | 确认并保存后,启动系统,然后在终端中键入以下命令启用共享文件夹。 224 | 225 | 1. 使用 `mkdir` 命令创建一个名为 Share 的文件夹: 226 | ``` 227 | mkdir Share 228 | ``` 229 | 230 | 2. 使用 `nano` 命令编辑 `/etc/fuse.conf`: 231 | ``` 232 | sudo nano /etc/fuse.conf 233 | ``` 234 | 然后使用方向键移动光标,删掉 `user_allow_other` 前的 `#`: 235 | ![nano](./assets/vm/vm-nano.png) 236 | 按下 `Ctrl + O` 保存更改,再按下 `Ctrl + X` 退出 `nano` 编辑器; 237 | 238 | 3. 运行下列命令挂载共享文件夹: 239 | ``` 240 | /usr/bin/vmhgfs-fuse .host:/ ~/Share -o subtype=vmhgfs-fuse,allow_other 241 | ``` 242 | ![end](./assets/vm/vm-share-end.png) 243 | 244 | ### UEFI 和 BIOS 245 | 246 | 如果你需要将虚拟机的启动模式设置为 UEFI,而非 VMware 默认的 BIOS。则你应该在新建虚拟机的时候,在第一步选择**稍后安装系统**,然后将**客户机操作系统**的版本设置为**其他 Linux 5.x 内核 64 位**。然后再在虚拟机的设置页面的 CD/DVD (IDE) 选项中添加用于安装系统的 ISO 文件。 247 | 248 | ### 官方文档 249 | 250 | 有关 Workstation 更多的使用指南详见: 251 | 252 | - [VMware Workstation Pro Documentation](https://docs.vmware.com/en/VMware-Workstation-Pro/index.html) 253 | - [VMware Workstation Player Documentation](https://docs.vmware.com/en/VMware-Workstation-Player/index.html) 254 | - [VMware Fusion Documentation](https://docs.vmware.com/en/VMware-Fusion/index.html) -------------------------------------------------------------------------------- /docs/entry/prologue/assets/OSlp151_GNOME-Notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/prologue/assets/OSlp151_GNOME-Notifications.png -------------------------------------------------------------------------------- /docs/entry/prologue/assets/Xfce4.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/prologue/assets/Xfce4.16.png -------------------------------------------------------------------------------- /docs/entry/prologue/assets/opensuse-kde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/entry/prologue/assets/opensuse-kde.png -------------------------------------------------------------------------------- /docs/entry/prologue/choose-distro.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Linux 发行版" 3 | comments: true 4 | --- 5 | 6 | 狭义的 Linux 只是内核的名字,而完整的操作系统除了内核外还有很多部分;而把这些部分组合起来,成为一个可用的操作系统,这个操作系统就叫“Linux 发行版”。发行版为一般用户预先集成好了 Linux 内核及各种应用软件,用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。集成的软件与配置不同,就诞生了不同的发行版。 7 | 8 | !!! info 9 | 如果想要了解关于其他发行版的信息,请参阅[再次入门:发行版](../../advanced/re-entry/distro.md)。
10 | 如果你想要了解 Linux 常用的桌面环境,请参阅 [Linux 桌面环境](./desktop-environment.md)。 11 | 12 | 为了教程简单起见,我们在此推荐以下几个发行版作为桌面日常使用: 13 | 14 | ## openSUSE Tumbleweed 15 | 16 | !!! note "风滚草快讯" 17 | 18 | 选择 Tumbleweed 的用户请务必留意一下 [openSUSE 中文社区](https://suse.org.cn/)的每周更新的新闻译文。这有助于你了解风滚草在过去一周的动态。一些重要的信息(如本地化资讯、紧急通告、社区活动、聚会、会议、Leap 新闻动态等)都会在此发布。 19 | 20 | [openSUSE Tumbleweed](https://www.opensuse.org/#Tumbleweed)(也叫:openSUSE 风滚草)是 **滚动** 的 Linux 发行版。滚动发行意味着没有固定的发行周期,一般每周都会收到 1-3 次更新。openSUSE 针对桌面环境进行了一系列的优化,并具有一整套图形化系统管理工具,是一个对 Linux 系统管理新学者友好的 Linux 发行版。openSUSE 是 [SUSE](https://www.suse.com/zh-cn/) 的[企业级 Linux](https://www.suse.com/zh-cn/products/server/) 的技术上游,同时也从企业级技术中受益颇多。 21 | 22 | ## Fedora Workstation 23 | 24 | [Fedora Workstation](https://getfedora.org/) 是另一个国际知名的 Linux 发行版,由 Fedora 项目社群开发、[红帽公司](https://www.redhat.com/zh)赞助。Fedora 每6个月发布一个新版本,是众多 Linux 前沿技术的发源地,红帽公司[商业产品](https://www.redhat.com/zh/technologies/linux-platforms/enterprise-linux)的技术上游,靠近上游,贴近原生,激进而不失稳定。Fedora Workstation 默认的桌面环境是 [Gnome](https://www.gnome.org/)。 25 | 26 | -------------------------------------------------------------------------------- /docs/entry/prologue/desktop-environment.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Linux 桌面环境" 3 | comments: true 4 | --- 5 | 6 | ## 什么是桌面环境 7 | 8 | Desktop Environment(DE,桌面环境)也被称之为 Linux 桌面。 9 | 10 | 在计算机科学中,桌面环境是桌面比拟(desktop metaphor)的一种实现。在桌面比拟的概念中,计算机的显示器如同用户的桌子,而显示器上的窗口、图标就相当于桌子上摆放的物品。桌面环境由运行在计算机操作系统之上的一组程序组成,这些程序共享一个通用的图形用户界面 (GUI)。我们有时也称桌面环境为图形 shell。 11 | 12 | 在移动计算兴起之前,桌面环境主要出现在个人电脑上。桌面 GUI 能帮助用户轻松访问和编辑文件,但通常不允许用户访问底层操作系统中的所有功能。当需要完全控制操作系统时,人们往往使用传统的命令行界面 (CLI)。 13 | 14 | 桌面环境通常由图标、窗口、工具栏、文件夹、壁纸和桌面小部件组成。GUI 还可能提供拖放等功能,以及其他使桌面比拟更加完整的特性。桌面环境旨在成为用户与计算机交互的直观方式,它们使用按钮、窗口等这些人们熟知的、与现实世界交互时的概念。 15 | 16 | 起初,桌面环境描述的是遵循桌面比拟的用户界面风格,但现在它也指代实现桌面比拟本身的程序。这种用法已被 Common Desktop Environment、K Desktop Environment 和 GNOME 等项目推广。 17 | 18 | ## 主要的桌面环境 19 | 20 | Linux 可用的桌面环境种类繁多,它们各有特色,面向不同的群体。其中,有三个最为流行和广泛应用的桌面环境:[Gnome](https://www.gnome.org/)、[KDE](https://kde.org/) 和 [Xfce](https://xfce.org/)。 21 | 22 | **值得注意的是,人们实际使用的桌面可能和下面截图上的不太一样。**Linux 桌面自由度很高,人们可以按照自己的想法调整它们的外观。比如,喜欢 Windows 的人就可能会把 Gnome 调整成 Windows 的样子。 23 | 24 | Gnome 是由 [Gnome Project](https://www.gnome.org/) 主导开发的一个类似于 Mac 的桌面环境,也是 Fedora, RHEL 等 Linux 社区/商业发行版的默认桌面环境。Gnome 的理念是让用户专注于工作本身,因而采用了简约的设计风格。Gnome 强调让用户注重工作空间的管理与使用,而不是让一堆程序界面杂乱无章地散落在桌面上。Gnome 的缺点是难以灵活自定义,对插件的管理能力较差,有些额外的功能需要依靠第三方工具才能实现。 25 | 26 | ![GNOME](./assets/OSlp151_GNOME-Notifications.png) 27 | 28 | KDE 是由 [KDE.org](https://kde.org/) 主导开发的一个类似 Windows 的桌面环境。它的默认界面类似 Windows,但在美观性和易用度上还更胜一筹。KDE 允许用户高度自定义整个系统(甚至美化登陆界面也可以);同 KDE 深度整合的 [KDE 套件](https://apps.kde.org/) 也是让很多用户喜爱 KDE 的原因之一;KDE 还具有强大的可扩展性,用户可以安装各种各样的插件增强 KDE 的功能。KDE 的缺点是内存占用偏高,且容易因为过度自定义而变得臃肿;其配置页面也可能会使一些用户晕头转向;个别 KDE 软件功能和效率也难以与专业软件匹敌。 29 | 30 | ![KDE](./assets/opensuse-kde.png) 31 | 32 | Xfce 是由 [Xfce Project](https://xfce.org/) 主导开发的一个类似 Windows 的轻量级桌面环境。Xfce 占用的资源更少,整体更轻便(依赖的附加软件包较少),反应更灵敏(操作灵敏度相近于同硬件配置的 Windows);更注重稳定性(以三年为一个研发周期);简约而又不缺乏基本功能。Xfce 的缺点是它的默认配置对于新用户来说显得有些古板或简陋,缺乏动画、特效的支持。 33 | 34 | ![XFCE](./assets/Xfce4.16.png) 35 | 36 | ### 截图欣赏 37 | 38 | 以下是由 openSUSE wiki 提供的三个桌面环境的截图: 39 | 40 | - [Gnome](https://zh.opensuse.org/Portal:GNOME/Screenshots) 41 | - [KDE](https://zh.opensuse.org/KDE) 42 | - [Xfce](https://zh.opensuse.org/Portal:Xfce/Screenshots) 43 | -------------------------------------------------------------------------------- /docs/entry/prologue/switch-to-linux.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "切换到 Linux" 3 | description: "切换到Linux之前应当了解的一些事项。" 4 | lead: "在开始非凡的 GNU/Linux 之旅之前,您应当了解这些。" 5 | comments: true 6 | --- 7 | 8 | ## 什么是 Linux ? 9 | 10 | 狭义上,Linux 只是一个操作系统内核的名字,而广义上,Linux 可以指代所有使用 Linux 内核的操作系统。 11 | 12 | 得益于 Linux 内核的开源(源代码可以被所有人获取)与自由(可以将 Linux 用于任意用途),Linux 在各处扎根。智能手机、智能路由器、网站服务器,这些都是典型的应用场景。从谷歌到百度,从淘宝到亚马逊,这些企业都采用 Linux 作为他们网络设施的一部分。即使您没有听说过 Linux,您也有很大可能在享受着 Linux 带来的服务——只是您没有明确的感知到而已。 13 | 14 | ## 为什么选择 Linux 作为桌面操作系统? 15 | 16 | 不同的人有不同的理由。这些理由可能是伦理上的、经济上的或者单纯是一种学习更多知识的方式。以下给出几个常见的理由: 17 | 18 | 1. **自由开源**:Linux 是由自由与开源软件所构成的,用户可以依照自己的意愿使用 Linux。如果您愿意的话,还可以学习程序源代码,修改程序以及分享程序。与之相对的专有软件则无法做到这一点,尝试研究专有软件的运作方式可能会带来法律风险。 19 | 20 | 1. **开放生态**:Linux 上的生态是完全开放的,这些标准可以与不同的平台对接,避免被单一供应商锁定。 21 | 22 | 1. **安全稳定**:Linux 被世界上许多大公司采用,安全与稳定有某种程度的保障。同时 Linux 的权限管理相对严格,还有基于内核功能的沙箱机制,能够让应用在被攻破时提供更多保障。 23 | 24 | 1. **经济因素**:盗版 Windows、MacOS 违反了商业产品的用户协议,也违反了保护版权的法律。Linux 则无需支付授权费用,而且能在老旧或者低成本设备上运行,让你的设备焕发第二春。 25 | 26 | 1. **保护隐私**:自由与开源软件的性质让侵犯隐私的代码无处可藏。不再有各路商业软件在后台收集隐私,也不再有操作系统内置的广告跟踪与推荐。 27 | 28 | 1. **易于维护**:不再需要注册表整理,不再需要磁盘碎片整理,不再需要关注软件如何获取。开放的技术体系让你更容易发现问题的根源以及如何解决问题。 29 | 30 | ## 使用 Linux 带来的挑战 31 | 32 | 人生不如意者十有八九,使用 Linux 也不是一帆风顺。考虑到各种原因,您可能会遇到以下麻烦: 33 | 34 | 1. **学习曲线**:切换到一个全新的操作系统总是有难度的。新的程序、新的名词术语和新的生态。在其他操作系统上的经验不一定适用于 Linux。 35 | 36 | 1. **硬件支持**:Linux 支持绝大多数硬件,无论是目前三种主流显卡还是两家主流CPU都在支持的范围内,但这些毕竟不是全部。有些时候您的设备可能不支持,可能支持的不完美。 37 | 38 | 1. **软件生态问题**:不是所有应用都有 Linux 版,双系统启动、WINE 或虚拟机会提供这问题的*部分*解决办法。您可能需要使用一些替代品,比如用 WPS 或 LibreOffice 替换 MS Office。 39 | 40 | 1. **寻求帮助困难**:Linux 上的问题不能找电脑城师傅解决,您的朋友、同事或老师也可能不能帮助您。在许多时候,您需要向网路上的 Linux 社群求助(比如我们或者您的发行版所在的社群)或自行查阅官方的文档。 41 | 42 | ## 迁移前的准备 43 | 44 | ### 自我评价 45 | 46 | 在将你的日常事务迁移至 Linux 之前,最好仔细思考一下这样做是否合适,因为从一个生态迁移至另一个生态是一件需要消耗大量时间和精力的工作。 47 | 48 | Linux 主要应用场景: 49 | 50 | - 服务器:Linux 一直被用来作为服务器的操作系统,并且已经在该领域中占据重要地位。 51 | - 大型机:Linux 在大型机上越来越受欢迎,部分原因是定价和开源模式。 52 | - 超级计算机:Linux 作为超级计算机的操作系统也占主导地位。截至 2017 年 11 月,500 强名单上的所有超级计算机都运行某种变体的 Linux 。 53 | - 嵌入式设备:Linux 的低成本、强大的定制功能以及良好的移植性能,使得 Linux 在嵌入式系统方面也得到广泛应用。 54 | 55 | 谁适合用 Linux: 56 | 57 | - 计算机、通讯、安全专业及相关领域从业者; 58 | - 需要架设服务器、使用和研究单片机等嵌入式设备的人; 59 | - 希望能够有效利用老设备性能,而无需因现代商业操作系统的硬件要求问题而备受困扰的人; 60 | - 有空闲时间,不介意反复折腾系统,乐于尝试不同系统的人; 61 | - 喜欢配置和调整系统的方方面面以适配自己的工作的人; 62 | - 寻求免费,合法(授权来源正当,合乎版权法规)的非 Windows 或 macOS 系统的人。 63 | 64 | ### 一些建议 65 | 66 | 从其他操作系统转到 Linux 桌面环境并非一蹴而就,这里是我们的一点建议: 67 | 68 | 1. 循序渐进:从[虚拟机](../installation/virtual-machine.md)开始体验 Linux 桌面环境不是个坏主意,双系统(在一台电脑上同时安装 Windows 与 Linux)也是一种解决方案。不要想着在几天之内掌握整个 Linux,某个红帽[^rh]工程师[有言](https://www.zhihu.com/question/53295083/answer/2304247674):“所以说学习没有捷径,那些‘速成’的东西只是暂时的绕开了你‘终归绕不开’的问题而已。”并且 Linux 桌面也只是 Linux 宇宙中的一小部分。 69 | 70 | 2. 善于求助:与苹果砸牛顿脑袋的年代相比,21世纪的信息交流渠道方便了许多。您有数不清的途径可以求助。首先是软件附带的用户手册、文档,其次是搜索引擎,比如 Google 和百度。然后是求助于社区,比如各种 Linux 论坛与聊天群。 71 | 72 | 3. 尝试开源软件:你可以在 Windows 上尝试一些优秀的 Linux 软件(它们通常会有 Windows 版),了解这些软件可以让你更快将 Windows 下常用软件替换成 Linux 下的开源软件。如: 73 | 74 | - [Firefox](https://www.mozilla.org/en-US/firefox/new/) 网页浏览器 75 | - [Thunderbird](https://www.thunderbird.net/en-US/) 邮件客户端 76 | - [Krita](https://krita.org/) 平面绘画软件 77 | - [VLC](https://www.videolan.org/vlc/) 多媒体播放器 78 | - [Blender](https://www.blender.org/) 多用途的建模软件 79 | 80 | 4. 检查兼容性:Linux 支持绝大部分开源文件格式和大部分通用文件格式,了解一些常见的开放格式有助于你快速地将 Windows 上的文件转换为 Linux 上可读写的文件: 81 | 82 | - 看看你已有的 Windows 程序,检查 “另存为” 或是 “导出” 有哪些格式可用。 83 | - 检查 Linux 应用程序中的 “打开” 或 “以...打开” 或是 “导入” 对话框,看看是否发现有在 Windows 程式中可用的任何格式。 84 | - 检查 Linux 应用程序中的 “保存” 或是 “另存为” 对话框,看看它是否可以存成 Windows 使用者了解的格式。 85 | - 去学习或了解一些通用和开源文件格式,例如:[Markdown](https://www.markdown.xyz/)、[归档与压缩文件](https://wiki.archlinux.org/index.php/Archiving_and_compression)、[开放文档格式](https://baike.baidu.com/item/%E5%BC%80%E6%94%BE%E6%96%87%E6%A1%A3%E6%A0%BC%E5%BC%8F)。 86 | 87 | 5. 试用 Live 环境:很多 Linux 发行版都有提供 LiveCD 或 LiveDVD 镜像文件。除了在虚拟机中使用 Linux ,使用 LiveCD 在物理机上启动 Linux 也是一个不错的主意,它可以让你检查一下 Linux 与你的电脑硬件的兼容性如何(如果你的电脑具有不受开源驱动支持的计算机硬件,那你无法在 LiveCD 中直接使用该硬件设备),并单纯看看 Linux 究竟是怎么样的。从 LiveCD 启动的系统将比安装到硬盘的系统慢很多,你对 LiveCD 所作出的绝大部分更改都不会保存或生效(如在 LiveCD 中安装软件,下载文件),它们都会在系统重启后恢复原样。 88 | 89 | 那么,您准备好了吗?如果您的回答是肯定的,请点击页面右下方的箭头继续阅览吧。 90 | 91 | [^rh]: 红帽,即 RedHat 公司,最成功的商业化 Linux 公司之一。 -------------------------------------------------------------------------------- /docs/help/contact.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "FAQ" 3 | description: "常常被问到的问题。" 4 | lead: "常常被问到的问题。" 5 | date: 2020-10-06T08:49:31+00:00 6 | lastmod: 2020-10-06T08:49:31+00:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "help" 12 | weight: 700 13 | toc: true 14 | --- 15 | 16 | -------------------------------------------------------------------------------- /docs/help/faq.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "FAQ" 3 | description: "常常被问到的问题。" 4 | lead: "常常被问到的问题。" 5 | date: 2020-10-06T08:49:31+00:00 6 | lastmod: 2020-10-06T08:49:31+00:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "help" 12 | weight: 700 13 | toc: true 14 | --- 15 | 16 | 问:如何在文档中快速定位我想找的问题? 17 | 18 | 答:你可以善用左侧导航栏以及本文档的搜索功能。 19 | 20 | 问:我的问题在文档中找不到答案怎么办? 21 | 22 | 答:善用搜索引擎。或者向我们以及你所在的社区群组求助。 23 | 24 | 问:如何向你们求助? 25 | 26 | 答:你可以向本项目发起 issue,或者加入我们的用户群组。 -------------------------------------------------------------------------------- /docs/help/howto-ask-for-help.md: -------------------------------------------------------------------------------- 1 | # 如何提问 2 | 3 | 许多用户遇到问题时,都会求助于社区,下面给出了一些能够快速获得帮助的小窍门。这篇文章大体是《提问的智慧》的缩减版,还加入了一些实用性内容。 4 | 5 | ## 提问之前 6 | 7 | 在向社群求助之前,用户可以试着自己解决问题。下面有几点建议: 8 | 9 | * 阅读一下相关的文档与手册,也许阁下只是用法不对。 10 | * 也许阁下并不是第一个遇到类似问题的人。在搜索引擎上查找您遇到的问题,也可以搜寻相关的维基与论坛。 11 | 12 | ## 提问之时 13 | 14 | ### 保持礼貌 15 | 16 | 所有开源软件社群的成员都是自愿为大家提供帮助,没有人有义务来服务。即使社群里有来自开源软件公司的员工,他们也是在利用工作的闲暇时间来帮助社群。所以提问时要保持礼貌。(当然,如果阁下需要专业的技术支持,为什么不考虑一下购买开源公司服务呢?) 17 | 18 | ### 一次“优质”的提问 19 | 20 | 在求助于社群时,只说“我在使用某某软件或硬件功能时遇到了问题”是不够的。一次“优质”的提问包含以下要素: 21 | 22 | 01. 必要的基本信息 23 | 01. 软件的**名称**、**版本**与软件的**网站**(或者相关链接); 24 | 还有软件的安装方式也要说明(阁下使用的是发行版包管理器、Flatpak、Snap还是直接用的二进制文件?) 25 | 01. 发行版的 **名称**、**版本**; 26 | 滚动发行版要说明是哪个快照,如果快照比较旧,建议更新再试试(要不然社群没法准确复现阁下的问题) 27 | 01. 准确的问题描述 28 | 01. 问题的症状与出现问题时的步骤,尽量附上截图(这个问题是如何产生的) 29 | 01. 能否复现问题(当再次尝试相同步骤时,是一定发生问题还是有几率发生?) 30 | 01. 预期的正常表现(每个人的软硬件环境不完全相同,描述一下预期的表现会有帮助) 31 | 01. 阐述阁下为解决问题进行的尝试(不要让社群来踩阁下踩过的坑) 32 | 01. 正确的附加信息 33 | 附加信息有时对于解决问题很有帮助,包括但不限于:硬件信息、`uname` 信息、系统日志、网络状况、用户配置 34 | 35 | ### 提供足够的信息 36 | 37 | !!! caution 38 | 虽然附加信息很重要,但不要一股脑的贴上全部输出,当中可能含有隐私信息。 39 | 输出可能比较长,可以通过重定向把结果输出到文件,再用文本编辑器复制出需要的内容部分。比如 `sudo dmesg > /tmp/thglg-dmesg.txt`,然后 `xdg-open /tmp/thglg-dmesg.txt` 打开。 40 | 41 | #### 操作系统 42 | 43 | 发行版信息:终端中执行 `cat /etc/*-release`。输出中的 `NAME=` 与 `VERSION=` 即对应发行版名称与版本。 44 | 45 | ??? example "示例输出" 46 | ``` 47 | NAME="openSUSE Tumbleweed" 48 | # VERSION="20220314" 49 | ID="opensuse-tumbleweed" 50 | ID_LIKE="opensuse suse" 51 | VERSION_ID="20220314" 52 | PRETTY_NAME="openSUSE Tumbleweed" 53 | ANSI_COLOR="0;32" 54 | CPE_NAME="cpe:/o:opensuse:tumbleweed:20220314" 55 | BUG_REPORT_URL="https://bugs.opensuse.org" 56 | HOME_URL="https://www.opensuse.org/" 57 | DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed" 58 | LOGO="distributor-logo-Tumbleweed" 59 | ``` 60 | 61 | uname 信息:终端执行 `uname -a`。 62 | 63 | #### 硬件信息 64 | 65 | !!! note 66 | 硬件相关的问题必须附上硬件信息,仅仅告诉电脑的品牌与型号是不够的。 67 | 68 | USB 设备:终端执行 `lsusb --tree --verbose` 会输出连接的 USB 设备的名称与型号。 69 | 70 | PCI 设备:终端执行 `sudo lspci` 会输出连接的 PCI 设备的名称与型号。 71 | 72 | 如果运行在树莓派之类的特殊设备上,也应该对此说明。 73 | 74 | #### 提取日志 75 | 76 | 当程序运行出现问题时,一般会在标准输出或者各种日志内留下内容,有助于解决问题。 77 | 78 | 内核日志:终端执行 `sudo dmesg` 即可获得内核日志。 79 | 80 | 终端输出:可以用终端执行出问题的程序,这样一般程序会把许多信息输出到终端。 81 | 82 | systemd 日志:终端执行 `sudo journalctl -b` 即可获得自本次开机以来的所有日志,包括内核日志和其他程序的日志。也可以使用 `sudo journalctl -f` 来实时监测日志。 83 | 84 | 85 | ## 提问之后 86 | 87 | 耐心等待。社群不一定会马上回应。如果迟迟得不到回应,也有可能是阁下提的问题太糟糕了。 88 | 89 | 开源社群有时交流会比较直来直去,如果阁下觉得被冒犯了,最好平静地回应。如果有人真的恶言相向,社群里的前辈多半会招呼他;如果一群人都如此表现,换个地方问也未尝不可。 90 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | #template: home.html 3 | title: 欢迎 4 | toc_depth: 0 5 | --- 6 | 7 | 14 | 15 | 51 | 52 |
53 | 54 | # Linux 银河漫游指南 55 | 56 | 面向普通桌面用户的、开源的、人类可读的 Linux 桌面文档 57 | 58 |
59 | 60 | [开始阅读](intro.md){ .md-button .md-button--primary } 61 | 62 |
63 | 64 | 以 CC-BY-SA 协议开源于 GitHub 65 | 66 |
67 | 68 | --- 69 | 70 | !!! bug 71 | 您阅读是文档的早期版本,本文档还在建设当中,许多内容并不完全,敬请留意。 72 | 73 |
74 | 75 | ![Image title](assets/images/Freedesktop-logo-for-template.svg) 76 | 77 | ## 符合标准 78 | 79 | Linux 桌面以 Freedesktop.Org 标准为核心,所有的桌面环境都在这一标准下工作。跟随这一标准能让我们惠及更多用户。 80 | 81 |
82 | 83 |
84 | 85 | ![Image title](assets/images/Distro.webp) 86 | 87 | ## 跨发行版 88 | 89 | 统一的、通用的文档在一定程度上可以广泛适用于遵循 Freedesktop.Org 标准的 Linux 桌面。 90 | 91 |
92 | 93 |
94 | 95 | ![Image title](assets/images/Flatpak-truck.webp) 96 | 97 | ## 容器化 98 | 99 | Flatpak、Toolbx 等容器化技术弱化了发行版之间的鸿沟,同时为应用程序提供一定程度上的隔离与防护、也能限制第三方或闭源应用的行为。 100 | 101 |
102 | 103 |
104 | 105 | ![Linux DE](assets/images/linux-de.webp) 106 | 107 | ## 易于理解 108 | 109 | 本文档面向所有桌面用户,致力于提高可读性与可操作性,以降低 Linux 桌面使用门槛。 110 | 111 |
112 | 113 |
114 | 115 | ## 实用主义 116 | 117 | 与各发行版的 Wiki 不同,我们不会把讨论技术细节作为重点,而是强调过程与结果,最终使普通 Linux 桌面用户获益。 118 | 119 |
120 | 121 |
122 | 123 | ## 真正开源 124 | 125 | 本文档采用 CC-BY-SA 开源协议发布。 126 | 127 |
128 | -------------------------------------------------------------------------------- /docs/intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "简介" 3 | description: "简介" 4 | lead: "面向普通桌面用户的、开源的、人类可读的 Linux 桌面文档。" 5 | comments: true 6 | --- 7 | 8 | # 简介 9 | 10 | !!! note 11 | 这个项目很缺乏维护者和贡献者,也缺乏来自读者的反馈。我们鼓励读者在 Github [讨论区](https://github.com/linuxhitchhiker/THGLG/discussions)提供反馈,如果读者觉得有需要改进的地方,我们也欢迎读者直接提交 Pull Request。 12 | 更多信息,请阅读 [来自贡献者的留言](about/words-from-contributor.md) 13 | 14 | 《Linux 银河漫游指南》面向所有桌面用户,不论你是初探 Linux 世界的新手,还是经验丰富的资深老鸟,我们都希望你能在这里找到有价值的信息。 15 | 16 | 本文档关注 Linux 桌面用户的实际体验,通过阅读本文档并参考本文档的指引,你能够正确地安装 Linux 系统,获取满足办公、生活、娱乐等需求的贴合日常实际使用需求的软件并进行合理配置。 17 | 18 | 本文档主要由 Fedora 以及 openSUSE 中文社区的贡献者发起。在给予上述发行版有针对性的参考信息的同时,我们倡导使用 Flatpak 等容器化技术进行软件安装等日常操作,努力使我们的文档更具有通用性,从而同时适用于 Debian 系、Arch 系等发行版,具有更强的跨发行版属性。 19 | 20 | 另外,我们倡导自由、包容、开放的价值观。不论你使用哪个发行版,不论你使用 Gnome、KDE 亦或是任何其他桌面环境以及窗口管理器,不论你是狂热的开源拥护者还是仅仅想获取满足自己需求的软件,都能在这里求同存异、找到属于自己的位置。 21 | 22 | ## 阅览说明 23 | 24 | 本指南大致分为三个部分,敬请选择自己需要的部分阅读: 25 | 26 | * [入门指南](entry/prologue/switch-to-linux.md):针对新手的Linux安装与使用指南,旨在快速安装并使用 27 | * [进阶教程](advanced/shell/index.md):更进一步的指引,伴以概念性的讲解 28 | * [解决方案](solution/software/browser.md):对于各种需求解决方案,包括影音娱乐、网上冲浪等方面 29 | 30 | 我们建议读者使用目录与搜索功能,这样能更快的定位自己所需要的内容。同时,本文档完全开源,托管于 GitHub,采用 CC-BY-SA 4.0 协议,我们鼓励读者提交更新与修正,具体事项参见[贡献指南](about/contributing/index.md)。 -------------------------------------------------------------------------------- /docs/poweruser/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 概述 3 | --- 4 | 5 | 本节主要阐述与打包相关的内容,以及如何对社群做贡献。 -------------------------------------------------------------------------------- /docs/solution/compatibility/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 概述 3 | --- 4 | 5 | ## 关于 6 | 7 | 本节主要阐述和跨系统,跨平台相关的工具和使用指南。 -------------------------------------------------------------------------------- /docs/solution/compatibility/distrobox.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Distrobox 3 | --- -------------------------------------------------------------------------------- /docs/solution/compatibility/docker.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Docker 3 | --- -------------------------------------------------------------------------------- /docs/solution/compatibility/toolbx.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Toolbx 3 | --- -------------------------------------------------------------------------------- /docs/solution/compatibility/virtual-machine.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 虚拟机 3 | --- 4 | 5 | !!! note 6 | 本文中罗列的虚拟机的 Linux 版和 Windows 版的使用方法区别不大。 7 | 8 | ## KVM 9 | 10 | !!! note 11 | KVM 不支持 Windows 系统。 12 | 13 | KVM,Kernel-based Virtual Machine,是一种内置于 Linux 内核中的管理程序。它的目的类似于 Xen,但运行起来要简单得多。与原生 QEMU 使用仿真不同,KVM 是 QEMU 的一种特殊运行模式,它通过内核模块使用 CPU 扩展(HVM)进行虚拟化。 14 | 15 | !!! note 16 | openSUSE 有一份十分详细的[虚拟化文档](https://doc.opensuse.org/documentation/leap/virtualization/html/book-virtualization/index.html),涵盖在 openSUSE 上使用 KVM/Xen 的方方面面。 17 | 18 | 首先,检查你当前的设备是否支持虚拟化: 19 | 20 | ``` 21 | sudo LC_ALL=C lscpu | grep Virtualization 22 | ``` 23 | 24 | 对于 Intel 处理器来输出结果说是 VT-x ,对于 AMD 处理器来说是 AMD-V ;否则你的机器不支持虚拟化。 25 | 26 | 对于 openSUSE 用户,你只需要打开 YaST ,点击**虚拟化**,再点击**安装 Hypervisor 和工具**。勾选 **KVM 工具**和 **KVM 服务器**。之后你只需要等待 YaST 自动安装并校验所有包;如果你已经安装了 KVM 相关组件,那相应的选项会变成不可点击的灰色。 27 | 28 | 对于 Fedora 用户,Fedora 软件包仓库里提供了「虚拟化」软件包组,里面就包含了我们所需的全部软件包,你可以直接安装: 29 | 30 | ``` 31 | sudo dnf install @virtualization 32 | ``` 33 | 34 | 最后,你还需要加入 libvirtd 用户组,并启用 libvirtd: 35 | 36 | ``` 37 | sudo usermod -aG libvirt $USER 38 | sudo systemctl enable libvirtd --now 39 | ``` 40 | 41 | 完成上述步骤后,重启系统即可。 42 | 43 | 有关 KVM 的使用指南,除了 openSUSE 官方文档,你还可以阅读来自 openSUSE wiki 的[词条](https://zh.opensuse.org/KVM)。 44 | 45 | ## VirtualBox 46 | 47 | ### 安装 48 | 49 | VirtualBox 是另一个流行的虚拟机软件。你可以运行下列命令直接安装: 50 | 51 | ``` 52 | sudo zypper in virtualbox 53 | sudo dnf in virtualbox 54 | ``` 55 | 56 | 然后加入用户组: 57 | 58 | ``` 59 | sudo usermod -aG vboxusers $USER 60 | ``` 61 | 62 | 注销再登陆即可。 63 | 64 | ### 安装扩展包 65 | 66 | 扩展包主要提供了 USB 驱动和 3D 加速驱动等版权内容。 67 | 68 | 1. 下载 [VirtualBox Extension Pack](https://www.virtualbox.org/wiki/Downloads)。 69 | 2. 打开 VirtualBox ,点击 **管理** ,再点击 **全局设定** ,再点击 **扩展** ,再点击右侧的 **添加新包** 的小图标,安装你刚刚下载保持的扩展包文件。 70 | 3. 首次打开 VirtualBox 会提示用户是否启用 USB 功能(这可能会带来安全风险,但是它带来的便利值得这么做),个人建议可以使用该功能。 71 | 72 | 有关 virtualbox 的使用,可以参考 [VirtualBox#通用步骤 -- openSUSE Wiki](https://zh.opensuse.org/Virtualbox#.E9.80.9A.E7.94.A8.E6.AD.A5.E9.AA.A4) -------------------------------------------------------------------------------- /docs/solution/compatibility/wine.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Wine 3 | --- -------------------------------------------------------------------------------- /docs/solution/config/dual-boot.md: -------------------------------------------------------------------------------- 1 | # 双系统启动 2 | 3 | 双系统启动(在同一台机器上安装多个操作系统)适合于对于 Windows 仍然有依赖需求(比如 Adobe 全家桶)的用户。 4 | 5 | ## EFI 6 | 7 | 不论是 openSUSE、Fedora 还是 Windows 10。它们的默认安装器的默认配置方案都会优先将系统的 EFI 挂载到硬盘中已经存在的 EFI 系统分区(ESP)。所以,建议先安装 Windows 10,再安装 Linux,这样 grub 引导加载器就能直接扫描到 Windows 10 系统,并将其添加到启动界面中。 8 | 9 | 除非硬盘上已经存在的 ESP 分区大于或等于 512MB,否则建议在安装 Linux 的时候,手动创建一个供当前系统使用的 EFI 分区。以出现防止 Windows 更新损坏 Linux 的引导文件或者 ESP 分区空间不足等故障。 10 | 11 | ### 分区相对大小 12 | 13 | 这方面的内容依赖于实际工作环境和个人需求,因人而异。 14 | 15 | 可参考 [双引导启动 -- openSUSE wiki](https://zh.opensuse.org/SDB:DVD_%E5%AE%89%E8%A3%85%E6%96%B9%E5%BC%8F#.E5.8F.8C.E5.BC.95.E5.AF.BC.E5.90.AF.E5.8A.A8) 16 | 17 | ## 重新生成 grub 18 | 19 | !!! note 20 | openSUSE YaST 中有一个名为**引导加载器**的组件可以编辑配置 grub(YaST/引导加载器/引导加载程序选项/默认引导选项)。 21 | 22 | 在设置多系统引导前,请确保你已经安装了 `os-prober`: 23 | 24 | ``` 25 | sudo dnf in os-prober 26 | sudo zypper in os-prober 27 | ``` 28 | 29 | 然后确认 `/etc/default/grub` 文件存在下列行: 30 | 31 | ``` 32 | GRUB_DEFAULT=saved 33 | GRUB_SAVEDEFAULT=false #该项的默认值是 False,有些系统的配置文件可能不会有该行。 34 | ``` 35 | 36 | 如果你是先安装 Linux 再安装 Windows,则需要重新生成 grub 配置。Windows 10 会自动把自己设置为优先引导启动的系统。使用下述命令重新生成 grub 配置文件: 37 | 38 | ``` 39 | # grub2-mkconfig -o /boot/grub2/grub.cfg 40 | ``` 41 | 42 | 然后将 grub2 安装到你的硬盘的主分区(仅对使用 MBR 分区的用户): 43 | 44 | ``` 45 | # grub2-install /dev/sda 46 | ``` 47 | 48 | ### 重新设置优先启动条目 49 | 50 | `grub2-mkconfig` 只会刷新配置文件,不会设置优先启动的系统。 51 | 52 | 列出所有可用的菜单条目: 53 | 54 | ``` 55 | sudo grep -P "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 56 | ``` 57 | 58 | 然后选择其中一个选项,并将其作为参数设置为默认的菜单条目: 59 | 60 | ``` 61 | sudo grub2-set-default 62 | ``` 63 | 64 | 然后使用下述命令查看默认的菜单条目: 65 | 66 | ``` 67 | sudo grub2-editenv list 68 | ``` 69 | 70 | 然后再重新生成一遍 grub 配置即可。 71 | 72 | 例如: 73 | 74 | ``` 75 | bh@c004-h0:~> sudo grep -P "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 76 | openSUSE Tumbleweed 77 | Windows Boot Manager (on /dev/nvme0n1p4) 78 | UEFI Firmware Settings 79 | bh@c004-h0:~> sudo grub2-set-default "openSUSE Tumbleweed" 80 | bh@c004-h0:~> sudo grub2-editenv list 81 | env_block=512+1 82 | saved_entry=openSUSE Tumbleweed 83 | bh@c004-h0:~> sudo grub2-mkconfig -o /boot/grub2/grub.cfg 84 | Generating grub configuration file ... 85 | Found theme: /boot/grub2/themes/openSUSE/theme.txt 86 | Found linux image: /boot/vmlinuz-5.17.2-1-default 87 | Found initrd image: /boot/initrd-5.17.2-1-default 88 | Found linux image: /boot/vmlinuz-5.17.1-1-default 89 | Found initrd image: /boot/initrd-5.17.1-1-default 90 | Warning: os-prober will be executed to detect other bootable partitions. 91 | Its output will be used to detect bootable binaries on them and create new boot entries. 92 | Found Windows Boot Manager on /dev/nvme0n1p4@/EFI/Microsoft/Boot/bootmgfw.efi 93 | Adding boot menu entry for UEFI Firmware Settings ... 94 | done 95 | ``` -------------------------------------------------------------------------------- /docs/solution/config/hidpi.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "HiDPI" 3 | description: "Doks is a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize." 4 | lead: "Doks is a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize." 5 | date: 2020-10-06T08:48:57+00:00 6 | lastmod: 2020-10-06T08:48:57+00:00 7 | draft: false 8 | images: [] 9 | menu: 10 | docs: 11 | parent: "issues" 12 | weight: 400 13 | toc: true 14 | --- 15 | 16 | -------------------------------------------------------------------------------- /docs/solution/config/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "概述" 3 | --- 4 | 5 | 本节主要描述一些值得参考的系统配置方案。 -------------------------------------------------------------------------------- /docs/solution/eyecandy/eyecandy-kde.md: -------------------------------------------------------------------------------- 1 | # openSUSE KDE 美化简易指南 2 | 3 | ## 效果预览 4 | 5 | 桌面: 6 | 7 | ![start](./image/KDE/start.png) 8 | 9 | 文件管理器: 10 | 11 | ![file-manager](./image/KDE/file-manager.png) 12 | 13 | 浏览器: 14 | 15 | ![chrome](./image/KDE/chrome.png) 16 | 17 | 终端: 18 | 19 | ![neofetch](./imager/../image/KDE/neofetch.png) 20 | 21 | ## 配置主题 22 | 23 | ### 修改内容 24 | 25 | - 全局主题 26 | - 应用程序风格 27 | - GNOME/GTK 应用程序风格 28 | - Plasma 应用程序风格 29 | - 窗口装饰元素 30 | - 图表 31 | - 光标 32 | - Konsole 33 | 34 | ### 配置前准备 35 | 36 | 由于我长期使用的设备是电脑而非手机,所以我会偏好于深色主题。你可以在 KDE 内嵌的主题下载器中下载主题,或者打开浏览器前往 [KDE Store](https://store.kde.org/browse/) 在线下载主题。 37 | 38 | !!! Warning 39 | 目前来说,要实现对具有复杂配置的 KDE 浅色/深色主题自动切换,还没有一个有效的解决方案。所以在深度美化 KDE 之前,你最好确定你需要哪种主题样式。 40 | 41 | 个人建议选择下载全局主题(Global Theme)而非零散的单个主题,这样视觉效果会更加协调。这里推荐一个优秀的主题设计师:[Vinceliuice](https://github.com/vinceliuice)。他发布了许多优雅美观的 [Qt](https://store.kde.org/u/vinceliuice)/[GTK 主题](https://www.gnome-look.org/u/vinceliuice)。 42 | 43 | 本次演示将使用 Vinceliuice 制作的: 44 | 45 | - [Qogir-kde](https://github.com/vinceliuice/Qogir-kde):全局主题 46 | - [Qogir Theme](https://www.gnome-look.org/p/1230631/):GNOME/GTK 应用主题 47 | - [Qogir cursors](https://store.kde.org/p/1366182):鼠标主题 48 | - [Tela-icon-theme](https://store.kde.org/p/1279924):应用图标包 49 | 50 | !!! note 51 | 如果为了图标样式更加协调统一,你可以使用 [Tela circle icon theme](https://store.kde.org/p/1359276) 圆形图标包。但是由于图标包并未能覆盖全部的图标,所以有时候会出现一些应用程序的图标不是圆形的情况。 52 | 53 | 打开终端: 54 | 55 | !!! note 56 | 如果你没有或不懂得如何使用 `git`,你可以打开[仓库页面](https://github.com/vinceliuice/Qogir-kde),点击绿色的 Code 按钮,选择 **Download ZIP** 下载压缩包文件,再解压即可。 57 | 58 | ``` 59 | $ git clone https://github.com/vinceliuice/Qogir-kde.git #使用 git 克隆仓库 60 | $ cd Qogir-kde 61 | $ ./install.sh #执行自动安装脚本 62 | ``` 63 | 64 | 然后将下载好的 `Qogir cursors` 和 `Tela-icon-theme` 解压。然后将它们都复制到 `~/.icons` 或者 `/usr/share/icons`。前者是用户自己的图标主题目录,后者是系统共享的图标主题目录(所有用户都可使用)。`Qogir Theme` GTK 主题暂时不需要解压。 65 | 66 | 然后安装 `kvantum-manager` 67 | 68 | ``` 69 | $ sudo zypper in kvantum-manager kvantum-manager-lang 70 | ``` 71 | 72 | ### 调整设置 73 | 74 | 打开 KDE 的系统设置,在**外观**的**全局主题** 中,选择刚刚安装好的主题,如 `Qogir Dark`。然后分别在**图标**和**光标**中选择你安装的主题,如 `Tela-dark` 和 `Qogir-white-cursors`。 75 | 76 | 77 | !!! note 78 | - 由于个人认为 Kvantum Manager 默认配置的样式效果已经很完善了,所以不作过多的修改。如果希望进行更为精细的配置,可自行搜索相关的文章和教程。 79 | - 安装脚本已经自动安装好 Kvantum 主题了,如果你选用了其他的 Kvantum 主题,你需要先解压文件,然后再用 Kvantum Manager 安装此 Kvantum 主题。 80 | 81 | 在**应用程序风格**中,选择 `Kvantum` 作为应用程序风格。打开 Kvantum Manager,点击**变更和删除主题**,选择你需要的 Kvantum 主题样式,确认并应用主题,如下: 82 | 83 | ![01](./image/KDE/settings-01.png) 84 | 85 | 在**应用程序风格**中,点击右下方的**配置 GNOME/GTK 应用程序风格**,然后点击**从文件安装**,选择你下载好的 `Qogir Theme` GTK 主题压缩包文件;再点击上方的 **GTK 应用程序风格**,在列表中选中你刚刚安装的主题,保存确认,如下: 86 | 87 | ![02](./image/KDE/settings-02.png) 88 | 89 | 最后,重启系统以应用新主题。 90 | 91 | #### 不必修改的内容 92 | 93 | grub 和登陆界面的主题样式虽然可以自定义,但不必更改。因为它们出现的时间短。并且用户更多时候是在使用应用程序而非登陆界面之类的东西。 94 | 95 | ### 配置其他应用程序 96 | 97 | 其他应用的主题样式一般可以设置为跟随系统或系统默认。 98 | 99 | #### Konsole 100 | 101 | 打开 Konsole,点击菜单栏的 **设置**>**配置 Konsole**>**配置方案**,新建一个新的配置方案。然后在**外观**页面中,选择一种你喜欢的配色方案和字体,点击右方的**编辑**,勾选**模糊背景**,并设置背景透明度(推荐 20%~30%)。其余内容请按照自身需要自行调整。如下: 102 | 103 | ![neofetch](./image/KDE/neofetch-02.png) 104 | 105 | #### 浏览器 106 | 107 | 推荐使用 [Dark Reader](https://github.com/darkreader/darkreader) 插件(支持基于 chromium 和 Firefox 的浏览器),使浏览器具备自动切换浅深色模式的功能。 108 | 109 | ## 壁纸 110 | 111 | !!! note 112 | 好看的主题也需要搭配好看的壁纸。 113 | 114 | ### 在线壁纸下载 115 | 116 | - [Wallhaven](https://wallhaven.cc/) 117 | 大型壁纸下载网站 118 | - [Pexels](https://www.pexels.com/zh-cn/) 119 | 才华横溢的摄影作者在这里免费分享最精彩的素材图片和视频。 120 | - [Pixabay](https://pixabay.com/) 121 | 我们才华横溢的社区分享了超过 250 万张高质量的图片、视频和音乐。 122 | - [Pixiv](https://www.pixiv.net/) 123 | 知名同人插画分享站点 124 | - [初之图库](https://img.himiku.com/) 125 | 本站是由 mikusa 个人维护的琉璃神社壁纸包来源站。 126 | - [Deviantart](https://www.deviantart.com/topic) 127 | 许多艺术创作的在线发布站点 128 | - [Flickr](https://www.flickr.com/) 129 | 包含使用 [CC 许可证](https://creativecommons.org/)进行分发的免费图片和其他内容。 130 | 131 | ### 桌面、登陆与锁屏 132 | 133 | 对于这三者,我的看法是选用一张好看的壁纸比好看的主题样式更为有效。 134 | 135 | - 对于桌面: 136 | 将下载的壁纸放入一个文件夹中,然后在桌面点击鼠标右键菜单中的**配置桌面和壁纸**,在**文件夹中**添加你的壁纸文件夹即可。 137 | - 登陆界面: 138 | 配置入口在:系统设置>开机与关机>登陆屏幕(SDDM) 139 | - 锁屏界面: 140 | 配置入口在:系统设置>工作区行为>锁屏>外观 -------------------------------------------------------------------------------- /docs/solution/eyecandy/eyecandy-xfce4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Xfce4 美化" 3 | --- 4 | 5 | ## 将 Xfce4 外观现代化 6 | 7 | !!! quote 8 | Xfce4 的一个问题就是,默认的主题显得十分具有年代感,似乎这是一件古董(虽然 Xfce4 确实是最早出现的桌面环境之一)。 9 | 10 | [Xfce4](https://xfce.org/) 也可以深度美化,但 Xfce 不适合进行大量自定义美化(这是 KDE 擅长的事情),保持简洁即可。更值得做的事情是让 xfce4 外观现代化。 11 | 12 | 如果你想要美化 Xfce,需要的做的应该是寻找一个你觉得**耐看**且美观的 GTK 主题,一套你喜欢的图标包和鼠标主题包;然后再将窗口主题也修改一下,最后再安装一些必要的面板插件。另外,openSUSE 官方仓库内有一些 gtk 主题(如 `metatheme-arc-common`, `metatheme-matcha-common`),你可以使用 `zypper se metatheme` 获取更多信息。 13 | 14 | - Xfce 的外观设置页面可以添加本地的主题包,图标包同理。 15 | - 鼠标主题包请先解压到 `~/.icons` 文件夹中,然后在鼠标和触摸板设置中替换刚刚下载的鼠标主题包。 16 | - 相关: 17 | - [Xfce Look - Eyecandy for your XFCE-DESKTOP](https://www.xfce-look.org/) 18 | - [Gnome Look - Eyecandy for your GNOME-DESKTOP](https://www.gnome-look.org/) 19 | 20 | 如果你希望其他用户也能使用你的主题和图标包,你需要将已解压的文件夹放置到以下目录: 21 | 22 | |文件夹|用途| 23 | |---|----| 24 | |`/usr/share/icons`|共享的应用图标/鼠标光标主题文件夹| 25 | |`/usr/share/themes`|共享的 GTK 主题文件夹| 26 | |`/usr/share/wallpapaers`|共享的壁纸文件| 27 | 28 | !!! note 29 | - 如果你希望 xfce4 的锁屏能够正确显示你指定的壁纸图片,那你需要将壁纸文件放置到无限制访问权限的 `/usr/share/wallpapaers` 中,这样相关的程序才能正确地读取壁纸文件。 30 | - 要编辑锁屏界面,你需要额外安装一个 lightdm 编辑器:`lightdm-gtk-greeter-settings` 31 | 32 | ## xfce4 面板插件 33 | 34 | 默认安装好的 Xfce 可能会缺少一些相关的组件(如剪切板,CPU 频率表),你可以阅读 xfce 官方的[插件使用手册](https://docs.xfce.org/panel-plugins/start)获得更多信息(包含简易的使用指南)。 35 | 36 | openSUSE 预装的 xfce4 桌面环境没有安装完整的 xfce4 插件。以下是一些推荐的扩展: 37 | 38 | ``` 39 | sudo zypper in xfce4-clipman-plugin #安装剪贴板插件 40 | sudo zypper in xfce4-netload-plugin #安装网络负载监视器 41 | ``` 42 | 43 | ## dock 栏 44 | 45 | 一篇介绍流行的 dock 栏应用的文章:[Top 10 Best Linux Docks That You MUST Try in 2020 -- Journaldev](https://www.journaldev.com/36769/top-best-linux-docks-2020) 46 | 47 | ``` 48 | sudo zypper in plank #一个简约,美观的 dock 栏 49 | ``` 50 | 51 | 你可以使用 xfce4 官方开发的 docker 栏:打开面板首选项,在**备份和恢复**中选择其他的预制方案,如 `Xfce 16.4`(包含一个顶栏和一个用于快速启动程序的底栏)确认变更即可。 -------------------------------------------------------------------------------- /docs/solution/eyecandy/image/KDE/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/eyecandy/image/KDE/chrome.png -------------------------------------------------------------------------------- /docs/solution/eyecandy/image/KDE/file-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/eyecandy/image/KDE/file-manager.png -------------------------------------------------------------------------------- /docs/solution/eyecandy/image/KDE/neofetch-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/eyecandy/image/KDE/neofetch-02.png -------------------------------------------------------------------------------- /docs/solution/eyecandy/image/KDE/neofetch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/eyecandy/image/KDE/neofetch.png -------------------------------------------------------------------------------- /docs/solution/eyecandy/image/KDE/settings-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/eyecandy/image/KDE/settings-01.png -------------------------------------------------------------------------------- /docs/solution/eyecandy/image/KDE/settings-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/eyecandy/image/KDE/settings-02.png -------------------------------------------------------------------------------- /docs/solution/eyecandy/image/KDE/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/eyecandy/image/KDE/start.png -------------------------------------------------------------------------------- /docs/solution/eyecandy/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "概述" 3 | --- 4 | 5 | 本节主要描述如何美化桌面系统的外观。 -------------------------------------------------------------------------------- /docs/solution/software/appimage-base.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 Appimage" 3 | --- 4 | 5 | ## 简介 6 | 7 | [AppImage](https://appimage.org/) 是一种在 Linux 系统中用于分发便携式软件而不需要超级用户权限来安装它们的格式。它还试图允许 Linux 的上游开发者来分发他们的程序而不用考虑不同 Linux 发行版间的区别。AppImage 的核心思想是一个文件即一个应用程序。每个 AppImage 都包含应用程序以及应用程序运行所需的所有文件。换句话说,除了操作系统本身的基础组件,Appimage 无需依赖即可运行。类似于 Windows 平台常见的便携版软件。[^1] 8 | 9 | ## 快捷工具 10 | 11 | 为了更便捷地管理 appimage 应用程序,你可以借助 [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher)。一键将 AppImages 集成到你的应用程序启动器,并从那里管理、更新和删除它们。 12 | 13 | ### 使用 14 | 15 | 1. 从 [GitHub Release](https://github.com/TheAssassin/AppImageLauncher/releases) 下载 `appimagelauncher-lite-*.AppImage` 16 | 2. 打开终端,移动到 AppImageLauncher 的下载目录,运行 `$ ./<文件名>.AppImage install` 即可安装 AppImageLauncher。 17 | 3. 打开应用程序启动器,打开 `AppImageLauncher Settings`,点击 `appImageLauncherd`,添加你常用于存放 appimage 文件的目录。默认的目录是 `~/Applications`。 18 | 4. AppImageLauncher 会自动识别存放在指定目录的 appimage 文件,然后将它们添加到应用程序启动器中。 19 | 20 | ## 快捷使用 21 | 22 | 如果你没有使用 AppImageLauncher,你只使用 `chmod` 命令为文件添加可执行权限即可,例如: 23 | 24 | ``` 25 | $ wget http://example.com/download/appimage.appimage #下载 26 | $ chmod +x appimage.appimage #添加可执行权限 27 | $ ./appimage.appimage #运行 28 | ``` 29 | 30 | ## 注意事项 31 | 32 | !!! attention 33 | 因为 appimage 文件不受任意 Linux 发行版的官方仓库维护者或安全团队的审查。**所以,用户必须自行承当安全风险,并请时刻保持小心。** 34 | 35 | 和从源码安装、使用预编译的二进制文件等方法一样,**Appimage 应当是一种获取应用程序的候选方案。**只有当你在 Linux 发行版官方软件仓库、已验证的第三方仓库(如 [packman](https://zh.opensuse.org/Packman)、[rpmfusion](https://rpmfusion.org/))中找不到软件时,才建议使用 appimage。 36 | 37 | 并且如果在上述范围内找不到可用的软件包,也请尽量使用上游软件开发者自行打包好的 appimage、rpm、deb、flatpak 或预编译的二进制文件。 38 | 39 | 如果你要使用第三方打包 appimage 文件,请确保这是你信赖的维护者/打包者。 40 | 41 | ### 与 Flatpak 相比 42 | 43 | Appimage 会假定用户已经安装了一些核心系统软件包(并且假定你安装的版本和依赖是正确),这意味着有些时候你下载获得的 Appimage 未必就能正常运行。而 Flatpak 使用同一的运行环境,规避了这些依赖问题。 44 | 45 | 此外,Appimage 需要额外的应用程序辅助才能集成到桌面环境之中,并且需要手动检查,下载更新包。相比于 Flatpak 而言,多出了一些额外的维护步骤。而 flatpak 的沙盒化特性有时候也会造成一些问题(比如不遵循系统的主题,与容器外的程序通讯存在问题等) 46 | 47 | 当然,要选择何种方式作为补充软件源,具体取决于你的需求,你也可以混合使用 appimage 和 flatpak。 48 | 49 | ## 外部链接 50 | 51 | - [AppImageHub](https://appimage.github.io/) 52 | - [AppImage 文档](https://docs.appimage.org/) 53 | - [AppImage 论坛](https://discourse.appimage.org/) 54 | 55 | [^1]: https://zh.wikipedia.org/wiki/AppImage -------------------------------------------------------------------------------- /docs/solution/software/browser.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "网络浏览器" 3 | --- 4 | 5 | 绝大多数桌面发行版都会将 Firefox 作为默认的网络浏览器。本节也会阐述如何安装其他的浏览器。 6 | 7 | ## Firefox 分支版本 8 | 9 | 你可以在 Firefox 的官方[下载页面](https://www.mozilla.org/en-US/firefox/all/#product-desktop-release)中找到任意版本,任意语言和地区的安装包或压缩包文件。 10 | 11 | 在将文件下载至本地后(例如将文件下载至 `~/Download`),你可以根据[官方指南](https://support.mozilla.org/en-US/kb/install-firefox-linux)执行以下操作: 12 | 13 | 1. 移动到下载文件夹,并将压缩包解压: 14 | ``` 15 | cd ~/Downloads && tar xjf firefox-*.tar.bz2 16 | ``` 17 | 2. 然后将解压好的文件夹移动到 `/opt` 目录下: 18 | ``` 19 | mv firefox /opt 20 | ``` 21 | 3. 创建一个符号链接: 22 | ``` 23 | ln -s /opt/firefox/firefox /usr/local/bin/firefox 24 | ``` 25 | 4. 下载一个 Desktop 文件用于在图形界面中创建程序启动按钮: 26 | ``` 27 | wget https://raw.githubusercontent.com/mozilla/sumo-kb/main/install-firefox-linux/firefox.desktop -P /usr/local/share/applications 28 | ``` 29 | 30 | ## Chrome 31 | 32 | !!! note 33 | 如果你需要使用 Chrome 的非稳定版版,你需要将 `google-chrome-stable` 替换为 `google-chrome-unstable` (金丝雀版)或者 `google-chrome-beta`(beta 版) 34 | 35 | 在 openSUSE 上安装谷歌 chrome: 36 | 37 | 1. 添加仓库: 38 | ``` 39 | sudo zypper ar http://dl.google.com/linux/chrome/rpm/stable/x86_64 google-chrome 40 | ``` 41 | 2. 获取公钥: 42 | ``` 43 | wget https://dl.google.com/linux/linux_signing_key.pub 44 | ``` 45 | 3. 导入公钥: 46 | ``` 47 | sudo rpm --import linux_signing_key.pub 48 | ``` 49 | 4. 安装 Google chrome 稳定版。 50 | ``` 51 | sudo zypper ref && sudo zypper in google-chrome-stable 52 | ``` 53 | 54 | 在 Fedora 上安装谷歌 chrome: 55 | 56 | 1. 添加第三方仓库: 57 | ``` 58 | sudo dnf install fedora-workstation-repositories 59 | ``` 60 | 2. 激活 Google Chrome 仓库: 61 | ``` 62 | sudo dnf config-manager --set-enabled google-chrome 63 | ``` 64 | 3. 安装 chrome 稳定版: 65 | ``` 66 | sudo dnf install google-chrome-stable 67 | ``` 68 | 69 | ### Chromium 70 | 71 | !!! note 72 | - 由于版权限制,openSUSE 和 Fedora 不能分发存在版权争议的内容。如果你需要浏览器支持一些闭源格式(如 H.264、AAC 或其他 DRM 保护内容),你需要手动安装闭源组件。 73 | - RPMfusion 已经提供一个包含完整组件的 `chromium-freeworld`。 74 | !!! warning 75 | - 谷歌已经禁止 chromium 和基于 chromium 的第三方浏览器读取谷歌的数据,所以 chromium 不能同步你原有的谷歌浏览器数据。 76 | 77 | Chrome 是基于开源浏览器 chromium 而搭建的闭源浏览器。如果你需要使用 Chromium,请依照一下步骤进行操作: 78 | 79 | 在 openSUSE 上安装 chromium: 80 | 81 | ``` 82 | sudo zypper in chromium 83 | ``` 84 | 85 | 安装闭源组件(可选): 86 | 87 | ``` 88 | sudo zypper in chromium-bsu chromium-ffmpeg-extra chromium-plugin-widevinecdm 89 | ``` 90 | 91 | 在 Fedora 上安装 chromium: 92 | 93 | ``` 94 | sudo dnf in chromium 95 | ``` 96 | 97 | 安装由 RPMFusion 提供,适用于 Fedora 的完整版 chromium(可选): 98 | 99 | ``` 100 | sudo dnf in chromium-freeworld 101 | ``` 102 | 103 | ### Flatpak 版 104 | 105 | 你可以通过 Flatpak 安装 chrome/chromium: 106 | 107 | 安装谷歌浏览器: 108 | 109 | ``` 110 | flatpak install flathub com.google.Chrome #谷歌浏览器稳定版 111 | ``` 112 | 113 | ``` 114 | flatpak install flathub com.google.ChromeDev #谷歌浏览器开发版 115 | ``` 116 | 117 | 安装 chromium: 118 | 119 | ``` 120 | flatpak install flathub org.chromium.Chromium 121 | ``` 122 | 123 | 安装 ungoogled-chromium: 124 | 125 | !!! note 126 | ungoogled-chromium 是一个由社区维护,默认禁用谷歌隐私追踪的开源浏览器。详细说明、修改内容以及潜在性问题详见[此处](https://github.com/Eloston/ungoogled-chromium/blob/master/README.md)。 127 | 128 | ``` 129 | flatpak install flathub com.github.Eloston.UngoogledChromium 130 | ``` 131 | 132 | ## Brave 浏览器 133 | 134 | 通过 Flatpak 安装: 135 | 136 | ``` 137 | flatpak install flathub com.brave.Browser 138 | ``` 139 | 140 | ### 通过官方源安装 141 | 142 | 在 Fedora 上安装 Brave: 143 | 144 | ``` 145 | sudo dnf install dnf-plugins-core 146 | 147 | sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/ 148 | 149 | sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc 150 | 151 | sudo dnf install brave-browser 152 | ``` 153 | 154 | 在 openSUSE 上安装 Brave: 155 | 156 | ``` 157 | sudo zypper install curl 158 | 159 | sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc 160 | 161 | sudo zypper addrepo https://brave-browser-rpm-release.s3.brave.com/x86_64/ brave-browser 162 | 163 | sudo zypper install brave-browser 164 | ``` 165 | 166 | ## Vivaldi 浏览器 167 | 168 | 在 Fedora 上安装: 169 | 170 | ``` 171 | sudo dnf install dnf-utils 172 | 173 | sudo dnf config-manager --add-repo https://repo.vivaldi.com/archive/vivaldi-fedora.repo 174 | 175 | sudo dnf install vivaldi-stable 176 | ``` 177 | 178 | 在 openSUSE 上安装: 179 | 180 | ``` 181 | sudo zypper ar https://repo.vivaldi.com/archive/vivaldi-suse.repo 182 | 183 | sudo rpm --import https://repo.vivaldi.com/archive/linux_signing_key.pub 184 | 185 | sudo zypper refresh && sudo zypper in vivaldi-stable 186 | ``` 187 | 188 | 你也可以在 Vivaldi 官网[下载页面](https://vivaldi.com/zh-hans/download/)直接下载 rpm 软件包。 189 | 190 | ## Tor 浏览器 191 | 192 | 通过 Flatpak 安装: 193 | 194 | ``` 195 | flatpak install flathub com.github.micahflee.torbrowser-launcher 196 | ``` 197 | 198 | 在 Fedora 上安装: 199 | 200 | ``` 201 | sudo dnf install torbrowser-launcher 202 | ``` 203 | 204 | 在 openSUSE 上安装: 205 | 206 | ``` 207 | sudo zypper install torbrowser-launcher 208 | ``` -------------------------------------------------------------------------------- /docs/solution/software/download-manager.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "下载器" 3 | --- 4 | 5 | ## 通用下载器 6 | 7 | `wget` 是许多 Linux 系统内置的一个下载工具,你可以使用下列命令查阅使用手册: 8 | 9 | ``` 10 | $ wget --help 11 | ``` 12 | 13 | [Aria2](https://aria2.github.io/) 14 | 15 | ``` 16 | sudo dnf in aria2 17 | sudo zypper in aria2 18 | ``` 19 | 20 | [Motrix](https://motrix.app/) 是一个基于 aria2 开发通用下载器,支持 HTTP、FTP 和 BT 磁力链等下载内容。除了 Flatpak 安装方式,motrix 也有提供 appimage 供下载使用。 21 | 22 | ``` 23 | flatpak install flathub net.agalwood.Motrix 24 | ``` 25 | 26 | ## BT 下载器 27 | 28 | [qBittorrent](https://www.qbittorrent.org/) 是一个流行的 bt 下载做种工具。 29 | 30 | !!! note 31 | - 如果你对于反吸血,屏蔽迅雷有需求,可以试试 [qBittorrent-enhanced-edition](https://github.com/c0re100/qBittorrent-Enhanced-Edition/releases)。 32 | - 适用于 openSUSE 的 qBittorrent-enhanced-edition 的 OBS 仓库详见[此处](https://build.opensuse.org/package/show/home:opensuse_zh/qBittorrent-Enhanced-Edition)。 33 | 34 | ``` 35 | sudo dnf in qbittorrent 36 | sudo zypper in qbittorrent 37 | ``` 38 | 39 | [Transmission](https://transmissionbt.com/) 是一个历史悠久的 bt 下载工具 40 | 41 | ``` 42 | sudo dnf in transmission 43 | sudo zypper in transmission 44 | ``` 45 | 46 | ### Tracker 47 | 48 | 有关如何使用 tracker 加速 BT 下载的指南详见[此处](https://trackerslist.com/)。 49 | 50 | ## 其他 -------------------------------------------------------------------------------- /docs/solution/software/flatpak-get-start.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "使用 Flatpak" 3 | --- 4 | 5 | ## 简介 6 | 7 | !!! note 8 | 有关 Flatpak 的一些误解(如下载的软件包体积巨大,是否有安全隐患或其他一些疑惑)详见:[Response to "Flatpak Is Not the Future"](https://theevilskeleton.gitlab.io/2022/05/16/response-to-flatpak-is-not-the-future.html)([中文译文](https://whiteboard-ui8.pages.dev/translation/2022-05-17-theevilskeleton/)) 9 | 10 | [Flatpak](https://www.flatpak.org/) 是一个用于 Linux 软件部署和包管理的实用程序。 它被宣传为提供沙盒环境,用户可以在其中运行应用程序软件,与系统的其余部分隔离。Flatpak 是作为 freedesktop.org 项目(以前称为 X Desktop Group 或 XDG)的一部分开发的,最初称为 xdg-app[^1]。 11 | 12 | ## 部署 13 | 14 | 安装基本程序: 15 | 16 | ``` 17 | sudo zypper in flatpak #在 openSUSE 上安装 flatpak 18 | sudo dnf in flatpak #在 fedora 上安装 flatpak 19 | ``` 20 | 21 | 添加远程仓库: 22 | 23 | ``` 24 | flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo 25 | ``` 26 | 27 | ## 安装后预处理 28 | 29 | ### 镜像 30 | 31 | 如果你访问 Flatpak 官方镜像很困难,无法正常下载,可以阅读: 32 | 33 | - [flathub - 上交大镜像服务](https://mirror.sjtu.edu.cn/docs/flathub) 34 | - [试用为中国大陆用户打造的 Flathub 镜像](https://zh.fedoracommunity.org/2020/05/13/try-on-flatpak-mainland-china-mirror.html) 35 | 36 | ### 编辑环境变量 37 | 38 | Flatpak 期望窗口管理器尊重 `XDG_DATA_DIRS` 环境变量来发现应用程序。此变量由脚本 `/etc/profile.d/flatpak.sh` 设置。 更新环境可能需要重新启动会话。 如果启动器不支持 `XDG_DATA_DIRS`,你可以编辑扫描的目录列表并将其添加到其中[^2]: 39 | 40 | ``` 41 | ~/.local/share/flatpak/exports/share/applications 42 | /var/lib/flatpak/exports/share/applications 43 | ``` 44 | 45 | 使用脚本自动完成添加变量: 46 | 47 | ``` 48 | cd /etc/profile.d/ && sudo sh ./flatpak.sh 49 | ``` 50 | 51 | 然后重新登陆即可 52 | 53 | ### 加入 Flatpak 用户组 54 | 55 | ``` 56 | sudo usermod -aG flatpak $USER 57 | ``` 58 | 59 | 然后重启即可。 60 | 61 | 如果你不加入 `flatpak` 用户组,则无法通过桌面环境的启动器启动程序,并需要使用 `flatpak` 命令在终端中启动程序,如: 62 | 63 | ``` 64 | flatpak run org.freefilesync.FreeFileSync #运行 FreeFileSync 65 | ``` 66 | 67 | ## 简易使用[^3] 68 | 69 | !!! note 70 | 请不要使用 `sudo` 命令运行 `flatpak`。以免导致一些预期之外的问题。 71 | 72 | 查看用户手册: 73 | 74 | ``` 75 | flatpak --help 76 | ``` 77 | 78 | 检索软件: 79 | 80 | ``` 81 | flatpak search [软件名称] #如: flatpak search atom 82 | ``` 83 | 84 | 安装软件: 85 | 86 | ``` 87 | flatpak install [软件名称] #如: flatpak install Atom 88 | ``` 89 | 90 | 运行软件: 91 | 92 | ``` 93 | flatpak run [应用 ID] #如: flatpak run io.atom.Atom 94 | ``` 95 | 96 | 查看已安装的软件: 97 | 98 | ``` 99 | flatpak list 100 | ``` 101 | 102 | 卸载软件: 103 | 104 | ``` 105 | flatpak uninstall [软件名称] 106 | ``` 107 | 108 | 更新软件: 109 | 110 | ``` 111 | flatpak update [软件名称] 112 | ``` 113 | 114 | ### 注意事项 115 | 116 | **请先搜索软件,然后再安装软件,以免安装错误的包名类似的软件。**需要注意 `flatpak search` 的输出结果中,你所需软件对应的应用 ID(如,Atom 的应用 ID 是 `io.atom.Atom`,所以在 `flatpak install` 的输出类似搜索结果列表中,应当选择 `4)app/io.atom.Atom/x86_64/stable`,而不是其他包名不相符的选项。如下: 117 | 118 | ![样例](./images/Flatpak_Install.png) 119 | 120 | ## 外部链接 121 | 122 | - [Flatpak 仓库总览 | 在线搜索](https://flathub.org/apps/category/All) 123 | 124 | [^1]: https://en.wikipedia.org/wiki/Flatpak 125 | [^2]: https://wiki.archlinux.org/title/Flatpak#Adding_Flatpak_.desktop_files_to_your_menu 126 | [^3]: https://zh.opensuse.org/Flatpak -------------------------------------------------------------------------------- /docs/solution/software/images/Flatpak_Install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/docs/solution/software/images/Flatpak_Install.png -------------------------------------------------------------------------------- /docs/solution/software/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "概述" 3 | --- 4 | 5 | 本节主要描述如何获取和使用一些常用软件的内容。 6 | 7 | ### Flatpak 8 | 9 | 如果你对 Flatpak 感兴趣,并愿意使用它作为获取软件的一种途径,请参考[此文](./flatpak-get-start.md)对 Flatpak 进行初始化配置。 -------------------------------------------------------------------------------- /docs/solution/software/instant-messaging.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "即时通讯" 3 | --- 4 | 5 | ## QQ 6 | 7 | [Icalingua++](https://github.com/Icalingua-plus-plus/Icalingua-plus-plus) 是一个社区开发的会话前端框架,支持腾讯 QQ。 8 | 9 | [QQ For Linux](https://im.qq.com/linuxqq/index.html) 是腾讯公司推出的 Linux 版 QQ 客户端。 10 | 11 | ## Telegram 12 | 13 | 安装 Telegram: 14 | 15 | ``` 16 | sudo dnf in telegram-desktop #在 Fedora 上安装 telegram 17 | sudo zypper in telegram-desktop #在 openSUSE 上安装 telegram 18 | ``` 19 | 20 | ### 本地社区群组 21 | 22 | 中文本地社区 23 | 24 | |名称|ID| 25 | |---|---| 26 | |Fedora 中文用户组|@fedorazh| 27 | |openSUSE 中国|@opensuse_cn| 28 | |gentoo 中文社区|@gentoo_zh| 29 | |Arch Linux 中文|@archlinuxcn_group| 30 | |Debian 中文频道|@debianzh| 31 | 32 | 国际社区 33 | 34 | |名称|ID| 35 | |---|---| 36 | |Fedora Linux Gateway|@fedora| 37 | |openSUSE in Telegram|@opensuse_telegram| 38 | |Arch|@archlinuxgroup| 39 | 40 | ## matrix 41 | 42 | [Matrix](https://matrix.org/) 是一种用于开放联合即时消息传递的自由与开源协议。Matrix 生态系统由许多可用于注册的服务器组成。 43 | 44 | - [matrix 服务器列表](https://tatsumoto-ren.github.io/blog/list-of-matrix-servers.html) 45 | - openSUSE 的[官方 matrix 服务器](https://chat.opensuse.org/) 46 | - Fedora 的[官方 matrix 服务器](https://chat.fedoraproject.org/) 47 | - [可选的 matrix 客户端](https://matrix.org/clients/) 48 | 49 | ### 本地社区群组 50 | 51 | |名称|ID| 52 | |---|---| 53 | |openSUSE 中国|`#zh:opensuse.org`| 54 | |openSUSE 中国(闲聊群)|`#zh-chat:opensuse.org`| 55 | 56 | ## IRC 57 | 58 | |名称|ID| 59 | |---|---| 60 | |Fedora 中文 IRC|`#fedora-zh@libera.chat`| 61 | 62 | - [Fedora IRC 列表](https://fedoraproject.org/wiki/Communicating_and_getting_help#IRC) 63 | - [openSUSE IRC 列表](https://en.opensuse.org/openSUSE:IRC_list) 64 | - [IRC 新手指南 - openSUSE 维基](https://zh.opensuse.org/openSUSE:IRC_for_newbies) -------------------------------------------------------------------------------- /docs/solution/software/linux-game.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Linux 游戏" 3 | --- 4 | 5 | ## 游戏平台 6 | 7 | ### Steam 8 | 9 | 你需要在 steam 的设置中启动 Proton 来游玩 Windows 游戏。 10 | 11 | ``` 12 | sudo dnf in steam 13 | sudo zypper in steam 14 | ``` 15 | 16 | ### GOG.com 17 | 18 | [GOG.com](https://www.gog.com/) 虽然没有官方 Linux 客户端,但它售卖的一部分游戏支持 Linux(默认的系统是 Ubuntu) 19 | 20 | ### 第三方游戏平台客户端 21 | 22 | ### 开源的 Linux 原生游戏 -------------------------------------------------------------------------------- /docs/solution/software/multimedia-editing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "多媒体相关" 3 | --- 4 | 5 | ## 图片编辑 6 | 7 | [GIMP](https://www.gimp.org/) 是一个功能和 Photoshop 相似的开源图片编辑软件,基于 GTK 开发。 8 | 9 | ``` 10 | sudo dnf in gimp #在 Fedora 上安装 11 | sudo zypper in gimp #在 openSUSE 上安装 12 | ``` 13 | 14 | [Krita](https://krita.org/) 是基于 Qt 开放,著名的开源绘画软件,它也支持简单的图片编辑功能。 15 | 16 | ``` 17 | sudo dnf in krita #在 Fedora 上安装 18 | sudo zypper in krita #在 openSUSE 上安装 19 | ``` 20 | 21 | ## 视频编辑 22 | 23 | [Blender](https://www.blender.org/) 是一个集动画电影制作、视觉特效、3D 打印、三维/二维建模、动态图形、交互式 3D 应用和 VR 等多项领域为一体的知名开源软件。 24 | 25 | ``` 26 | sudo dnf in blender 27 | sudo zypper in blender 28 | ``` 29 | 30 | [Shotcut](https://www.shotcut.org/) 是由 [MIT 多媒体框架](https://en.wikipedia.org/wiki/Media_Lovin%27_Toolkit)开发者开发的一款基于 MIT 多媒体框架的非线性视频编辑软件。 31 | 32 | ``` 33 | sudo dnf in shotcut 34 | sudo zypper in shotcut 35 | ``` 36 | 37 | [Kdenlive](https://kdenlive.org/) 是一个基于 Qt 和 MIT 多媒体框架开发的非线性视频编辑软件。 38 | 39 | ``` 40 | sudo dnf in kdenlive 41 | sudo zypper in kdenlive 42 | ``` 43 | 44 | ### 屏幕录制 45 | 46 | [OBS](https://obsproject.com/) 是一款用于视频录制和直播推流的开源软件。 47 | 48 | ``` 49 | sudo dnf in obs-studio 50 | sudo zypper in obs-studio 51 | ``` 52 | 53 | ## 音频编辑 54 | 55 | [Audacity](https://www.audacityteam.org/) 是一个用于音频录制与音频编辑的开源软件。 56 | 57 | ``` 58 | sudo dnf in audacity 59 | sudo zypper in audacity 60 | ``` 61 | 62 | ### 字幕编辑 63 | 64 | [Aegisub](https://github.com/Aegisub/Aegisub) 是一个跨平台的高级字幕编辑工具。 65 | 66 | ``` 67 | sudo dnf in aegisub 68 | sudo zypper in aegisub 69 | ``` 70 | 71 | ## 视频播放器 72 | 73 | [MPV](https://mpv.io/) 是一个备受 Linux 用户欢迎,高度可定制的多媒体播放器。它同时是很多播放器的后端。 74 | 75 | ``` 76 | sudo dnf in mpv 77 | sudo zypper in mpv 78 | ``` 79 | 80 | [VLC](https://www.videolan.org/vlc/) 是另一个广为流行,跨平台,兼容几乎绝大部分多媒体格式(不仅仅是视频)的开源多媒体播放器。 81 | 82 | ``` 83 | sudo dnf in vlc 84 | sudo zypper in vlc 85 | ``` 86 | 87 | [SMplayer](https://www.smplayer.info/en/downloads) 是一个基于 mpv 的视频播放器,它简单化了 mpv 的复杂配置,并提供一个良好的开箱即用体验。 88 | 89 | ``` 90 | sudo dnf in smplayer smplayer-themes #安装播放器本体及播放器的扩展皮肤包 91 | sudo zypper in smplayer smplayer-themes 92 | ``` 93 | 94 | ## 音频播放器 95 | 96 | [Deadbeef](https://deadbeef.sourceforge.io/) 是一个在 HiFi 社区中流行,可自定义的开源音频播放器。 97 | 98 | ``` 99 | sudo dnf in deadbeef 100 | sudo zypper in deadbeef 101 | ``` 102 | 103 | [Audacious](https://audacious-media-player.org/) 是一个开源的音频播放器。 104 | 105 | ``` 106 | sudo dnf in audacious 107 | sudo zypper in audacious 108 | ``` 109 | 110 | ### 流媒体播放器 111 | 112 | 开源的 Apple Music 播放器: 113 | 114 | ``` 115 | flatpak install flathub sh.cider.Cider 116 | ``` 117 | 118 | 网易云音乐: 119 | 120 | ``` 121 | flatpak install flathub com.netease.CloudMusic 122 | ``` 123 | 124 | 网易云音乐 GTK 版: 125 | 126 | ``` 127 | flatpak install flathub com.github.gmg137.netease-cloud-music-gtk 128 | ``` 129 | 130 | QQ 音乐: 131 | 132 | ``` 133 | flatpak install flathub com.qq.QQmusic 134 | ``` 135 | 136 | Sportily: 137 | 138 | ``` 139 | flatpak install flathub com.spotify.Client 140 | ``` 141 | 142 | Google Play Music: 143 | 144 | ``` 145 | flatpak install flathub com.googleplaymusicdesktopplayer.GPMDP 146 | ``` -------------------------------------------------------------------------------- /docs/solution/software/office-and-email.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "文书工作" 3 | --- 4 | 5 | ## 纯文本文档与标记语言 6 | 7 | **纯文本文档**[^1]是一种没有任何附加信息(例如语言标识符、字体大小、颜色、超文本链接等),只记录文本字符本身,不存储文本格式,人类可直接阅读的文本表现形式。最为常见的是以 `.txt` 为后缀名的各种文本文件。 8 | 9 | **标记语言**[^2]是一种将文本以及文本相关的其他信息(例如语言标识符、字体大小、颜色、超文本链接等)结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。最常见的标记语言是 [HTML](https://en.wikipedia.org/wiki/HTML)。 10 | 11 | 相比于最为原始的纯文本文档,标记语言可以表达更为丰富的内容,同时兼具纯文文档大部分优点。 12 | 13 | ## 为什么要使用纯文本文档 + 标记语言? 14 | 15 | 1. 相较于 `docx`、`xlsx` 等商业文档格式,纯文本能做的事情实在是太少了,它甚至无法完成一些对于商业文档文件轻而易举的事情(例如插入图片、绘制表格)。 16 | 2. 标记语言使用特定的符号、语法、书写约定弥补了纯文本的缺陷。但它仍然是纯文本文档的一种,并具备人类直接可读性。 17 | 3. 商业公司兜售的各种办公软件、笔记软件本质是一种服务,这些文档大多数是(与[开放文档标准](https://www.libreoffice.org/discover/what-is-opendocument/)不兼容)私有格式或半开放格式;如果你选择使用他们的产品,你必然需要为此付出一笔不菲的授权费用(参考 Microsoft office 动辄数百元的年费)。 18 | 4. 上述的软件使用的文档格式大部分不会把跨系统兼容作为优先事项,甚至他们自身的客户端也不是跨平台或跨平台体验不佳(参考 Microsoft office for mac 以及 Microsoft office 至今没有一个可用的 Linux 客户端)。 19 | 5. 商业公司不在乎你的文档能不能在数十年后仍然可读。尽管他们会不懈余力地宣传自己的办公产品各种优异性能,但实现这一切的默认前提是文档的接收者必须和你使用一样的产品,可谓是一种有限的产品内兼容。他们也不在乎你是否能够真正与其他用户无缝交流,他们只在乎能不能将你和他们的产品绑定在一起,从而实现对你进行收费或挖掘个人隐私数据等盈利目的。 20 | 6. 时至今日,任何的电脑,手机和任意的操作系统都原生支持纯文本文件。纯文本文件依靠自身就实现了诸多商业软件难以搞定的跨平台支持。 21 | * 它足够简单,允许你基于纯文本文档添加各种顶层结构(比如 markdown 语法和 git 项目管理工具); 22 | * 它足够自由,你不必担忧未来出现你无法读取你的文档或者有人宣布你的文档格式不受支持的情况; 23 | * 它足够开放,有大量的工具支持编辑纯文本文件,可以提供远比微软 notepad 之类的元老级文本编辑器更好的使用体验; 24 | * 它不需要授权收费,不需要网络连接,不依赖特定的软件平台。 25 | 26 | ## 我不想使用标记语言 27 | 28 | 使用标记语言书写文档需要你首先去熟悉标记语言的语法,挑选一个趁手的文本编辑器,这是一件需要时间和精力的事情。如果你只想要一个开箱即用的方案,请参考如下解决办法: 29 | 30 | ### WPS 31 | 32 | WPS 是目前已知的,对 Microsoft office 兼容性最好的办公软件套件。 33 | 34 | 你可以直接在 [WPS For Linux 官网](https://www.wps.com/office/linux/)下载适用于 Fedora 的 rpm 安装包,然使用 `rpm` 命令安装 WPS: 35 | 36 | ``` 37 | sudo rpm -i wps-office-*.rpm 38 | ``` 39 | 40 | 或通过 Flatpak 安装 WPS: 41 | 42 | !!! bug "中文语言支持" 43 | 44 | 现有的 Flatpak 版是 wps 国际版,不包含中文语言包。 45 | 46 | ``` 47 | flatpak install flathub com.wps.Office 48 | ``` 49 | 50 | openSUSE 用户可通过 OBS 仓库安装: 51 | 52 | ``` 53 | sudo zypper addrepo https://download.opensuse.org/repositories/home:fusionfuture:office/openSUSE_Tumbleweed/home:fusionfuture:office.repo 54 | ``` 55 | ``` 56 | sudo zypper refresh && sudo zypper install wps-office 57 | ``` 58 | 59 | 由于许可证的原因,WPS 不能携带一些 windows 字体,你需要自行去搜索下载相关的字体文件。你可以在 [BannedPatriot/ttf-wps-fonts](https://github.com/BannedPatriot/ttf-wps-fonts) 下载缺失的字体。 60 | 61 | ### Libreoffice 62 | 63 | 除了 WPS,[Libreoffice](https://zh-cn.libreoffice.org/) 也是一个知名的开源软件办公套件。 64 | 65 | - LibreOffice 是一款功能强大的办公软件,默认使用开放文档格式 (OpenDocument Format, ODF), 并支持 `.docx`、`.xlsx`、`.pptx` 等其他格式。 66 | - 它包含了 Writer、Calc、Impress、Draw、Base 以及 Math 等组件,可用于处理文本文档、电子表格、演示文稿、绘图以及公式编辑。 67 | - 它可以运行于 Windows, GNU/Linux 以及 macOS 等操作系统上,并具有一致的用户体验。 68 | 69 | - [用户文档](https://documentation.libreoffice.org/zh-cn/docs) 70 | - [Libreoffice 中文社区](https://www.libreofficechina.org/) 71 | 72 | 你可以直接安装它: 73 | 74 | ``` 75 | sudo zypper in libreoffice 76 | sudo dnf in libreoffice 77 | ``` 78 | 79 | ---- 80 | 81 | ## 有哪些推荐的标记语言与工具? 82 | 83 | !!! warning "文本编码" 84 | 85 | 使用标记语言的时候,注意将文本文件的编码设置为 [UTF-8](https://zh.wikipedia.org/wiki/UTF-8)。 86 | 87 | 这里主要推荐两种标记语言、一种版本控制工具和一种文本编辑器。 88 | 89 | 当然,标记语言和文本编辑器的可选项是非常丰富的,仅 GitHub 就[支持七种不同的标记语言](https://github.com/github/markup#markups)。功能强大的文本编辑器更是数不胜数。 90 | 91 | ### Markdown 92 | 93 | Markdown 是目前最为流行的标记语言,它的语法很简单,可以快速上手。 94 | 95 | 快速开始: 96 | 97 | - [Markdown 中文教程](https://markdown.com.cn/) 98 | 99 | !!! tip "一些建议" 100 | 101 | - 不必过于纠结于使用何种 Markdown 方言,他们大体上是相同的,只是某些细节略有差异。 102 | - 当你根据上文的连接初步了解了 markdown 语法以后,基本就可以开始使用 markdown 书写 md 文档了。 103 | - 如果你需要使用 GitHub,那么你应该去了解一下 GitHub 的语法规范;如果你需要使用 pandoc,那了解一下 pandoc 的语法规范是不错的选择。 104 | 105 | 但 Markdown 由于其设计者的缘故,并未存在一种标准的语法规范,导致目前各种 markdown 方言纷繁复杂。其中较为广泛使用的有三种: 106 | 107 | - [GitHub Flavored Markdown Spec](https://github.github.com/gfm/) 108 | - GitHub 的 markdown 语法规范。 109 | - [CommonMark Spec](https://spec.commonmark.org/) 110 | - [CommonMark](https://commonmark.org/) 致力于为 markdown 提供一套标准的、明确的语法规范、以及一套综合测试来根据该规范验证 Markdown 实现。 111 | - [Pandoc’s Markdown](https://pandoc.org/MANUAL.html#pandocs-markdown) 112 | - 这是由功能极其强大的文档万向转换器 [Pandoc](https://pandoc.org/index.html) 所支持的一种 markdown 规范,它定义了许多原始 markdown 规范所缺少的部分,也是一种广为使用的 markdown 方言。 113 | 114 | markdown 适合于小型文档或排版简单的文档。如果文档很复杂,需要精细化排版,markdown 就不是一个合适的选择了。 115 | 116 | 有些时候,为了实现一些效果,你可能需要额外了解一些 [HTML](https://www.runoob.com/html/html-tutorial.html) 或 [CSS](https://www.runoob.com/css/css-tutorial.html) 语法 117 | 118 | ### AsciiDoc 119 | 120 | [AsciiDoc](https://asciidoc.org/) 是 markdown 的许多替代品之一。 121 | 122 | AsciiDoc 相比 Markdown 有如下优势: 123 | 124 | - 几乎在所有情况下,与 Markdown 相比,AsciiDoc 使用相同数量或更少的标记字符; 125 | - AsciiDoc 使用一致的格式化方案(即,它具有一致的模式); 126 | - AsciiDoc 可以处理嵌套内联(和块)格式的所有排列,而 Markdown 经常失败; 127 | - AsciiDoc 处理 Markdown 不处理的情况,例如内字标记、源代码块和块级图像的正确方法。 128 | 129 | 如果你打算使用 AsciiDoc 创作文档、文章或电子书,你可以先阅读: 130 | 131 | - [AsciiDoc Writer’s Guide](https://asciidoctor.org/docs/asciidoc-writers-guide/) 132 | - [AsciiDoc Syntax Quick Reference](https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/) 133 | 134 | ### git 135 | 136 | [git](https://git-scm.com/) 是一种应用广泛,开源的版本控制工具。git 可以帮助用户对包括但不限于纯文本文件在内的文件进行备份、恢复、变更内容比较和多人协作等一系列[版本控制](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6)任务。 137 | 138 | 推荐阅读: 139 | 140 | - [ProGit 2nd Edition (2014) - 中文版](https://git-scm.com/book/zh/v2) 141 | 142 | 要安装 git,请执行: 143 | 144 | ``` 145 | sudo zypper in git-core 146 | sudo dnf in git-core 147 | ``` 148 | 149 | ### VS code 150 | 151 | [Visual Studio Code](https://code.visualstudio.com/) 简称为 VS Code,是由微软开发,源代码开源的一款源代码编辑器。该软件支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和 Git 版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能[^3]。 152 | 153 | > 在 2019 年的 [Stack Overflow](https://zh.wikipedia.org/wiki/Stack_Overflow) 组织的开发者调查中,Visual Studio Code 被认为是最受开发者欢迎的开发环境。据调查,87317 名受访者中有 50.7% 的受访者声称正在使用 Visual Studio Code[^4]。 154 | 155 | 你可以执行以下步骤安装 vscode: 156 | 157 | 对于 fedora 用户: 158 | 159 | ``` 160 | sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc 161 | ``` 162 | 163 | ``` 164 | sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' 165 | ``` 166 | 167 | ``` 168 | sudo dnf check-update && sudo dnf install code 169 | ``` 170 | 171 | 对于 openSUSE 用户: 172 | 173 | ``` 174 | sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc 175 | ``` 176 | 177 | ``` 178 | sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/vscode.repo' 179 | ``` 180 | 181 | ``` 182 | sudo zypper refresh && sudo zypper install code 183 | ``` 184 | 185 | ### 为什么推荐 VS code 186 | 187 | 如你所见,你在此站点所看到的大部分内容都是使用本文所列举的(除了 libreoffice 和 wps 之外的)工具编写出来的。 188 | 189 | 当然这并不意味着其他的文本编辑器就不如 VS code,VS code 也有着它属于它自己的不足[^5]和争议[^6]。 190 | 191 | 你也可以将所有主流的文本编辑器都试一遍,然后挑出合适自己的即可。 192 | 193 | ### 插件 194 | 195 | VS code 有着丰富的扩展插件可供用户选择,这也是它的魅力之一。 196 | 197 | 一些推荐的基础插件: 198 | 199 | - [Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans) 200 | - [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one) 201 | - [AsciiDoc](https://marketplace.visualstudio.com/items?itemName=asciidoctor.asciidoctor-vscode) 202 | - [Project Manager](https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager) 203 | - [GitLens — Git supercharged](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) 204 | - [Material Icon Theme](https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme) 205 | - [Photonica](https://marketplace.visualstudio.com/items?itemName=ConAntares.Photonica) 206 | - [Dynamic Theme](https://marketplace.visualstudio.com/items?itemName=guangzan.dynamic-theme) 207 | 208 | ---- 209 | 210 | ## E-mail 211 | 212 | [Thunderbird](https://www.thunderbird.net/en-US/) 和 [evolution](https://wiki.gnome.org/Apps/Evolution) 都是流行的 Linux 邮件客户端。你可以任选一个安装至你的电脑。 213 | 214 | !!! note 215 | 如果你使用 `evolution` ,请再安装 `evolution-ews` 插件。 216 | 217 | 在 openSUSE 上安装邮件客户端: 218 | 219 | ``` 220 | sudo zypper in MozillaThunderbird 221 | sudo zypper in evolution 222 | ``` 223 | 224 | 在 Fedora 上安装邮件客户端: 225 | 226 | ``` 227 | sudo dnf in MozillaThunderbird 228 | sudo dnf in evolution 229 | ``` 230 | 231 | 或者你可以使用浏览器使用在线的网页邮件客户端。 232 | 233 | ## 思维导图 234 | 235 | 开源的在线思维导图工具:[draw.io](https://app.diagrams.net/#)。draw.io 还支持 Linux 平台。 236 | 237 | ## 字典 238 | 239 | [Goldendict](http://goldendict.org/) 是一个功能强大,支持诸多字典格式的字典查词软件。 240 | 241 | ``` 242 | sudo zypper in goldendict goldendict-lang 243 | sudo dnf in goldendict 244 | ``` 245 | 246 | - [FreeMdict Forum](https://forum.freemdict.com/) 是一个聚焦于各类字典与使用的爱好者论坛。 247 | 248 | [欧陆词典](https://dict.eudic.net/) 也是一个流行的字典软件,但 Linux 版不支持屏幕取词。 249 | 250 | [Bing 在线词典](https://www4.bing.com/dict?FORM=HDRSC6) 是一个简单易用的在线网络词典。 251 | 252 | [DeepL](https://www.deepl.com/translator):免费的在线翻译引擎,由人工神经网络驱动。 253 | 254 | 255 | [^1]: 更为详细的介绍,另见:[纯文本 - Wikipedia](https://en.wikipedia.org/wiki/Plain_text) 256 | [^2]: 更为详细的介绍,另见:[标记语言 - Wikipedia](https://en.wikipedia.org/wiki/Markup_language) 257 | [^3]: 原文节选自:[Visual Studio Code - Wikipedia](https://zh.wikipedia.org/wiki/Visual_Studio_Code) 258 | [^4]: [Development Environments and Tools - Developer Survey Results 2019](https://insights.stackoverflow.com/survey/2019#development-environments-and-tools) 259 | [^5]: 有人认为 VS code 过于臃肿,已经脱离了源码编辑器的范畴,成为了一个[集成开发环境](https://en.wikipedia.org/wiki/Integrated_development_environment)(IDE)。 260 | [^6]: 例如,微软将源码开源,分发的二进制文件闭源并嵌入自己的私有模块的做法饱受社区诟病,催生了 [VScodium](https://flathub.org/apps/details/com.vscodium.codium) 的诞生。 -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Linux 银河漫游指南 2 | repo_url: https://github.com/linuxhitchhiker/THGLG 3 | edit_uri: edit/main/docs/ 4 | copyright: "© 2022 Linux 银河漫游指南贡献者,在 CC-BY-SA 4.0 下提供。" 5 | 6 | nav: 7 | - 主页: 8 | - 欢迎: index.md 9 | - 简介: intro.md 10 | - 入门指南: 11 | - 序言: 12 | - 切换到 Linux: entry/prologue/switch-to-linux.md 13 | - Linux 发行版: entry/prologue/choose-distro.md 14 | - 桌面环境简介: entry/prologue/desktop-environment.md 15 | - 安装系统: 16 | - 安装前准备: entry/installation/pre-install.md 17 | - 校验文件: entry/installation/verify.md 18 | - 虚拟机: entry/installation/virtual-machine.md 19 | - Fedora 安装指南: entry/installation/fedora.md 20 | - Fedora Silverblue 安装指南: entry/installation/fedora-silverblue.md 21 | - openSUSE 安装指南: entry/installation/opensuse.md 22 | #- 使用桌面环境: 23 | #- 安装软件(图形化界面): entry/desktop/apps-gui.md 24 | - 进阶教程: 25 | - 使用命令行: 26 | - advanced/shell/index.md 27 | - advanced/shell/base1.md 28 | - advanced/shell/base2.md 29 | - advanced/shell/base3.md 30 | - advanced/shell/base4.md 31 | - advanced/shell/base5.md 32 | - 配置系统: 33 | - advanced/system-admin/index.md 34 | - advanced/system-admin/update-sys.md 35 | - advanced/system-admin/package-manager.md 36 | - advanced/system-admin/setup-proxy.md 37 | - advanced/system-admin/nvidia-driver.md 38 | - advanced/system-admin/firewall.md 39 | - advanced/system-admin/systemctl.md 40 | - 再次入门: 41 | - 概述: advanced/re-entry/index.md 42 | - 选择发行版: advanced/re-entry/distro.md 43 | - 软件源与镜像源: advanced/re-entry/repo-and-mirror.md 44 | - 硬盘与文件系统: advanced/re-entry/disk-and-fs.md 45 | - 扩展阅读: advanced/re-entry/extend.md 46 | - 高级教程: 47 | - 概述: poweruser/index.md 48 | - 解决方案: 49 | - 系统美化: 50 | - 概述: solution/eyecandy/index.md 51 | - KDE 美化: solution/eyecandy/eyecandy-kde.md 52 | - Xfce4 美化: solution/eyecandy/eyecandy-xfce4.md 53 | - 软件: 54 | - 概述: solution/software/index.md 55 | - 浏览器: solution/software/browser.md 56 | - 即时通讯: solution/software/instant-messaging.md 57 | - 文档办公: solution/software/office-and-email.md 58 | - 多媒体相关: solution/software/multimedia-editing.md 59 | - 下载器: solution/software/download-manager.md 60 | - 游戏: solution/software/linux-game.md 61 | - Appimage: solution/software/appimage-base.md 62 | - Flatpak: solution/software/flatpak-get-start.md 63 | - 系统配置: 64 | - 概述: solution/config/index.md 65 | - HiDPI: solution/config/hidpi.md 66 | - 双系统: solution/config/dual-boot.md 67 | - 跨系统兼容: 68 | - 概述: solution/compatibility/about.md 69 | #- Wine: solution/compatibility/wine.md 70 | #- Toolbx: solution/compatibility/toolbx.md 71 | #- Docker: solution/compatibility/docker.md 72 | #- Distrobox: solution/compatibility/distrobox.md 73 | - 搭建虚拟机: solution/compatibility/virtual-machine.md 74 | - 寻求帮助: 75 | - 常见问题: help/faq.md 76 | - 如何提问: help/howto-ask-for-help.md 77 | - 关于: 78 | - 简介: about/index.md 79 | - 许可协议: about/license/index.md 80 | - 贡献指南: 81 | - 快速指南: about/contributing/index.md 82 | #- 简约 lite 版: about/contributing/about.md 83 | - 慢速开始 1: about/contributing/base-01.md 84 | - 慢速开始 2: about/contributing/base-02.md 85 | 86 | theme: 87 | name: material 88 | language: zh 89 | custom_dir: overrides 90 | locale: zh_CN 91 | palette: 92 | primary: blue 93 | accent: blue 94 | features: 95 | - navigation.instant 96 | - navigation.tracking 97 | - navigation.tabs 98 | 99 | plugins: 100 | - git-revision-date-localized: 101 | locale: en 102 | type: iso_datetime 103 | enable_creation_date: true 104 | exclude: 105 | - index.md 106 | - "intro.md" 107 | - about/* 108 | - search: 109 | lang: zh 110 | 111 | markdown_extensions: 112 | - def_list 113 | - abbr 114 | - md_in_html 115 | - footnotes 116 | - pymdownx.snippets 117 | - admonition 118 | - pymdownx.details 119 | - pymdownx.superfences 120 | - pymdownx.tabbed: 121 | alternate_style: true 122 | - pymdownx.tasklist: 123 | custom_checkbox: true 124 | - attr_list 125 | - def_list 126 | - toc: 127 | permalink: true 128 | slugify: !!python/object/apply:pymdownx.slugs.slugify 129 | kwds: 130 | case: lower 131 | # extra_css: 132 | # - assets/stylesheets/extra.css 133 | -------------------------------------------------------------------------------- /overrides/assets/images/Distro.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/overrides/assets/images/Distro.webp -------------------------------------------------------------------------------- /overrides/assets/images/Flatpak-truck.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/overrides/assets/images/Flatpak-truck.webp -------------------------------------------------------------------------------- /overrides/assets/images/Freedesktop-logo-for-template.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | image/svg+xml 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /overrides/assets/images/linux-de.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linuxhitchhiker/THGLG/0d46959a68c5ee5fd9e575c464627bba177ae3c7/overrides/assets/images/linux-de.webp -------------------------------------------------------------------------------- /overrides/home.html: -------------------------------------------------------------------------------- 1 | {% extends "main.html" %} 2 | 3 | 4 | {% block tabs %} 5 | {{ super() }} 6 | 7 | 8 | 38 | 39 | 40 |
41 |
42 | {{ page.content }} 43 |
44 |
45 | {% endblock %} 46 | 47 | 48 | {% block content %}{% endblock %} 49 | 50 | 51 | {% block footer %}{% endblock %} -------------------------------------------------------------------------------- /overrides/partials/comments.html: -------------------------------------------------------------------------------- 1 | {% if page.meta.comments %} 2 |

{{ lang.t("meta.comments") }}

3 | 4 | 20 | 21 | 51 | {% endif %} -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Babel==2.11.0 2 | certifi==2023.7.22 3 | charset-normalizer==2.1.1 4 | click==8.1.3 5 | ghp-import==2.1.0 6 | gitdb==4.0.10 7 | GitPython==3.1.41 8 | idna==3.4 9 | importlib-metadata==5.1.0 10 | Jinja2==3.1.3 11 | Markdown==3.3.7 12 | MarkupSafe==2.1.1 13 | mergedeep==1.3.4 14 | mkdocs==1.4.2 15 | mkdocs-git-revision-date-localized-plugin==1.1.0 16 | mkdocs-material==8.5.11 17 | mkdocs-material-extensions==1.1.1 18 | packaging==22.0 19 | Pygments==2.15.0 20 | pymdown-extensions==10.0 21 | pyparsing==3.0.9 22 | python-dateutil==2.8.2 23 | pytz==2022.6 24 | PyYAML==6.0 25 | pyyaml_env_tag==0.1 26 | requests==2.31.0 27 | six==1.16.0 28 | smmap==5.0.0 29 | urllib3==1.26.18 30 | watchdog==2.2.0 31 | zipp==3.11.0 32 | --------------------------------------------------------------------------------