menu Chancel's blog
rss_feed
Chancel's blog
我就是这样的人

Manjaro

作者:Chancel, 更新:2023 Jan 12, 字数:19794, 已阅:257

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

export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=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程序,再看看是否失效

提示1:遇到第三方软件无法正常使用输入法,请确认是否已安装了fcitx5-qt

提示2:遇到系统软件无法正常使用输入法,使用fcitx5-diagnose程序检查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/Chromium

我是个重度Chrome插件患者,没了Chrome降低200%的工作效率,Linux发行版一般都自带了Firefox,如只使用Firefox倒也轻松不少

Manjaro无法通过Chrome官网直接下载安装包,通过yay自行安装比较方便

sudo pacman -S base-devel
yay -S google-chrome chromium

5.2. 虚拟机KVM

Linux下的KVM虚拟软件相比其他虚拟软件提供了内核级别的虚拟,最大性能的共享物理机器的性能

KVM安装的过程可以参考 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

安装KVM以及相关依赖项,并启动后台服务

sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables
# 开机启动服务
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service
# 开启默认网络服务
sudo virsh net-start default
sudo virsh net-autostart default

在应用程序中搜索vm找到Virtual Machine Manager启动,界面操作简单,有其他虚拟软件经验零成本上手

5.3. 远程桌面支持

Windows自带RDP协议远程(即mstsc),在Linux上有着许许多多优秀的RDP协议客户端,这些客户端基本都上基于FreeRDP程序实现的

使用方法可以参考man手册,Freerdp支持的功能非常广泛,在Manjaro上安装FreeRDP

sudo pacman -S freerdp

举例远程一台192.168.1.100的Windows PC,映射本地文件夹/mnt/sda,接收远程音频,设定分辨率大小1080P,方法如下

xfreerdp /v:192.168.1.100 /u:chancel /size:1920x1080 /drive:/mnt/sda,SDA /audio-mode:0

如果觉得命令行远程较为麻烦,也有很多第三方GUI客户端,推荐FreeRDP项目的Remmina客户端,Remmina支持主流的远程协议包括RDP/VNC/SSH/SFTP,除此之外,详尽的属性配置还能高度自定义化远程细节,如图

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

sudo pacman -S remmina

注意,Remmina要使用RDP协议必须安装freerdp,另外在参数使用过多时,Remmina并不太稳定容易闪退

5.4. 截图和录屏

截图与录屏是日常开发沟通时候有效的沟通手段,在Windows下,不少人都习惯了QQ/微信自带的截图,非常好用

在Linux桌面下与之类似体验的是deepin-screenshot,唯一的缺点是兼容性一般,不是所有桌面都能运行

安装与使用方法

yay -S deepin-screenshot
deepin-screenshot -n

如果deepin-screenshot无法使用,那么可以借助脚本搭配桌面环境自带的截图工具来实现类似的效果

KDE Plasma自带的spectacle举例,脚本如下

#!/bin/bash
#author:chancel
#date:2022-08-16

filename=`date +%Y%m%d.%H%M%S`.png
if [[ $2 == full ]]
then
        /usr/bin/spectacle -c -f -b -o $1/$filename
fi
if [[ $2 == monitor ]]
then
        /usr/bin/spectacle -c -m -b -o $1/$filename
fi
if [[ $2 == window ]]
then
        /usr/bin/spectacle -c -a -b -o $1/$filename
fi
if [[ $2 == area ]]
then
        /usr/bin/spectacle -c -r -b -n -o $1/$filename
fi

将上述脚本保存为spectacle.sh,使用方法如下

# 选定区域截图
/bin/bash spectacle.sh ~/Pictures area
# 截图当前活动窗体
/bin/bash spectacle.sh ~/Pictures window

录屏的话推荐peek,Manjaro也支持直接安装

sudo pacman -S peek

5.5. 主题

5.5.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.5.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选择主题即可

5.6. 开发工具

5.6.1. Visual Studio Code

Visual Studio Code是微软旗下的轻量级IDE,大部分中小型项目使用轻量级IDE来跑是完全没有问题的,Manjaro也支持直接安装

yay -S visual-studio-code-bin

注意不要使用pacman安装社区版本的Visual Studio Code,该版本无法安装部分插件

5.6.2. 数据库客户端

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

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

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

在Manjaro中安装如下

sudo pacman -S dbeaver

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

5.6.3. Docker

官方仓库已经收录了Docker以及Docker Compose了,直接安装后启动并登录

sudo pacman -S docker docker-compose
sudo systemctl start docker.service
sudo systemctl enbale docker.service
sudo docker login

拉取portainer运行看看

sudo docker run portainer/portainer
sudo docker run -d --name portainer -p 59000:9000 --restart=always portainer/portainer

5.7. 系统工具

5.7.1. 性能监控

在Windows下借助任务管理器来判断一些问题是非常常见的,这也凸显了性能监控的重要性,例如PC卡顿是磁盘问题或cpu占用率问题,结合性能消耗信息判断就比较容易

Linux下也有top程序来监控管理性能消耗,但top程序作为CLI界面算凑合,并不那么美观,考虑到在个人桌面环境上,美观也是非常重要的事情,所以这里推荐几个平替top程序,

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

Screenshot_20220905_020052.png

deepin系的软件UI设计还是在线的,安装方法如下

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

考虑到资源消耗,也可以安装htop程序,稍微比top程序美观一些

5.7.2. 磁盘占用分析

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

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

Manjaro安装如下

sudo pacman -S baobab

5.7.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.7.4. 系统备份

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

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

sudo pacman -S timeshift

5.7.5. 后台运行

在Linux下,后台运行一款软件初学者通常采用nohup

nohup aria2c -c /etc/aria2/aria2.conf >> /var/log/aria2.log 2>&1 &

nohup有不少缺点,如输出的日志不好切割,进程被干掉不会自动重启,设置环境变量复杂,指定用户运行困难

相对的,可以使用Supervisor来管理后台软件,运行一些常见的软件非常有效果(如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(部分发行版配置文件是.conf结尾,注意甄别)

[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

supervisor非常有效的解决了nohup的痛点,对daemon运行程序感兴趣的话还可以进一步了解如何配置systemd的用户级程序

5.8. Deepin系软件

Deepin的大部分软件UI设计都非常不错,下面是常见的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)]]
目录