menu Chancel's blog
rss_feed
Chancel's blog
秋雨一何碧,山色倚晴空。

Manjaro入门指南与使用技巧

作者:Chancel Yang, 更新:2022 Sep 06, 字数:20577, 已阅:114

1. Manjarn OS

以前零碎地的写过不少关于Linux作为开发主力系统的笔记,用来记录我个人使用Linux作为开发环境的一些知识点,于是寻思着不如写一篇完整的Manjaro系统参考文章(Manjaro 21.37

先说说我的日常开发内容

  • 常用语言:.Net/Python/Golang
  • 常用工具:DB工具/VSCode/VS全家桶/PyCharm
  • 必备软件:Google Chrome/国产微信QQ等软件

归类的话,就是IDE、笔记、查资料等三个部分

得益于移动设备的智能化,以前PC的听歌/邮件处理/下载等方案都有其他更好的替代方案了,所以用Linux做开发环境的优势越来越明显

在使用Linux作为开发主力系统之前,仍建议要琢磨清楚需求,Linux上许多软件尤其是国产软件大部分只能通过Wine或虚拟机的形式来解决,在使用体验上是不如Windows真机的,尤其是涉及到协作类工作时(如远程视频会议),Linux会让人抓狂

在我看来,最好的方案是Windows+Linux的双机配置,Linux做主力开发,Windows作为协作方案,如果你已经对Linux有过初步的接触,那么这篇文章可以方便你查询或发现一些有用的Linux使用技巧

限于个人能力,也很欢迎指出文中的错误之处,本系列权当抛砖引玉

2. Linux发行版

2.1. 什么是Linux发行版?

引用维基百科的解释

Linux 发行版(英语:Linux distribution,也被叫做GNU/Linux 发行版),为一般用户预先集成好的Linux操作系统及各种应用软件。一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。Linux发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常由Linux内核、以及来自GNU计划的大量的函数库,和基于X Window的图形界面。有些发行版考虑到容量大小而没有预装 X Window,而使用更加轻量级的软件,如:busybox, uclibc 或 dietlibc。现在有超过300个Linux发行版(Linux发行版列表)。大部分都正处于活跃的开发中,不断地改进。

简单来讲,选择哪一种linux发行版对用户来说,其实就是选择包管理器与桌面,可以认为选择一款发行版,即选择一套桌面与包管理器与一些默认软件

包管理器与桌面环境通常是可更改的,只是这么干的人比较少

Linux包管理器,比较主流的两种软件包管理系统

  1. 管理deb软件包的dpkg以及他的前端
    • apt:常见于debian、ubuntu系列
  2. RPM包管理员以及他的前端
    • dnf:常见于fedora
    • yum:常见于其他Red Hat Linux系发行版,如cent7
    • ZYpp:常见于openSUSE
    • urpmi:常见于Mandriva Linux

这两种几乎可以代替Linux桌面环境下所有常见的官方Linux安装包,当一款软件说他支持Linux时,你会发现他通常提供了debrpm

这两种相信稍微接触过Linux的同学一定认识,他们分别的国内最常见发行版CentOS跟Ubuntu的包管理器

2.2. 有哪些常见的Linux发行版?

基于Dkpg软件包管理器的debian系发行版是个人用户的最佳选择之一

Debian类发行版中最有名气的大约是Ubuntu系列了,Ubuntu是一个非常适合体验Linux桌面发行版的操作系统,除了他安装软件时令人抓狂的软件包依赖关系

常见的Debian发行版列表如下

名称 特点
Ubuntu 一个非常流行的发行版
Debian 信奉自由软件、由志愿者开发维护
Kubuntu 使用KDE桌面的Ubuntu
Linux Mint 从Ubuntu派生并与Ubuntu兼容的系统
Knoppix 第一个Live CD系统
OpenGEU Ubuntu的派生版
Elementary OS 基于Ubuntu,酷似Mac OS X

除了Debian系的发行版,基于RPM软件包管理器的Red Hat系发行版应该是服务器最为常见的操作系统

CentOS即Red Hat系最为常见的发行版

如下是常见的Red Hat系的发行版列表

名称 特点
Red Hat Enterprise Linux Fedora的上游版
openSUSE 由Slackware分离出来的发行版
Fedora Red Hat的社区版
PCLinuxOS Mandriva的派生版本
CentOS 从Red Hat发展而来的发行版,由志愿者维护,提供百分百兼容Red Hat的兼容性
Megeia Mandriva发展而来的系统

除了Debian/Red Hat系列,还有许多优秀的发行版,这其中便有我们文章的主题Arch Linux系列(Manjaro属于Arch的一个类发行版)

名称 特点
ArchLinux 一个基于KISS(keep it simple and tupid)的滚动更新发行版
CHakra ArchLinux的KDE桌面版
GENtoo 一个面向高级用户的发行版(需要自动编译)
Slackware 最早的linux发行版之一

Manjaro是Arch面向新手最有友好的一款发行版,优点如下

  • 强大的第三方包系统,几乎可以一键安装github上任意有名的仓库
  • 完整的内核驱动更换界面,让更换Linux内核变成一个点击事件
  • 完整的Arch Wiki文档支持,无论想了解任何细节或完成任何定制,都可以参考这份完整文档

Manjaro还有其他许许多多的优点不再赘述,个中滋味欢迎品尝

3. Manjaro安装

3.1. 桌面选择

Manjaro官方下载:Manjaro发行版官网下载

Manjaro官方提供多个桌面环境选择,分别是主流的XFCE/Gnome/KDE以及一个在线安装版Architect,此外还有社区提供的Budgie/I3等若干桌面版本

而我最后长期使用的桌面环境是KDE,Gnome与XFCE也用过1~2年时间,最后还是回归KDE的拥抱

为什么是KDE?因为KDE相较于其他桌面,更强调开箱即用,非常适合入门使用,且稳定性于扩展性均优,属于不偏科选手

细说一下这3个桌面的主观体验,XFCE强调稳定性与低资源消耗,作为代价减去大量动画,删繁就简,在扩展性与自定义性方面不如另外2个;Gnome则是主打扩展性与低资源消耗,其桌面设计与其他操作系统大相径庭,更具趣味,也拥有极其丰富的扩展性,稳定性与插件数量成反比;KDE Plasma则是主打流畅与类Windows的体验,降低学习成本,对于一些常用的插件常常是内置的,不要被它单纯的外表欺骗,KDE支持非常丰富的扩展插件与高度自定义设置

如果喜欢简洁风,那么推荐恰到好处的简洁风格,又不失基础功能的Gnome,如果是主打效率,那么推荐流畅与开箱即用的KDE Plasma,如果PC配置不佳或者喜欢极致工业风,那么XFCE可以推荐尝试一下

以下大部分内容基于KDE Plasma作为基础,其他桌面环境请自行查阅Google

3.2. 制作镜像

安装系统需借助U盘进行安装,将下载的iso文件写入到U盘中,插入到PC中,选择开机选项即可,在Windows下写入Linux镜像推荐使用rufus工具,官网:https://rufus.ie/en/

在Linux下写入Linux镜像则直接使用dd程序即可,假设dev/sdc为U盘文件符

dd if=manjaro-xfce-18.1.3-191114-linux53.iso of=dev/sdc

制作完成之后,我们将U盘插入电脑,就可以开始安装Manjaro了

3.3. 安装系统

打开电脑BIOS,选择启动方式(boot),并将U盘调整到启动第一顺序,这是我在Google上找到一张BIOS图,设置大体类似

可以根据你的主板型号+Bios启动设置作为关键字搜一下Google相关信息,设置好引导之后我们就可以顺利进入到了Manjaro的安装了,在欢迎第一个界面处调整安装界面参数

在桌面上我们选择Install Manjaro Linux,然后地区选择上海

键盘与系统语言建议选择英文,如果选择使用Linux发行版来开发软件,推荐使用英文系统环境,中文系统环境所带来的麻烦程度远超过认识几个常见英文单词的困难

接下来我们选择手动调整分区,如果硬盘未初始化,则应该选择初始化(New Partition Table),并选择GPT分区,对于GPT分区与MBR分区,GPT分区是UEFI规范的一部分,相对MBR的优势

  • 无限分区表
  • 每个分区可以有独立的名字

这是最直观的好处,对于支持GPT的机器而言,GPT无可挑剔,初始化硬盘后,我们开始分区,对于Linux的分区,大部分发行版在UEFI模式安装下只需要认识好/boot/这两个分区,/boot分区对应Windows的efi启动分区,根分区/对应Windows的C盘

这里将硬盘初始化为GPT格式,并创建挂载好/boot/分区,注意/boot分区必须是FAT32格式且携带ESP标记

下面是我的分区图例

如果你在分区这里失败了,可以参考Arch中文wiki的资料,仔细研读相信你会知道如何做好Linux的分区,在输入好机器名称与选择好Office套件之后,会得到一个系统安装预览,我的预览如下

如果预览没有问题,则刻点击安装完成系统安装,安装完成后重启进入Manjaro系统

4. Manjaro初始化

4.1. 配置国内源(可选)

安装完成后,我们需要配置Manjaro的软件源,如下

# 如果网络环境是科学的,可以直接使用命令测试离你科学爱国最近的镜像站并选择延迟最低的即可
sudo pacman-mirrors -i 

# 如果网络环境不太科学,则输入以下指令来指定国内源提供延迟查询,在这之后选择离你最快的源即可
sudo pacman-mirrors -i -c China -m rank

更新系统到最新版本

sudo pacman -Syyu

安装Arch下的扩展包管理器yay

sudo pacman -S yay

在这里解释一下yay程序的作用,pacman作为Manjaro的包管理器,是非常出色的,但与其他发行版类似,官方仓库能收纳的程序并不多,而很多常用软件在大部分发行版上如果官方仓库没有收纳,那么需要我们自己动手编译,而yay则是提供一个编译脚本来收纳大部分常用软件的编译安装方法,这样最大程度上地减少了用户手动编译软件的事件成本

4.2. 配置输入法

作为新手,在安装系统之后有非常多的问题需要查询,但此时可能恰好,大部分Linux发行版都不提供中文输入法

如果英文好或没有中文输入的需求可以跳过输入法安装

4.2.1. Fcitx5

Fcitx5是一个输入法框架,,许多发行版甚至直接就内置了Fcitx,Manjaro没有,需要我们手动安装,安装fcitx5以及相关的安装包

sudo pacman -S fcitx5-im fcitx5-configtool fcitx5-chinese-addons

fcitx5的基础配置文件,位于~/.xprofile

GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=\@im=fcitx
SDL_IM_MODULE DEFAULT=fcitx

4.2.2. Rime输入法安装

Rime是开源的高度自定义中文输入法,支持自定义词库,导入百万词库,导出个人词库,同步配置等功能,在Linux下使用习惯了Rime是非常爽的,安装Rime如下

sudo pacman -S fcitx5-rime 

创建用于存放rime的配置文件的文件夹:~/.local/share/fcitx5/rime,接着创建输入法的默认配置~/.local/share/fcitx5/rime/default.custom.yaml

# default.custom.yaml
# save it to: 
#   ~/.config/share/fcitx5/rime  (linux)
#   ~/Library/Rime       (macos)
#   %APPDATA%\Rime       (windows)

patch:
  schema_list:
    #    - schema: luna_pinyin          # 朙月拼音
        - schema: luna_pinyin_simp     # 朙月拼音 简化字模
    #    - schema: luna_pinyin_tw       # 朙月拼音 臺灣正體模式
    #    - schema: terra_pinyin         # 地球拼音 dì qiú pīn yīn
    #    - schema: bopomofo             # 注音
    #    - schema: bopomofo_tw          # 注音 臺灣正體模式
    #    - schema: jyutping             # 粵拼
    #    - schema: cangjie5             # 倉頡五代
    #    - schema: cangjie5_express     # 倉頡 快打模式
    #    - schema: quick5               # 速成
    #    - schema: wubi86               # 五笔86
    #    - schema: wubi_pinyin          # 五笔拼音混合輸入
    #    - schema: double_pinyin        # 自然碼雙拼
    #    - schema: double_pinyin_mspy   # 微軟雙拼
    #    - schema: double_pinyin_abc    # 智能ABC雙拼
    #    - schema: double_pinyin_flypy  # 小鶴雙拼
    #    - schema: wugniu        # 吳語上海話(新派)
    #    - schema: wugniu_lopha  # 吳語上海話(老派)
    #    - schema: sampheng      # 中古漢語三拼
    #    - schema: zyenpheng     # 中古漢語全拼
    #    - schema: ipa_xsampa    # X-SAMPA 國際音標
    #    - schema: emoji         # emoji表情
    # # # "translator/dictionary": luna_pinyin.extended

注销当前登录后重新加载KDE,在Konsole中输入命令打开fcitx5配置工具

fcitx5-configtool

在界面中配置输入方式添加rime输入法

4.2.3. Rime词库

对输入法而言最重要的当然是词库,这里推荐2个Wiki的词库,非常全面

在Github的页面中选择Release并下载词典文件(YAML格式),把下载的词典移动到存放Rime默认配置的文件夹,如下

mv moegirl.dict.yaml ~/.local/share/fcitx5/rime/
mv zhwiki.dict.yaml ~/.local/share/fcitx5/rime/

创建导入词库的配置文件:~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml

patch:
    "translator/dictionary": extended # 指向当前目录的extended.dict.yaml配置文件

创建扩展词库的配置文件: ~/.local/share/fcitx5/rime/extended.dict.yaml

name: extended
version: "2021.02.19"
sort: by_weight
use_preset_vocabulary: true
import_tables:
  - luna_pinyin
  # 此处对应2个词典的文件名(不包含dict.yaml)
  - zhwiki
  - moegirl

tips: 如何验证词库加载成功?打个“刘畊宏”试试看能不能匹配出来

4.2.4. Rime输入法皮肤

可参考Github仓库:https://github.com/thep0y/fcitx5-themes.git

快捷执行下面命令即可安装

git clone https://github.com/thep0y/fcitx5-themes.git
cp -r fcitx5-themes/spring ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/summer ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/autumn ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/winter ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/green ~/.local/share/fcitx5/themes
cp -r fcitx5-themes/transparent-green ~/.local/share/fcitx5/themes
rm -r fcitx5-themes

创建配置文件:~/.config/fcitx5/conf/classicui.conf

Vertical Candidate List=False # 关闭垂直候选列表
PerScreenDPI=True # 根据屏幕DPI调整后选词大小
Font="Smartisan Compact CNS 13"
Theme=spring

在托盘区域重启fcitx5程序,再看看是否失效

4.3. oh-my-zsh

除了在服务器上要照顾通用性外,没有理由不去尝试一下zsh,作为替代Bash成为最常用的Shell,zsh有着太多人性化的优化

Oh My Zsh is an open source, community-driven framework for managing your zsh configuration.

程序员往往把复杂的东西搞简单,把简单的问题搞复杂,而oh-my-zsh的存在就是为了解决复杂的zsh配置,简单暴力的安装一套极好用的Shell,官方仓库已经收录ZSH了,较新的Manjaro版本都已经收录默认zsh作为默认shell了,我们可以查看当前已经安装的虚拟终端

cat /etc/shells
# 如果没有zsh,使用下面的指令进行安装
sudo pacman -S zsh

自定义ZSH的配置比较繁琐,如果对高度自定义ZSH无兴趣,则可以直接采用oh-my-zsh安装,开箱即用,采用下面任一命令进行一键安装(官方仓库提供,无需担心)

# curl方式安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# wget方式安装
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

在安装完成后,在终端切换到zsh

# 切换ZSH
chsh -s /bin/zsh

编辑~/.zshrc文件,更改ZSH_THEME的值便可以更换zsh shell的主题,主题列表可参考ZSH主题列表

ZSH比起Bash,支持很多插件,例如

  • 高亮已知的命令:zsh-syntax-highlighting
  • 提示历史命令:zsh-autosuggestions
  • 自动跳转目录:autojump

其他强大的欢迎插件可以自行Google查找

5. 常用软件

5.1. 浏览器

我是个重度Chrome插件患者,没了Chrome降低200%的工作效率,然而Linux发行版一般都自带了Firefox,Manjaro如是,所以喜欢Firefox的同学可以不用特意安装了

使用yay安装Google-Chrome

yay -S google-chrome

5.2. 虚拟机软件

Linux下的虚拟框架KVM,相比其他虚拟软件,KVM提供内核级别的虚拟,最大性能的共享物理机器的性能,实测虚拟的Winodws10在固态硬盘下体验较为流畅

以下过程参考 KVM(简体中文) - ArchWiki

首先是检查支持情况

# 检查BIOS虚拟化是否开启,Intel处理器输出VT-x,AMD处理器输出AMD-V
LC_ALL=C lscpu | grep Virtualization
# 如果模块设置不为 y或m,则该模块不可用
zgrep CONFIG_KVM /proc/config.gz
# 检查VIRTIO模块是否可用
zgrep VIRTIO /proc/config.gz

这是我机器上的输出,可以对照一下

# chancel @ chancel-cp in ~ [11:31:22] 
$ LC_ALL=C lscpu | grep Virtualization
Virtualization:      VT-x

# chancel @ chancel-cp in ~ [11:31:24] 
$ zgrep CONFIG_KVM /proc/config.gz
CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
CONFIG_KVM_MMU_AUDIT=y

# chancel @ chancel-cp in ~ [11:31:33] 
$ lsmod | grep kvm
kvm_intel             249856  0
kvmgt                  28672  0
mdev                   20480  2 kvmgt,vfio_mdev
vfio                   32768  3 kvmgt,vfio_mdev,vfio_iommu_type1
kvm                   733184  2 kvmgt,kvm_intel
irqbypass              16384  1 kvm

# chancel @ chancel-cp in ~ [11:32:28] 
$ zgrep VIRTIO /proc/config.gz
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=m
CONFIG_CAIF_VIRTIO=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_RPMSG_VIRTIO=m
CONFIG_CRYPTO_DEV_VIRTIO=m

安装KVM以及相关依赖项

# 连接网络依赖ebtables dnsmasq bridge-utils openbsd-netcat等包
sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables iptables

启动KVM后台服务并启动GUI管理界面

sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service
virt-manager

到这一步就结束了,从创建开始都是图形化傻瓜操作了

5.3. 远程桌面

Windows下有许多客户端是无法被替代的,有条件的话双持是非常不错的选择,虚拟机方案可以解决日常软件,但如果涉及到视频会议等需要硬件的场景始终还是受限的,无论是双持还是虚拟机方案,远程Windows作为Linux桌面环境的补充可以填补大部分需求

在Linux下使用VNC远程Windows的时候,体验太过于感人,Windows天然适合RDP远程,而remmina则是Linux下非常优秀的远程客户端,支持所有主流的远程方案如RDP/VNC/SSH/SFTP甚至是Teamviewer!除此之外,详尽的属性配置还能高度自定义化远程细节,如图

这是Linux下我最推荐的远程工具了,安装方式较为简单,Ubuntu/Arch可以直接使用包管理器安装,其他发行版可以自行参考Github上remmina项目安装说明进行安装

sudo pacman -S remmina freerdp

5.4. 主题

5.4.1. shell主题

zsh的主题都非常好看,但要说好用的主题我觉得还是要足够简洁,typewritten便是佼佼者

效果如图

安装方法也非常简单,如果你安装了oh-my-zsh的话,只需要如下2步,首先克隆仓库并且创建软连接

mkdir -p "$HOME/.zsh"
git clone https://github.com/reobin/typewritten.git "$HOME/.zsh/typewritten"

编辑~/.zshrc文件,添加typewritten插件

...
fpath+=$HOME/.zsh/typewritten
autoload -U promptinit; promptinit
prompt typewritten

重新登录Shell即可看到效果

5.4.2. Gnome桌面主题Vimix

在Gnome桌面环境装上一个MacOS的主题?这有点掉品味,无奈的是Linux桌面环境并没有完美主题,所以寻来找去除了默认主题也没耐看的主题了,如果你碰巧在使用Gnome,那么vimix系列绝对是值得一看的主题系列,支持GTK2/3,支持drak/light两种模式切换,还有一套与之配套的Icon

主题安装方法非常简单

git clone https://github.com/vinceliuice/vimix-gtk-themes.git
cd vimix-gtk-themes
sudo ./install.sh

紧接着安装图标

git clone https://github.com/vinceliuice/vimix-icon-theme.git
cd vimix-icon-theme
sudo ./install.sh

接着在桌面的主题控制中心启用即可,Gnome下使用Tweak选择主题即可

PS:KDE用户只能忍痛用默认主题了

5.5. 开发工具

5.5.1. Visual Studio Code

自从用了Visual Studio Code做开发IDE之后,轻量级的工程如博客程序等开发已经完全交由Visual Studio Code来负责了

安装方法

sudo pacman -S code

以下是我使用Visual Studio Code时感觉非常Nice的插件,推荐试用一下

插件名称 插件说明
Auto Close Tag & Auto Rename Tag 如果你写HTML,一定修改过HTML标签,这两款插件可以帮助你自动添加关闭标签与自动修改关闭标签内容
Code Runner 安装这款插件之后,你只需要写好语言文件,选中代码块,然后右键Run Code就完事了,非常适合写代码时测试一些简单语法
Markdown All in One 用VSC写Markdown文本,你就需要这款插件
Markdown PDF 支持把Markdown导出成PDF文件,非常适合分享
Markdown Preview Enhanced Markdown文本预览
Markdown TOC 为你的Markdown笔记添加目录
Setting Sync 如果你有多台PC多个VSC,这个插件可以帮助你同步你所有的VSC设置/插件
vscode-icons vsc默认的图标不是很好看(很Windows风),可以使用这款插件美化你的vsc

5.5.2. 数据库客户端

Windows下navicat软件非常好用,同样也支持Linux,如果有navicat授权,在Linux下使用与Windows上没有区别,如果是要选择其他免费的数据库客户端,在Linux下选择就没有Windows那么丰富了

这里推荐免费开源的dbeaver,它在功能性上并不逊色navicat,在Windows下稳定性尚可,但是在Linux下稳定性只能说非常一般,在易用性方面当然是远不如商业版的navicat的,不过好在支持几乎所有主流数据库

外观上就没什么好挑剔了,基本是工业风格的UI,如下

在Manjaro中安装如下

sudo pacman -S dbeaver

其他操作系统可以参考 DBeaver官网

5.6. 系统工具

5.6.1. 性能监控

Windows下有个难以想象的好用工具 - 任务管理器,Linux有个更能打的top程序,但top并不那么美观,考虑到在个人桌面环境上,美观也是非常重要的事情,所以这里推荐几个可以平替top程序的选择,在Windows下借助任务管理器来判断一些问题是非常常见的,这也凸显了性能监控的重要性,例如PC卡顿是磁盘问题或cpu占用率问题,结合性能消耗信息判断就比较容易

这里优先推荐deepin-system-monitor,其界面如下

Screenshot_20220905_020052.png

deepin系的软件还是非常好看的,安装如下

sudo pacman -S deepin-system-monitor

如果安装deepin-system-monitor遇到问题,那么glances也可以考虑,效果如图

通过Glances可以很清晰的看到cpu/disk/progress等信息,对于不正常的占用还会使用颜色标注

对于健康的信息参数Glances使用的是绿色,对于警报Glances使用的是黄色,对于有问题的选项比如百分百的CPU占用Glances会标注成红色

在Manjaro/Debian下,Glances已被收集到官方仓库,使用包管理器均可以安装

# Manjaro
sudo pacman -S glances

如果你是Cent/Fedroa则需要自行编译,可参考glances - github.com (只要不用Red Hat系发行版我们就是好朋友!)

5.6.2. 磁盘占用分析

Windows下的第三方磁盘分析非常丰富,Linux下如果需要用到磁盘占用分析,推荐baobab

大部分发行版都自带这个软件,可以直接使用软件包管理器进行安装

Manjaro安装如下

sudo pacman -S baobab

5.6.3. 网络工具

常见的网络分析通常是DNS解析,网速测试,MTR报告等,安装方法如下

sudo pacman -S net-tools dnsutils iptraf-ng mtr

在Linux使用终端的概率非常高,终端使用代理传统方法可以使用环境变量,如下

➜ curl https://api.chancel.me/rest/api/v1/ip
{"status":1,"msg":"Query success","data":{"ip":"12.40.141.21"}}
➜ export HTTP_PROXY=http://127.0.0.1:8080
➜ export HTTPS_PROXY=http://127.0.0.1:8080
➜ curl https://api.chancel.me/rest/api/v1/ip
{"status":1,"msg":"Query success","data":{"ip":"218.144.102.14"}}

这样做不是非常方便,且每个终端都需要手动设置代理环境过于麻烦,proxychains可以非常优雅的解决这个问题

sudo pacman -S proxychains

编辑proxychains配置文件/etc/proxychains.conf,在最下方添加代理信息

# proxychains.conf  VER 3.1
#
...
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
# socks4        127.0.0.1 9050
socks5 192.168.4.10 11080

在终端中使用代理请求变得非常简单,如下

➜ proxychains curl https://api.chancel.me/rest/api/v1/ip
{"status":1,"msg":"Query success","data":{"ip":"218.144.102.14"}}

5.6.4. 系统备份

Manjaro做为Arch滚动系统,日常备份还是非常重要的,timeshift是非常优秀的增量系统备份工具

支持定时增量备份,指定备份目录以及恢复系统等功能

sudo pacman -S timeshift

5.6.5. 程序后台运行

Supervisor是一款设置daemon运行的软件,运行一些常见的软件非常有效果(如aria2、syncthing、frp等不带进程管理的软件)

aria2为例来看看Supervisor将普通程序设置为守护进程,安装并启用supervisor

sudo pacman -S supervisor
sudo systemctl enable supervisord
sudo systemctl start supervisord

创建supervisor管理aria2的配置文件,文件位于:/etc/supervisor.d/aria2.ini

[program:Aria2]
command=/home/chancel/apps/aria2c/aria2c -c /home/chancel/apps/aria2c/aria2c.conf
autostart=true # 开机自启
autorestart=true
startsecs=10
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=1
stdout_capture_maxbytes=1MB
user=chancel

supervisor支持热加载新的配置文件,无需重启

# 与 supervisorctl reload不同,update不会重启任何未修改的应用,reload会重新读取所有配置文件重启所有应用
sudo supervisorctl update

查看目前正在运行的aria2c进程

➜ ps -ef | grep aria2c
chancel     1288     940  0 9月01 ?       00:00:15 /usr/bin/aria2c --conf=/etc/aria2c/aria2c.conf

5.7. 其他软件

5.7.1. Deepin系软件

Deepin出现的意义太赞了!最美妙的好处无过于带来了大量外观过关的软件

下面是常见的Deepin系的软件(主要是外观太优秀了),Arch都可以直装的,其他发行版需要自助搜索看看

软件 介绍
deepin-calculator Deepin版计算器(推荐)
deepin-screenshot Deepin版截图(推荐)
deepin-system-monitor Deepin版系统监控(推荐)
deepin.com.qq.im Deepin版TIM
deepin-wine-wechat Deepin版微信
deepin.com.qq.office Deepin版WPS
deepin.com.thunderspeed Deepin版迅雷
deepin-movie Deepin版视频播放器
deepin-picker Deepin版取色器

[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]
目录