终于告别了辣鸡 Windows 系统了,从 Win 10 到 LTSC ,再到 Windows Server 2019 ,就没有一个不出 bug 的,还是早日投奔 Linux 的怀抱吧,至少出了 Bug 也可以自己折腾。目前更换了主力系统为 Manjaro ,这是一个基于 Arch Linux 的衍生发行版本,继承了 Arch 滚动更新和 AUR 软件包极为丰富的优点,稳定性也十分优秀,适合长期使用。Manjaro 官方镜像按照桌面环境(DE)的不同,分为 XFCE ,KDE ,GNOME 三个版本,个人选择的是 KDE 桌面环境,更为顺手一点。
下面记录一下配置过程(缓慢施工中),一来方便自己将来万一重装后的恢复,二来方便有需要的朋友们做个参考。
§0.更换国内镜像源
在终端中执行下面这条命令:
|
|
在弹出的对话框中选择一个最快(或最顺眼的)的就可以了,多选几个也并不能加快速度。
§1.替换自带的 Vi 为 Vim
系统自带的 Vi 体验简直令人发指,没有方向键(方向键是 h/j/k/l 这四个键来控制的。。), Backspace 也会变成莫名其妙的符号,直接卸载:
|
|
装上完全体的 Vim :
|
|
§2.添加 ArchLinuxCN 源
不建议添加此源,Manjaro 上游的包库更新要比 Arch 慢,可能会导致一些蛋疼的兼容性问题。
首先编辑 /etc/pacman.conf
这个文件,在末尾添加以下内容:
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://repo.archlinuxcn.org/$arch
然后导入 archlinuxcn-keyring :
|
|
最后刷新一下缓存:
|
|
§3.安装 yay 并配置包管理器走代理
3.1 安装 yay
yay 是一个 Go 语言编写的 AUR 助手,有时官方仓库内没有的软件,只能通过 AUR 来安装。详细介绍请移步文末 :)
|
|
之后安装软件就不需要 sudo pacman
了,yay 兼容 pacman 的命令,下文如无特殊说明,均用 yay
来代替 sudo pacman
。
3.2 让包管理器走代理
首先参考 简易配置终端代理 设置好系统的终端代理环境变量,然后
|
|
在最后添加下面这行:
Defaults env_keep += "ftp_proxy http_proxy https_proxy"
保存即可,现在代理的环境变量会自动传递给 sudo 和 pacman 了,yay 会自动读取 http_proxy
和 https_proxy
的值,不需要特殊设置(其实 pacman 是可以自动读取代理的环境变量的,但是 pacman 使用时要加上 sudo,而环境变量不会自动传递给 sudo,所以此处需要特殊设置一下;又因为 yay 有些命令会调用 sudo,所以哪怕只用 yay 也是需要设置这一步的 Orz)。
§4.安装并配置 zsh
4.1 安装 zsh :
|
|
4.2 安装 Oh My Zsh :
|
|
安装完 Oh My Zsh 后会提示替换默认的 shell 为 zsh ,若没有提示的话按照下面的步骤手动替换:
- 先查看当前系统内已安装的终端:
1
chsh -l
- 更改当前用户的默认终端:
1
chsh -s /bin/zsh
- 更改 root 用户的默认终端:
1 2 3
sudo su chsh -s /bin/zsh su USERNAME
且重启系统后若 zsh 有更新,Oh My Zsh 会自动提示。
如果不小心关掉了更新提示,可以执行
omz update
手动更新。
4.3 更换 Oh My Zsh 主题:
一行命令直接修改(俺使用 ys 这个主题),然后重载 zsh 的配置:
|
|
4.4 安装 Oh My Zsh 插件:
|
|
一行命令直接将插件配置覆盖为需要的这几个插件,然后重载 zsh 配置:
|
|
其中 sudo
和 extract
是 oh my zsh 自带的插件,前者的作用是在已经输入好的命令前自动加上 sudo
,双击 ESC 键即可,非常方便,后者整合了常用的解压文件的命令别名,解压文件时只需 extract <filename>
就可以,不再需要记忆不同格式的解压命令。
命令的其他部分的说明,可以参考 这里 。
§5.安装和配置字体
todo
§6.安装和配置中文输入法
todo
§7.修改家目录为英文
如果系统语言设置为了中文,那么用户的家目录(也就是 ~
/ /home/<username>/
这个目录)下的默认文件夹名字会全部变为中文,类似这样:
|
|
在某些情况下会比较的不方便(比如你和俺一样有点强迫症……)。不过上网搜索的话,网上的教程大部分是将系统语言切换为英文再切换回来,虽然可以达到目的,但很不优雅,正好看到了 这篇教程 ,详细解释请看原文,以下是 TL;DR 版的操作记录:
|
|
这个文件内容现在是下面这样:
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/桌面"
XDG_DOWNLOAD_DIR="$HOME/下载"
XDG_TEMPLATES_DIR="$HOME/模板"
XDG_PUBLICSHARE_DIR="$HOME/公共"
XDG_DOCUMENTS_DIR="$HOME/文档"
XDG_MUSIC_DIR="$HOME/音乐"
XDG_PICTURES_DIR="$HOME/图片"
XDG_VIDEOS_DIR="$HOME/视频"
将内容修改为这样(就是修改下文件夹名称):
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"
然后挨个重命名已有的文件夹:
|
|
最后重启就好了。
§8.个人常用软件列表
todo
§9.备份当前系统配置,重装后一键恢复
todo
§附 1:包管理说明
Arch 系的 Linux 发行版,软件包来源有两个,Community(Arch 官方仓库),AUR(Arch User Repository, Arch 用户仓库)。用户将软件放在 AUR ,Arch 官方则定期挑选 AUR 里的优秀程序到 community,实际表现为 Community 为 AUR 的子集,Community 有的应用 AUR 都有,但 AUR 内有而 Community 没有的那部分软件可能在系统上的运行表现不大稳定。
Manjaro 自带的桌面程序软件中心(pamac-manager)既可以安装 Community 程序也可以安装 AUR 程序,区别是 AUR 程序会显示【构建】而不是【安装】;但在终端中通过自带的 pacman 只能安装 Community 程序,想要安装 AUR 程序则需要安装额外的包管理器,之前很多教程内的 yaourt 已经停止维护了,个人使用 yay (详细介绍请移步官方 Wiki:AUR helpers (简体中文) - ArchWiki )。
下面是一些包管理器的常用参数:
1.pacman
|
|
2.yay
兼容 pacman 的命令行参数,这部分命令只需简单地将 sudo pacman
替换为 yay
即可,例如:
|
|
其他参数类比即可。除此之外还可以:
|
|
§附 2:开启 BBR todo
Manjaro 内核的 TCP 拥塞控制默认是 cubic(可以执行 sysctl net.ipv4.tcp_congestion_control
验证),效率不是很高,俺直接换成现代的 BBR.
首先加载 BBR 内核模块:
|
|
然后配置模块开机自动加载:
|
|
修改内核配置,将拥塞控制算法切换到 BBR:
|
|
使改动生效:
|
|
验证 BBR 是否开启:
|
|
确认输出为 net.ipv4.tcp_congestion_control = bbr
说明已经切换成功了。
参考链接: