Arch系Linux入门配置
在上手ArchLinux快一年后,我深深地被ArchLinux的强大所折服,在继Manjaro Desktop和ArchWSL后,我最终将服务器也安装成了ArchLinux。下面就来记录一下相关配置,做个备份。
前言
2022.1.11更新。由于诸多原因弃用Manjaro,暂时不再折腾Linux Desktop,目前计划等KDE6推出并稳定后再考虑重装一个Linux Desktop。
Arch Linux由于其滚动更新以及比较全面的软件包深深吸引了我,但是事先声明,Arch Linux并不是用户友好的,而比较适合新用户上手的Manjaro是和Arch Linux完全不同的发行版,并不能完全划等号,但是可以用于上手体验Arch Linux的一部分特性。另外强调一点,所有事先省下来的步骤,以后都要还的。
安装
Manjaro Desktop
烧录LiveCD的过程直接掠过(这里推荐使用新工具Ventoy2Disk)。烧录完成后用USB启动,进入一开始的grub界面,如果你的电脑是双显卡,那么推荐在这里选择non-free闭源驱动,manjaro会帮你直接处理好双显卡驱动问题。
进入LiveCD体验界面后,一路安装,在分区这里,我是拿了一整块硬盘给它的,和Windows的硬盘完全隔离,所以我的/boot-efi分区没有挂在在Windows上,这样硬盘拆下来也随时用,否则别的电脑是识别不出这块硬盘的。关于分区,首先记得创建分区表,推荐选GPT,MBR的只能建立四个主分区,对我来说是不够的,尤其是/boot-efi已经占掉一个分区的情况下。
我的分区安排如下(以256G硬盘为例):
| 分区 | 大小 | 文件系统 | 说明 |
|---|---|---|---|
| /boot-efi | 300M | Fat32 | 让电脑能够识别到这块硬盘并以能这块硬盘启动的分区,最新规则不可少于300M,否则无法安装;双系统如果是双硬盘各对应一个系统,推荐创建该分区,而不是挂载到Windows自带的EFI分区上 |
| / | 60G | BTRFS | 根目录,20G一般也够用了,不过考虑到不将var单独分出去,以及使用timeshift并保留多个备份的情况下,选择多分配一些。曾看到有人提过不要把/usr目录单独分区,否则后果自负,我没试过,仅作参考 |
| /home | 剩下全部 | XFS | 用户目录,用于存放个人文件以及部分应用安装位置,单独分区的意义就是可以保留/home分区重装系统,包括换不同的Linux发行版,/home都能无缝切换 |
| swaplinux | 8G | swaplinux | 交换分区,一般是内存大小的1-1.5倍,不过大多数时候8G足够了;这里更推荐以swap file格式创建而不是swap分区 |
之后就是一路默认,等候安装完。
ArchWSL
按照官方手册进行配置即可,WSL个人不推荐安装manjaro。
个人推荐安装appx版本的,不推荐scoop安装(release版本更新容易出问题,我更新过几次都失败的)。
服务器端ArchLinux
可以通过vps2arch脚本一键安装。由于某些原因(习惯了Arch系+某些发行版存在的各种令人难受的问题),最终迫使我将云服务器安装成了Arch,最简单的方法就是通过上面的方式直接安装,那些在虚拟机中安装然后打包成镜像上传的看着过于麻烦就没试。
镜像源
添加官方软件仓库
Multilib
编辑/etc/pacman.conf,将相关注释去掉即可。
Tips: 此配置文件中的Misc Option下有一些可选工程,例如去掉Color前的注释会有惊喜。
下面是官方仓库切换国内镜像源:
Manjaro Desktop
pacman能够测试不同源的速度并给它们排名,从中选择一个快的即可。
$ sudo pacman-mirrors -i -c China -m rank
$ sudo pacman -Syyu
选择几个比较快的源即可。等待它更新完,一般来说下载量在1~2G,实际安装量大约在5~7G(如果安装的是刚刚发布不超过一天的新版本可能几乎不要更新)。
Arch
由于我安装的Arch都是没有图形界面的,所以不能通过上面的方法换源,不过Arch有一个官方软件Reflector可以给镜像源测试排名,比较好用,可以用这个。详情参考ArchWiki。
添加非官方仓库
archlinuxcn
此源是Arch Linux中文社区仓库,需要注意,里面的软件没有为Manjaro进行完全适配,Manjaro使用这个仓库有可能出问题,例如软件无法启动等,这是因为这个源里的软件是为Arch编译打包的,Manjaro由于更新策略原因,会比Arch慢半个月左右,会出现某些包的版本问题。
编辑/etc/pacman.conf,加入以下内容:
[archlinuxcn]
SigLevel = PackageRequired
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
然后更新源以及安装archlinuxcn-keyring包并导入GPG key:
$ sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring
blackarch
blackarch源是Black Arch官方源,里面有丰富的渗透工具,谨慎使用。
编辑/etc/pacman.conf,加入以下内容:
[blackarch]
SigLevel = PackageRequired
Server = https://mirrors.tuna.tsinghua.edu.cn/blackarch/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/blackarch/$repo/os/$arch
然后安装blackarch-keyring并导入GPG key:
# Run https://blackarch.org/strap.sh as root and follow the instructions.
$ curl -O https://blackarch.org/strap.sh
# The SHA1 sum should match: 34b1a3698a4c971807fb1fe41463b9d25e1a4a09
$ sha1sum strap.sh
# Set execute bit
$ chmod +x strap.sh
# Run strap.sh
$ ./strap.sh
再次更新源:
$ sudo pacman -Syyu
应用部署
下面介绍一些常用应用安装与部署过程。
管理工具
yay
yay是一个非常方便的包管理工具,可以使用aur里的包,但仅限非root用户使用。
$ sudo pacman -S yay base-devel
添加国内源:
$ yay --save --aururl https://aur.tuna.tsinghua.edu.cn
下载加速
Axel 是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载。
Axel 支持 HTTP、HTTPS、FTP 和 FTPS 协议。它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为)。它非常轻量级,因为它没有依赖并且使用非常少的 CPU 和内存。
Axel 一步到位地将所有数据直接下载到目标文件(LCTT 译注:而不是像其它的下载软件那样下载成多个文件块,然后拼接)。
注意:不支持在单条命令中下载两个文件.
- 安装axel
$ yay -S axel
- 配置pacman单线程多链接加速
编辑pacman配置文件/etc/pacman.conf,找到Xfercommand修改成如下:
# axel 单线程多链接
XferCommand = /usr/bin/axel -a -n 16 %u -o %o
- 更新数据源
$ sudo pacman -Syy
Tips
-
双系统情况下,让 Manjaro 使用 LocalTime,解决与 Windows 共存主板时间冲突问题:
$ sudo timedatectl set-local-rtc true -
ArchLinux服务器时间同步问题:
使用
ntp服务同步国内时间服务器:$ sudo ntpdate -u ntp.aliyun.com $ sudo ntpd -p -
ArchWSL无法使用
systemd见
archwsl的issues。 -
ArchLinux中英文都乱码。
默认的
locale是中英文都没开启的,需要进行如下操作:$ sudo vim /etc/locale.gen # 去掉en_US.UTF-8和zh_CN.UTF-8前面的注释 $ sudo locale-gen $ sudo localectl set-locale LANG=en_US.UTF-8 # 查看locale $ locale $ locale -a
Swapfile
目录分区的时候提到可以使用swapfile文件替代swap分区的方案,这里记录一下具体操作流程。
-
创建Swap文件
$ dd if=/dev/zero of=/swapfile bs=1M count=512 status=progressbs为单位,count为容量,/swapfile为文件目录。此样例中意思为“在/路径创建swapfile文件,大小为512个1M(512M)”
⚠️Swap的容量需要创建比较大,最好和物理内存相同,至少也要物理内存的2/3,否则会导致休眠失败 -
设置权限
$ chmod 600 /swapfile -
格式化
$ mkswap /swapfile -
启用
$ swapon /swapfile -
自动挂载,编辑
/etc/fstab,添加如下内容/swapfile none swap defaults 0 0 -
关闭
$ swapoff /swapfile
Desktop美化
中文字体
Manjaro默认的中文显示效果非常差,不美观也就罢了,还会有很多奇形怪状的字形(比如“门”,“画”等字)出现。配置字体效果非常耗费时间,如果想仔细折腾,可以参考如下几个网页:
先安装如下字体:
# 思源字体
$ yay -S noto-fonts-cjk adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts
# 更纱黑体
$ yay -S ttf-sarasa-gothic
# 文泉驿
$ yay -S wqy-microhei wqy-zenhei
# Nerd Fonts。终端使用,个人推荐下面四个
$ yay -S nerd-fonts-jetbrains-mono nerd-fonts-dejavu-sans-mono nerd-fonts-cascadia-code nerd-fonts-fira-code
然后在相应的地方(系统设置、浏览器设置、终端设置)修改使用的字体即可。
安装Windows字体
接下来是关于常用Windows字体的配置,这里有两种方法,一种是安装字体,但是由于授权原因,会比较麻烦;另一种是通过配置文件将常用Windows字体映射为其他字体,比较简单但有些文件显示就很鬼畜。
# Windows字体,由于授权原因,直接安装肯定失败
$ yay -S ttf-ms-win10-zh_cn
如何解决?我们只需下载一个win10的镜像,然后解压获取其中的install.wim文件,接下来我们就可以自行构建安装了。(安装其他Windows版本的字体方法类似)
# 切换到yay构建目录下
$ cd ~/.local/share/yay/ttf-ms-win10-zh_cn
# 将install.wim复制到此目录下,将镜像中的自带字体文件解压到此目录下
$ cp $(find / -name install.wim 2>/dev/null) ~/.local/share/yay/ttf-ms-win10-zh_cn
# 构建安装
$ makepkg --skipchecksums
zsh美化
切换shell为zsh
-
查看系统是否安装了zsh
$ bat /etc/shells -
安装zsh
$ yay -S zsh -
查看系统当前使用的shell
$ echo $SHELL -
切换shell为zsh
$ chsh -s /bin/zsh -
如果要切换回去bash:
$ chsh -s /bin/bash
美化配置
-
2021.12更新,使用z4h
直接执行命令即可:
if command -v curl >/dev/null 2>&1; then sh -c "$(curl -fsSL https://raw.githubusercontent.com/romkatv/zsh4humans/v5/install)" else sh -c "$(wget -O- https://raw.githubusercontent.com/romkatv/zsh4humans/v5/install)" fi按照提示选择即可,默认安装主题为
powerlevel10k,下面安装的几个插件也基本都包含了,无需安装。对
~/.zshrc文件更改后想令其生效,需执行exec zsh。 -
下载安装 oh-my-zsh
由于墙的原因,可能会执行失败,请自行开代理或者改
hosts解决。$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh -
安装
powerlevel10k主题(官方主题中比较不错的有ys和avit)$ git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k -
安装autojump自动跳转插件
$ yay -S autojump -
安装zsh-completions补全插件
$ git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions -
安装zsh-syntax-highlighting语法高亮插件
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting -
安装zsh-autosuggestions语法历史记录插件
$ git clone https://github.com/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions -
更新配置
$ vim ~/.zshrc修改下面几处内容
# powerlevel10k主题 ZSH_THEME="powerlevel10k/powerlevel10k" # 插件,前五个为自带插件 plugins=(git docker docker-compose extract sudo zsh-syntax-highlighting zsh-autosuggestions zsh-completions autojump) -
生效
$ source ~/.zshrc -
Tips:zsh无法匹配
*在
~/.zshrc中添加setopt no_nomatch。
Latte-Dock
KDE下非常强力的dock栏工具,可以搭配全局主题进行美化。
yay -S latte-dock
然后可以右键dock栏选择布局进行自定义布局或者下载现有的布局进行DIY。
'Meta/Super/Win'键绑定程序启动器
限定KDE搭配Latte-dock,执行如下指令即可。
kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.kglobalaccel,/component/krunner_desktop,org.kde.kglobalaccel.Component,invokeShortcut,_launch"
qdbus org.kde.KWin /KWin reconfigure
Wayland
当下KDE对Wayland的支持已经不错,使用下来没有什么比较大的问题,所以目前全部切到Wayland。根据ArchWiki,安装如下包:
$ yay -S plasma-wayland-session
然后在登录界面选择Wayland即可。
Wigets
记录一些用得比较多的KDE小部件:
# 查看系统信息,直接放于桌面
Simple Monitor
# 应用程序菜单,用习惯了
Simple Menu
常用软件
中文输入法
安装fcitx5(输入法框架):
$ yay -S fcitx5-im
修改配置文件~/.pam_environment:
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
SDL_IM_MODULE DEFAULT=fcitx
INPUT_METHOD DEFAULT=fcitx5
XMODIFIERS DEFAULT=\@im=fcitx
使用wps的用户还需要编辑~/.xprofile:
export QT_IM_MODULE=fcitx5
安装fcitx5-rime(输入法引擎)
$ yay -S fcitx5-rime
然后在输入法配置中启用“中州韵”;
安装 🍀️ 四叶草拼音输入方案:
$ yay -S rime-cloverpinyin
创建并写入rime-cloverpinyin的输入方案:
$ vim ~/.local/share/fcitx5/rime/default.custom.yaml
内容为:
patch:
"menu/page_size": 5
schema_list:
- schema: clover
其中page_size表示打字的时候输入面板的每一页的候选词数目,可以设置成 1 ~ 9 任意数字。
安装中文维基百科词库:
$ yay -S fcitx5-pinyin-zhwiki-rime
(可选)配置主题:
$ yay -S fcitx5-material-color
# 详情可看 https://github.com/hosxy/Fcitx5-Material-Color
# 或者
$ yay -S fcitx5-nord
# 详情可看 https://github.com/ayamir/fcitx5-nord
然后修改配置文件 ~/.config/fcitx5/conf/classicui.conf:
# 垂直候选列表
Vertical Candidate List=False
# 按屏幕 DPI 使用
PerScreenDPI=True
# Font (设置成你喜欢的字体)
Font="思源黑体 CN Medium 16"
# 主题(参考github具体配置)
Theme=Nord-Light
虚拟机
Linux下个人用虚拟机用Virtualbox就足够了,因此下面的配置是针对Virtualbox的安装配置过程。
-
确定内核版本
$ uname -r -
安装virtualbox
$ yay -S virtualbox这里需要选择与当前内核相同的安装包,切记不要选错了!!!
-
启动virtualbox
$ sudo modprobe vboxdrv -
virtualbox和宿主机文件拖拽和共享文件夾
启动系統-〉设备-〉安装增强功能,等待下载完即可。
-
Windows虚拟硬盘扩容
在Linux的虚拟硬盘目录下运行:
$ VBoxManage modifyhd 名字.vdi --resize 新的磁盘大小(MB)然后打开虚拟机,打开磁盘管理,会发现未分配的磁盘,接下来就是吧这块磁盘分配一下就好了。
-
压缩vdi文件
如果一不小心分配大小过多的话,那么下面的命令将能够压缩vdi文件以节省空间:
$ VBoxManage modifyhd 名字.vdi --compact -
虚拟机增强功能(客体机增强插件)
$ yay -S virtualbox-guest-utils
日常应用
# Office应用,目前还是使用WPS,也可以使用网页版的谷歌文档或者Office Online,但是网(dai)速(li)得跟得上
$ yay -S wps-office-cn wps-office-mime-cn wps-office-mui-zh-cn ttf-wps-fonts
# Typora,非常好用的md编辑器
$ yay -S typora
# MarkText,Typora收费后的开源替代
$ yay -S marktext
# google chrome,虽然不支持硬件解码,但是比chromium-vaapi时常无法启动要好
$ yay -S google-chrome
# keepassxc本地密码管理器
$ yay -S keepassxc
# 邮件客户端,mailspring/thunderbird,mailspring现在好些邮箱不能同步了,遂改用thunderbird
$ yay -S mailspring
$ yay -S thunderbird
# Telegram
$ yay -S telegram-desktop
# Microsoft Teams
$ yay -S teams
# Microsoft Todo,第三方,基于electron
$ yay -S ao
# uget+aria2下載工具
# 将 uGet -> Edit -> Settings -> Plug-in 中的设置设为 aria2
$ yay -S uget aria2
# qbittorrent,强大的BT客户端,下面下的是enhanced版,相对更省心一些
$ yay -S qbittorrent-enhanced-git
# 坚果云,linux上比较好的同步工具
$ yay -S nutstore
# joplin,轻量的跨平台笔记工具,支持WebDav同步
$ yay -S joplin-desktop
# 火焰截图,最好用的截图工具之一
$ yay -S flameshot
# onedrive-abraunegg,linux上的第三方OneDrive客户端,纯命令行,目前在用
# rclone,经典云盘挂载应用,支持多种云盘,纯命令行
# rclone-browser,一个简易的跨平台rclone GUI客户端
# onedriver,一个比较新的OneDrive客户端,带GUI
$ yay -S onedrive-abraunegg
$ yay -S rclone rclone-browser
$ yay -S onedriver
# FileZilla,好用的跨平台FTP客户端
$ yay -S filezilla
# calibre,电子书管理神器
$ yay -S calibre
# qv2ray,跨平台V2ray客户端,兼容xray
$ yay -S qv2ray xray xray-domain-list-community xray-geoip
# audacious,好用的本地音乐播放器
$ yay -S audacious
# 网易云音乐,由于官方的臃肿且在KDE环境下有不少BUG,因此我选择了第三方的版本,基本功能都有
$ yay -S netease-cloud-music-gtk
# 或者高颜值、开发活跃的第三方客户端
$ yay -S yesplaymusic
# 或者多平台集成播放器FeelUOwn
# 项目地址https://github.com/feeluown/FeelUOwn
$ yay -S feeluown-full
# SMplayer,跨平台视频播放器
# 基于mpv开发,相比vlc更加人性化一些,操作简单,基本功能比较完善
$ yay -S smplayer
# 百度网盘,有bin和electron两个版本,我使用electron版本
$ yay -S baidunetdisk-electron
# 迅雷,应该是deepin上的迅雷移植
$ yay -S xunlei-bin
# samba,文件同步,以及samba GUI客户端
$ yay -S samba smb4k
# Gimp,图片查看器与编辑器
$ yay -S gimp
# Pinta,基于Paint.net开发的图像编辑器
$ yay -S pinta
# OBS-Studio,非常好用的录屏串流软件
$ yay -S obs-studio
# MKVToolNixGUI,强大的MKV处理软件
$ yay -S mkvtoolnix-gui
开发软件
开发工具
# Visual Studio Code,强大的编辑器,与sublime-text二选一即可
$ yay -S visual-studio-code-bin
# postman,后端开发必备工具
$ yay -S potman-bin
# Gitkraken,大章鱼,个人觉得还不错的git客户端
$ yay -S gitkraken
# Github Cli
$ yay -S github-cli
# Jetbrains全家桶
# 两种方式,通过jetbrains-toolbox安装或者直接通过仓库安装
# 仓库安装可以通过`yay + 包名`搜索安装,记得后缀为`jre`的也安装上,可以支持字体连写
$ yay -S jetbrains-toolbox
# Dbeaver Community,Linux下比较好用的数据库管理客户端
$ yay -S dbeaver
# QTcreator,跨平台QT开发工具
$ yay -S qtcreator
# TeXLive,LaTeX是学术出版的标准排版软件。可以直接从软件仓库中安装,不需要完全安装,安装基础组件以及中文语言包即可
$ yay -S texlive-most texlive-langchinese
# mycli,开源终端数据库Client,操作方式同mysql
$ yay -S mycli
# 通过ssh连接远程数据库
# local-port,开放的本地端口
# mysql-port,mysql开放的端口,默认是3306
$ ssh -NCPf user@domain -L local-port:127.0.0.1:mysql-port
# 之后就可以通过如下命令访问远程数据库了
$ mycli -u username -ppasswd -h 127.0.0.1 -P local-port
开发环境
vim
$ yay -S vim
vim增强配置,目前使用EverVim
# 配置环境
$ yay -S git python-pip ctags cmake gcc
# 自动安装(代理 or hosts)
$ curl -sLf https://raw.githubusercontent.com/LER0ever/EverVim/master/Boot-EverVim.sh | bash
2022.1.8更新,现更换为neovim
参考配置为ayamir的大佬的配置:
$ yay -S neovim
# gitui required by tui git operations
# ripgrep required by telescope word search engine
# ripgrep required by telescope-zoxide
# sqlite required by telescope-frecency
# fd required by telescope file search engine
# yarn required by markdown preview
# nerd-fonts-ibm-plex-mono required by devicons
$ yay -S git gitui zoxide ripgrep sqlite fd yarn nerd-fonts-ibm-plex-mono
# nodejs, neovim-git required by copilot.
# neovim version >= 0.6
$ yay -S nodejs neovim-git
# for neovim python module
$ pip install neovim --user
# clone
$ git clone https://github.com/ayamir/nvimdots ~/.config/nvim
# sync plugins(maybe need multiple times)
$ nvim +PackerSync
其他可参考Wiki。
emacs
$ yay -S emacs
emacs推荐使用现成的Spacemacs
$ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
Java
$ yay openjdk
然后挑选需要的jdk版本下载即可。
使用 archlinux-java 命令来管理 Java 环境。
列举 Java 环境:
$ archlinux-java status
选择 Java 环境:
$ sudo archlinux-java set java-8-openjdk
安裝maven:
$ yay -S maven
Go
$ sudo pacman -S go go-tools
可选用
gcc-go,但若需要使用 JetBrains 的 IDE 则必须使用go,否则 IDE 无法在/usr/lib/go下找到 Go SDK。
配置环境变量 GOPATH ,个人偏好在用户目录下的 go/ 文件夹放置 Go 相关文件。
$ vim ~/.zshrc # OR ~/.bashrc OR ~/.profile
export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin
由于某些特殊的原因,国内无法很好地拉取 Go 相关的软件包。建议使用 goproxy/goproxy.cn ,只需在拉取前输入:
$ export GOPROXY=https://goproxy.cn
Python
除了自带的python之外,可以安装比较著名的anaconda/minniconda,个人推荐安装miniconda,但下面依旧以安装anaconda为例:
$ yay -S anaconda
$ source /opt/anaconda/bin/activate root
$ conda install jupyterlab # 相比jupyter notebook体验更好。
-
添加可用的清华源
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ $ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ $ conda config --set show_channel_urls yes -
更新
$ conda upgrade --all $ conda clean -y --all -
pip换清华源
$ vim ~/.pip/pip.conf # 添加如下内容 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
npm&&nodejs
$ yay -S npm nodejs
-
国内镜像源加速
$ npm config set registry https://registry.npm.taobao.org
ruby
$ yay -S ruby
要使用gem的话需要在$HOME/.zshrc中加入:
PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
gem切换国内镜像源:
# 添加 TUNA 源并移除默认源
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
# 列出已有源
gem sources -l
# 应该只有 TUNA 一个
docker
$ yay -S docker docker-compose
# 启动docker
$ sudo systemctl start docker.service
# 允许开机自启
$ sudo systemctl enable docker.service
# 免sudo使用
$ sudo groupadd docker #添加docker用户组
$ sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
$ newgrp docker #更新用户组
$ docker info #测试是否可以免sudo使用
# 国内镜像加速(第一个是阿里云镜像,需要注册登录)
$ sudo vim /etc/docker/daemon.conf
{
"registry-mirrors": [
"https://71lfp1ay.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com",
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com",
"https://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
}
nginx
$ yay -S nginx
# 服务启动、开机自启、重载配置
$ sudo systemctl start nginx.service
$ sudo systemctl enable nginx.service
$ sudo systemctl reload nginx.service
# 检验配置是否有问题
$ nginx -t
配置文件加载/etc/nginx下,开启网站的代理可以在该目录下创建sites-available和sites-enabled两个文件夹,通过ln创建软连接决定开启哪些网站。
MySQL/MariaDB
***不推荐包安装,要安装也推荐使用docker部署。***下面还是放出包安装过程(以MariaDB为例):
$ yay -S mariadb mariadb-clients
# 安装成功后,根据提示,输入下列指令初始化MariaDb数据库
$ sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# 一番信息自动输出完成后,执行以下代码
$ sudo systemctl start mysqld # 启动MariaDb
$ sudo mysqladmin -u root password "root" # 为root、用户添加密码
$ sudo systemctl enable mysqld # 设置mariaDb开机自启
$ mysql -uroot -p # 输入设置的的密码,登录数据库
CREATE USER 'test'@'%' IDENTIFIED BY 'test';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
FLUSH PRIVILEGES;
更改默认编码为 utf8mb4 :
$ sudo vim /etc/my.cnf
# append following lines
[client]
default-character-set = utf8mb4
[mysqld]
collation_server = utf8mb4_unicode_ci
character_set_server = utf8mb4
[mysql]
default-character-set = utf8mb4
重启 MariaDB 以生效。
辅助工具
一部分是原生Linux指令的几个比较好用的替换工具,另一些是便于使用的辅助工具:
# neofetch查看系统信息,lolcat彩色输出
$ yay -S neofetch lolcat
# bat替换cat,带语法高亮
$ yay -S bat
# htop替换top
$ yay -S htop
# 更强大的htop/top替代者
$ yay -S glances
# ncdu替换du
$ yay -S ncdu
# 或者dust
$ yay -S dust
# sd替换sed
$ yay -S sd
# tealdeer替代tldr
$ yay -S tealdeer
# ripgrep替换grep,速度更快
$ yay -S ripgrep
# fd替换find,更快的文件搜索工具
$ yay -S fd
# procs替换ps,输出信息更丰富
$ yay -S procs
# cloc/tokei,统计不同类型文件信息
$ yay -S cloc tokei
# colorls,彩色ls输出,比oh-my-zsh自带的要好,还可以结合tree
$ yay -S ruby-colorls
# logo-ls,go编译,带图标等,也不错。
# 官方地址:https://github.com/Yash-Handa/logo-ls
$ yay -S logo-ls
# 命令行直接用类似man的方式查看 cppreference 手册
$ yay -S cppman
# 分屏显示diff的工具
$ yay -S icdiff
# 修改 git 设置,将其配置为 git diff 默认工具(也可以直接git icdiff)
$ git config --global icdiff.options '--highlight --line-numbers'
# 编辑~/.git-icdiff.sh,设置 icdiff 指令
#!/bin/bash
/usr/bin/icdiff $2 $5
# dstat替代vmstat
$ yay -S dstat
# 安装 mcedit,终端下面的 NotePad++ 和 Total Commander
$ yay -S mc
# lsof
$ yay -S lsof
# ranger,终端文件管理器
$ yay -S ranger
# frp,简单好用的内网穿透客户端
# 配置直接参考/etc/frp目录下的frp*_full.ini
# 启动服务通过systemctl
$ yay -S frpc frps
# python代码格式化插件,个人选用black
$ yay -S python-flake8-black
# cmatrix,asciiquarium。sl,cowfortune等比较有趣的终端指令
$ yay -S cmatrix
$ yay -S asciiquarium
$ yay -S sl
$ yay -S cowfortune
渗透工具
# 网络抓包-wireshark
$ yay -S wireshark-qt
# SQLmap
$ yay -S sqlmap
# 渗透测试集成平台
$ yay -S burpsuit
# 网络发现和攻击界面测绘的首选工具Nmap
$ yay -S nmap
pacman指令
pacman -Sy abc # 和源同步后安装名为abc的包
pacman -S abc # 从本地数据库中得到abc的信息,下载安装abc包
pacman -Sf abc # 强制安装包abc
pacman -Ss abc # 搜索有关abc信息的包
pacman -Si abc # 从数据库中搜索包abc的信息
pacman -Q # 列出已经安装的软件包
pacman -Q abc # 检查abc软件包是否已经安装
pacman -Qi abc # 列出已安装的包abc的详细信息
pacman -Ql abc # 列出abc软件包的所有文件
pacman -Qo /path/to/abc # 列出abc文件所属的软件包
pacman -Syu # 同步源,并更新系统
pacman -Sy # 仅同步源
pacman -Su # 更新系统
pacman -R abc # 删除abc包
pacman -Rd abc # 制删除被依赖的包
pacman -Rc abc # 除abc包和依赖abc的包
pacman -Rsc abc # 除abc包和abc依赖的包
pacman -Sc # 理/var/cache/pacman/pkg目录下的旧包
pacman -Scc # 除所有下载的包和数据库
pacman -U abc # 装下载的abs包,或新编译的abc包
pacman -Sd abc # 略依赖性问题,安装包abc
pacman -Su --ignore foo # 级时不升级包foo
pacman -Sg abc # 询abc这个包组包含的软件包
#清除无用的包
sudo pacman -R $(pacman -Qdtq)








