# 前言

​ 一直使用 KaliLinux 用起来还是很舒服的。但是最近总感觉 kali 太臃肿,使用起来虽然方便,但是总感觉很多东西我甚至没有打开过。还是决定配置一台我自己的 Linux 使用,所以我将目光看向了 Arch, 一个轻量级和灵活的 Linux® 发行版。虽然许多 GNU/Linux 发行版都试图变得更加用户友好,但 Arch Linux 一直以来都是,并且将永远以用户为中心。该发行版旨在满足为其做出贡献的人的需求,而不是试图吸引尽可能多的用户。它针对的是熟练的 GNU/Linux 用户,或者任何愿意阅读文档并解决自己问题的人。(简单来说就是什么都靠自己 DIY 😻 )

下载地址(最小化安装):Arch Linux - Downloads

下载地址(有 Desktop Environment 的版本):EndeavourOS – A terminal-centric distro with a vibrant and friendly community at its core

上面给到了两个下载地址,这里我写一个文档简单记录一下我从安装到配置的整个过程方便我以后查询 (在物理机上安装)。最后来句骚话:“遇到了麻烦,不要气馁,解决问题本身就是一种乐趣。”

# 系统安装

​ 因为我的电脑上 N 卡的缘故,所以我只能选择使用虚拟化。这里选择 VM 平台,镜像的话我使用的是最小化安装的这个还是从零开始 DIY 一下

image-20240507153440749

直接第一个,然后就进到 live 环境

image-20240507153551194

乐,开始我还以为结束了,没想到是刚刚开始。因为我上面选择的是 BIOS 启动,所以这里也不用去判断了。

# 链接到网络

要在 Live 环境中配置网络连接,请遵循以下步骤:

  • 确保系统已经列出并启用了网络接口,用 ip-link(8) 检查:

    ip link
  • 对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被 rfkill 禁用。

  • 要连接到网络:

    • 有线以太网 —— 连接网线。
    • WiFi—— 使用 iwctl 认证无线网络。
    • 移动宽带调制解调器(移动网卡) - 使用 mmcli 连接到移动网络。
  • 配置网络连接:

    • DHCP:对于有线以太网、无线局域网(WLAN)和无线广域网(WWAN)网络接口来说,动态 IP 地址和 DNS 服务器分配(由 systemd-networkdsystemd-resolved 提供功能)能够开箱即用。
    • 静态 IP 地址:按照网络配置 #静态 IP 地址进行操作。
  • 用 ping 检查网络连接:

    ping www.baidu.com

image-20240507154853661

网络连接是正常的。

# 更新系统时间

在 Live 环境中 systemd-timesyncd 默认启用,也就是说当系统已经创建互联网连接后,系统时间将自动同步。使用下面的命令来确保系统时间是准确的

timedatectl

image-20240507160729084

# 创建磁盘分区

系统如果识别到计算机的内置硬盘、U 盘或者移动硬盘等类型磁盘,就会将其分配为一个块设备,如 /dev/sda/dev/nvme0n1/dev/mmcblk0 。可以使用 lsblk 或者 fdisk 查看:

fdisk -l

结果中以 romloop 或者 airootfs 结尾的设备可以被忽略。结果中以 rpbmboot0 或者 boot1 结尾的 mmcblk* 设备也可以被忽略。

注意: 如果您想要的磁盘没有显示出来,请确保您的磁盘控制器未处于 RAID 模式。

image-20240507170729201

这里有一个名为 sda 的磁盘,大小为 300GB,以及一个名为 loop0 的 loop 设备,大小为 788MB。sda 代表虚拟机的‘物理磁盘’我在前面,而 loop 设备通常用于挂载文件系统镜像或其他虚拟设备。

对于一个选定的设备,以下分区是必须要有的:

  • 一个根分区(挂载在 根目录/
  • 要在 UEFI 模式中启动,还需要一个 EFI 系统分区。

请使用分区工具(fdisk 、parted、cfdisk 等等)修改分区表。例如:

# fdisk /dev/(要被分区的磁盘)
fdisk /dev/sda

arch 的中文文档中给到了一些分区方案 分区 - Arch Linux 中文维基 (archlinuxcn.org)。我选择的分配方案如下表所示:

分配表

挂载点PartitionSize
/boot/efi/dev/sda1300 MiB
//dev/sda2100G
[SWAP]/dev/sda38G
/home/dev/sda4192G

接下来开始分区

image-20240510162120097

这里创建了一个大小 300MiB 的分区挂载 efi

image-20240510163409269

设置一个 8G 的分区作为 SWAP

image-20240510163526659

设置一个 100G 的分区挂载 /

image-20240510163659900

将剩余空间设置一个分区用于挂载 /home

image-20240510164124500

这里就分区完成了

# 格式化分区

格式化分区这里我选择 Btrfs

BTRFS 是一种现代的写时复制(COW)Linux 文件系统,致力于实现一些高级功能,同时着重于容错性、修复性以及易于管理性。

这里首先将 efi 分区格式化

mkfs.fat -F 32 /dev/sda1

image-20240510170645917

使用 mkswap 激活交换分区

image-20240510170755068

最后将 sda3 和 sda4 都格式化伪 btrfs 的文件系统

mkfs.btrfs /dev/sda3
mkfs.btrfs /dev/sda4

image-20240510171411391

# 挂载 & 启动分区

分区完成,格式完成后就到了安装前的最后一个步骤将我们划分的分区挂载

将根磁盘卷挂载到 /mnt

mount /dev/sda3 /mnt

然后使用 mkdir 在 /mnt 下创建任何剩余的挂载点(例如,为 /boot 而创建 /mnt/boot),并按相应的层级顺序挂载相应的磁盘卷。

** 提示:** 使用 --mkdir 选项运行 mount 来创建指定的挂载点。或者,先使用 mkdir 创建挂载点再挂载。

这里就将对应的目录挂载上

mount --mkdir /dev/sda1 /mnt/boot
mount --mkdir /dev/sda4 /mnt/home

image-20240510173235525

最后将交换分区启动(如果没有设置的话这里就不用管)

swapon /dev/sda2

image-20240510173528368

# 安装系统

# 选择镜像站

系统的文件 /etc/pacman.d/mirrorlist 中定义了软件包会从哪个镜像站下载。在 LiveCD 启动的系统上,且在连接到互联网后,reflector 会通过选择 20 个最新同步的 HTTPS 镜像站并按下载速率对其进行排序来更新镜像列表(由于只考虑最新的 20 个镜像站,其结果大多数时候都不怎么好用)。

在列表中,越靠前的镜像站在下载软件包时,就会有越高的优先级。请您检查 /etc/pacman.d/mirrorlist 文件,看看列出的镜像站的顺序是否合适。如果不合适,可以手动修改,将离您所处地理位置最近的镜像挪到文件的头部,同时也应该考虑一些其他标准。

要获取 pacman-mirrorlist 包 的按国家分列的原始镜像列表,在挑选了能用的镜像之后,可以执行

pacman -Sy pacman-mirrorlist

再将 /etc/pacman.d/mirrorlist.pacnew 复制到 /etc/pacman.d/mirrorlist 并进行编辑。

这个文件接下来还会被 pacstrap 拷贝到新系统里,所以请您确保设置正确。

文档中这块是这样写的,但是我自己的流量是走代理的所以就没管它。不过如果需要更改的话我们可以使用清华的源

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch 

# 安装必须的软件包

注意: 除了 /etc/pacman.d/mirrorlist 之外的软件或配置不会从 Live 环境传递到安装的系统中。

安装 base 包 软件包和 Linux 内核以及常规硬件的固件:

pacstrap -K /mnt base base-devel linux-lts linux-firmware linux-lts-headers 

image-20240511093742858

# 配置系统

# 生成 fstab 文件

安装完成后就可以配置系统了,通过以下命令生成 fstab 文件 (用 -U-L 选项设置 UUID 或卷标):

genfstab -U /mnt >> /mnt/etc/fstab

image-20240511094545009

这里执行完成后去查看一下对应的文件是否写入成功

image-20240511131950446

# chroot 到新安装的系统

chroot 是一个非常有用的命令,它允许你在一个新的根文件系统环境中执行命令。在 Linux 中,根文件系统是文件系统的顶层,包含操作系统的核心文件和目录。通过使用 chroot 命令,你可以将当前进程的根文件系统更改为另一个位置,就好像它是原始根文件系统一样。

在 Arch Linux 安装过程中,通常在完成 pacstrap 安装基本系统之后,你需要使用 chroot 进入新安装的系统以进行后续配置,比如安装引导程序、配置网络、创建用户等。

arch-chroot /mnt

image-20240511100242461

** 提示:** 此处使用的是 arch-chroot 而不是直接使用 chroot ,注意不要输错了。如果运行 arch-chroot 的时候报错说明系统的安装步骤没有做好,需要重新操作硬盘安装

# 设置时区

通过下面的方式设置时区

# ln -sf /usr/share/zoneinfo/Region(地区名)/City(城市名) /etc/localtime

** 提示:** 例如,在中国大陆需要将时区设置为上海这个城市,那么请运行 # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

所以我这里使用的就是上海

image-20240511112646482

然后运行 hwclock 以生成 /etc/adjtime:

hwclock --systohc

这个命令会将我们的时间写入到硬件时钟中。硬件时钟通常用于在系统关机或重启时保持时间的持久性,以便在系统重新启动时可以恢复到正确的时间

image-20240511113619257

# 区域和本地化设置

程序和库如果需要本地化文本,都依赖区域设置。在区域设置中明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。需要设置这两个文件: locale.genlocale.conf 。编辑 /etc/locale.gen ,然后取消掉 en_US.UTF-8 UTF-8 和其他需要的 UTF-8 区域设置前的注释(#)。接着执行 locale-gen 以生成 locale 信息:

这里想要修改发现没有 vim,所以我又退出去安装了一个

pacstrap -K /mnt vim

image-20240511145712717

再重新进文件系统

image-20240511151751337

image-20240511151725392

这里将 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8 前面的注释去掉,接着执行 locale-gen 以生成 locale 信息:

locale-gen

image-20240511151903215

只有运行该命令后,locale.gen 中取消注释的地区和语言选项才可以使用

# 网络配置

创建 hostname 文件

vim /etc/hostname
(主机名)

image-20240511152916384

# 设置 root 密码

用以下命令设置 root 密码:

passwd

image-20240511153342347

# 安装引导程序

引导加载程序(Boot Loader,又称引导加载器、启动加载器或启动引导器)是由计算机固件(BIOS 或 UEFI)启动的软件。它负责用想要的内核参数加载内核,并根据配置文件初始化 RAM 磁盘。

修改 grup 的配置文件

vim /etc/default/grub

image-20240511172710764

grub-install --target=i386-pc /dev/sda

image-20240511172256656

# 重新启动计算机

输入 exit 或按 Ctrl+d 退出 chroot 环境。

image-20240511161008746

可选用 umount -R /mnt 手动卸载被挂载的分区:这有助于发现任何 “繁忙” 的分区,并通过 fuser 查找原因。

image-20240511161034970

最后,通过执行 reboot 重启系统,systemd 将自动卸载仍然挂载的任何分区。这时候不要忘记移除安装介质,然后使用 root 账户登录到新系统。

image-20240511173157498

齐活

# 网络配置

安装完成系统后发现网络不通

image-20240513104207210

检查发现没有分到 ip

image-20240513104310837

翻了翻文档,发现这这个 ens33 网卡没有启动起来

ip link set ens33 up|down

image-20240513115122845

这里网卡就启动起来了,但是因为我再前面系统安装时没有安装 dhcpd,这里使用内置的 systemd-networkd

image-20240513115331015

设置静态 ip

image-20240513115435772

然后重启 systemd-networkd

systemctl restart systemd-networkd

image-20240513115553474

然后设置网关

vim /etc/resolv.conf

image-20240513115653087

设置完成后重启 systemd-resolvd

systemctl restart systemd-resolved

然后就可以正常连接到网络了

image-20240513115801205

# 安装桌面环境

这里我选择安装 KDE - Arch Linux 中文维基 (archlinuxcn.org) 环境。

# 添加用户

因为 KDE 不允许直接以 root 身份登录,而且最小化安装的 arch 默认只有 root 用户,所以这里首先创建一个新的用户

这里选项 -m 为新创建的用户创建一个主目录

useradd -m Clown

然后使用 passwd 命令设置密码

passwd Clown

image-20240513135655173

然后修改 /etc/sudoers 文件,使用命令

visudo

image-20240513165313868

运行这个命令需要有 vi,这里也安装一下,在配置文件中加上下面这样一行

Clown ALL=(ALL:ALL) ALL

image-20240513165407591

# Plasma 桌面元软件包

pacman -S plasma-meta

image-20240513162351884

然后这里选择 2 个提供程序可用于 qt 6 - 多媒体,在 arch wiki 中我简单的翻了翻,最后决定使用 ffmpeg,因为它看起来更完整

FFmpeg - Arch Linux 中文维基 (archlinuxcn.org)

GStreamer - Arch Linux 中文维基 (archlinuxcn.org)

image-20240513162831006

这里选择电脑音频

image-20240513163204616

不支持?OK 投向 PipeWire

image-20240513163247776

这里字体选择,目前不知道那个好看先用默认的

image-20240513163528155

然后是 emoji-font 同上

image-20240513163644538

确认安装,漫长的等待后 Plasma 桌面安装就完成了。

# 安装 kde 软件包

这个完整版还是有很多没有用的东西,难绷

可以选择安装完整版的软件包

pacman -S kde-applications-meta

这里有 2 个可用于 phonon-qt5-backend 的提供程序

image-20240513170413272

image-20240513170533977

GStreamer 不在维护,所以我还是选择使用 vlc

image-20240513170643261

还是二选一,快速入门 - Qt for Python,我选第一个

image-20240513171223082

计划任务,这里使用默认的即可

image-20240513171643496

# 安装 Xorg

pacman -S xorg

image-20240513172958739

全部安装

image-20240513173032280

这个选择默认即可

image-20240513173205165

最后启动显示管理器和网络管理器服务。

systemctl enable sddm
systemctl enable NetworkManager

image-20240513173744278

最后重新启动

image-20240513173824469

齐活,后面就各种软件和美化了

# yakuake 安装

最小化安装发现没有终端,所以也是将这个放在了最前面 Ctrl+Alt+F3 切换到系统的全屏终端

Arch Linux - yakuake 24.04.90-1 (x86_64)

直接安装

pacman -S yakuake

image-20240513181004500

然后再 Ctrl+Alt+F2 切换到图形化页面

image-20240513181053343

ok,熟悉的感觉

# 简体中文本地化

参考文档:简体中文本地化 - Arch Linux 中文维基 (archlinuxcn.org)

# 基本中文支持

要正确的显示中文,必须设置正确的 locale 并安装合适的中文字体

# locale 设置

这里实际上在前面的安装过程中就已经设置好了,修改 /etc/locale.gen 文件

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

取消上面两个对应项前面的 # ,然后执行

locale-gen

执行该命令后便可以在系统中使用这些 locale,通过下面的命令来查看目前可以使用的 locale

locale -a

image-20240513184001312

# 配置中文 locale

# 配置全局 locale (可选)

首先设置一个英文的全局 locale。这并不是必须的,只是为了防止 TTY 中出现豆腐块(见下方注意):

$ cat /etc/locale.conf
LANG=en_US.UTF-8

LANG 这个环境变量代表默认的区域设置,具体的含义见 Locale#LANG:默认的区域设置

注意: 不推荐在 /etc/locale.conf 里把全局的 LANG locale 设置成中文 LANG=zh_CN.UTF-8 ,因为 TTY 下没有 CJK 字体,这样设置会导致 TTY 中显示豆腐块(除非你使用的内核打了 cjktty 补丁能绘制中文字体,比如 linux-lilyCNRepo)。

每个用户单独的 locale 可以在 ~/.bashrc~/.xinitrc~/.xprofile 中设置:

  • .bashrc :每次使用终端时会应用此处的设置。
  • .xinitrc :每次使用 startxSLiM 来启动 X 窗口系统时会应用此处的设置。
  • .xprofile :每次使用 GDM 等显示管理器时会应用此处的设置。

# 中文字体(本人弃用)

这里我选择的字体:Arch Linux - adobe-source-han-serif-cn-fonts 2.002-2 (any) 这是一个符合简体中文国标标准的字体

pacman -S adobe-source-han-serif-cn-fonts

image-20240513190733470

安装完成后再设置的文字和字体这里选择调整所有的字体

image-20240513191030118

这里因为我已经设置过了

image-20240513191101610

我的配置如上图所示

image-20240513191126751

然后在这里点击修改,找到简体中文,然后重启。

# archlinuxcn 源

这个字体在终端上好奇怪,准备换一个 AUR (zh_CN) - ttf-misans (archlinux.org),这里需要使用到 yay 所以先装 archlinuxcn 源

archlinuxcn | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

随手将下面这里的注释取消

image-20240513200707212

在末尾加上

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

image-20240513200945165

之后通过以下命令安装 archlinuxcn-keyring 包导入 GPG key。

sudo pacman -Sy archlinuxcn-keyring

image-20240513201120794

遇到了使用方法中所说的报错,运行

pacman-key --lsign-key "farseerfc@archlinux.org"

image-20240513201410206

然后再重新安装

image-20240513201728844

然后再更新一下源

sudo pacman -Sy

image-20240513201802573

然后安装 yay

image-20240513201834106

最后使用 yay 来安装小米字体 AUR (zh_CN) - ttf-misans (archlinux.org)

yay -S ttf-misans

image-20240513202001153

# 美化 grub

主题链接:GRUB Themes - Gnome-look.org

我这里选择使用:Grub-theme-vimix - Gnome-look.org

git clone https://github.com/vinceliuice/grub2-themes.git

image-20240514180321024

下载完成后进入到下载的目录下

image-20240514180546970

运行这个 install.sh 文件即可安装

image-20240514180730085

主题这里我选第二个

image-20240514180821497

icon 类型也第二个

image-20240514180855233

分辨率我选择 1080

image-20240514180915722

image-20240514180933438

这样就算是完成了

image-20240514181035539

齐活

# 其他常用 grub 设置

一般对 gurb 的配置修改,不会对在 /boot/ 下的 .cfg 文件进行修改,因为那是自动生成,并会被 grub 直接使用的配置文件,修改错误风险较大。所以修改以下文件

sudo vim /etc/default/grub

# 更改倒计时时间(10 为十秒。-1 为不倒计时,也就是一直等待用户选择)

GRUB_TIMEOUT=10

# 记住上次的选择(可以记住上次选择的启动项)

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

# 应用

# dolphin

Arch Linux - dolphin 24.04.90-1 (x86_64)

sudo pacman -S dolphin

# firefox

Arch Linux - Package Search

sudo pacman -S firefox

image-20240513201622618

安装完成后直接使用即可

# konsole

Arch Linux - konsole 24.04.90-1 (x86_64)

sudo pacman -S konsole

image-20240514155607365

# google-chrome

还是使用 google 比较习惯,所以这里安装一下 google 浏览器:AUR (zh_CN) - google-chrome (archlinux.org)

yay -S  google-chrome

image-20240514173646385

# typora

和 (i_cn) - Typora (archlinux.org)

yay -S typora 

image-20240515163851310

在 typora1 以后开始变为收费的了,对于我个穷人来说肯定是不是很友好的另辟蹊径一下

# 破解

安装完成后 find 一下 license 文件

image-20240515163928683

修改 Typora 安装目录 \ resources\page-dist\static\js\LicenseIndex.xxxxxxxxx.xxxxxxx.chunk.js,激活主程序

查找: e.hasActivated="true"==e.hasActivated,
替换: e.hasActivated="true"=="true",

image-20240515164040596

修改 Typora 安装目录 \ resources\page-dist\license.html,关闭每次启动时的已激活弹窗

查找: </body></html>
替换: </body><script>window.onload=function(){setTimeout(()=>{window.close();},5);}</script></html>

image-20240515164129635

修改 Typora 安装目录 \ resources\locales\zh-Hans.lproj\Panel.json,去除左下角 “未激活” 提示(不完美方案,仅去除文字,但实际上不影响)

查找: "UNREGISTERED":"未激活"
替换: "UNREGISTERED":" "

image-20240515164307598

有钱还请支持正版,至于我 emmmmm 等我有钱了我再补票

# picgo

typora 都解决了,图床也是标配

AUR (zh_CN) - picgo (archlinux.org)

 yay -S picgo 

image-20240515183119351

# 主题

image-20240514205115742

打开设置中的颜色和主题,然后点击获取新全局主题。这个就根据个人喜好选择即可。修改完成后

image-20240515105149640

# 用户头像

image-20240514210536011

打开设置找到用户这里,然后点击这个头像来更改

# 输入法

# 安装

参考文档:Fcitx5 - Arch Linux 中文维基 (archlinuxcn.org)

首先安装 fcitx5 软件包:Arch Linux - Package Search

sudo pacman -S fcitx5 

image-20240515143911483

注意: fcitx5 包 仅提供基本框架,且仅支持英文。如果要输入其他语言(例如中文或日文),则需要安装输入法引擎(IME)。

所以这里还需要安装一个输入法引擎:Arch Linux - fcitx5-chinese-addons 5.1.5-1 (x86_64)

sudo pacman -S fcitx5-chinese-addons

image-20240515144115185

在 wiki 中提到为了更好的体验需要安装下面的模块

  • 对于 Qt 程序,安装 fcitx5-qt 包。
  • 对于 GTK 程序,安装 fcitx5-gtk 包。
  • 对于 Qt4 程序,安装 fcitx5-qt4-gitAUR。
  • 对于 Qt5 程序,安装 fcitx5-qt5-gitAUR。
  • 对于 Qt6 程序,安装 fcitx5-qt6-gitAUR。
  • 对于日期和时间支持,安装 fcitx5-lua 包。

** 提示:** 通常,只需安装 fcitx5-qt 包 和 fcitx5-gtk 包 就足够了。

这里也安装一下来防止输入法挂起、预览窗口位置错误或没有预览等问题。

Arch Linux - fcitx5-qt 5.1.6-1 (x86_64) Arch Linux - fcitx5-gtk 5.1.3-1 (x86_64)

sudo pacman -S fcitx5-qt fcitx5-gtk

image-20240515144625559

# 配置

编辑 /etc/environment 并添加以下几行,然后重新登录

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
INPUT_METHOD=fcitx
GLFW_IM_MODULE=ibus

image-20240515151120542

# 工具

# open-vm-tools(VMtools)

参考链接:VMware / 安装 Arch Linux 为虚拟机 - Arch Linux 中文维基 (archlinuxcn.org)

2007 年,VMware 将 VMware Tools 中的大部分代码以 LGPL 协议发布,这就是 Open-VM-Tools。官方的 VMware Tools 不再单独向 Arch Linux 提供。所以很显然需要一个替代品

Arch Linux - open-vm-tools 6:12.4.0-2 (x86_64)

sudo pacman -S open-vm-tools

启动服务设置为开机自启动

#启动服务 
systemctl start vmtoolsd.service
systemctl start vmware-vmblock-fuse.service
#设置开机启动
systemctl enable vmtoolsd.service
systemctl enable vmware-vmblock-fuse.service

image-20240514131603710

# 同步时间

使用下面的命令使得虚拟机和宿主机时间上同步

vmware-toolbox-cmd timesync enable

image-20240514132109871

# 窗口分辨率自动适配

在其他虚拟机上安装好 vmtools 后会自动调整分辨率和窗口大小,当然 open-vm-tools 也是支持这样操作的

出于某些原因,分辨率自动适配的功能依赖于 gtkmm 包 和 gtk2 包 软件包,所以需确保客户机上已安装这两个包。如果客户机没有安装 X windows 或使用的桌面环境不依赖于 GTK(例如 KDE),那么你需要手动安装这两个包。

pacman -S gtkmm gtk2

image-20240514132937167

# 拖拽与复制粘贴

** 提示:** 这些功能与 gtkmm3 有着未指明的依赖关系,并会导致这些功能静默失败。

为了确保拖拽与复制粘贴功能正常工作,需要安装 open-vm-tools 包 和 gtkmm3 包 这两个包。

使 vmware-userX11 之后运行:

  • 确保 /etc/xdg/autostart/vmware-user.desktop 存在,如果文件不存在,请运行:
# cp /etc/vmware-tools/vmware-user.desktop /etc/xdg/autostart/vmware-user.desktop

所以这里还需要安装 gtkmm3 这个包

sudo pacman -S gtkmm3

image-20240514133921703

检查文件,发现也存在

image-20240514134012191

重新启动就可以正常复制拖拽文件了

# ZSH

Zsh - Arch Linux 中文维基 (archlinuxcn.org)

Zsh 是一款功能强大的命令行解释器(shell) ,既可以作为交互式终端来使用,也可以作为脚本语言解释器来使用。它在兼容 POSIX 的 sh 的同时(默认不兼容,仅在使用 emulate sh 时兼容),还改进了 Tab 补全和通配符等功能。(还是用这个比较习惯)

# 安装

在开始安装之前,用户可能想要查看一下当前正在使用的 Shell 软件:

$ echo $SHELL

image-20240514134925974

如果想要更精确地补全命令,可以同时安装 zsh-completions

sudo pacman -S zsh

image-20240514134805530

sudo pacman -S zsh-completions

image-20240514135011631

# 初始配置

在终端里面输入以下命令,确保已经正确安装了 Zsh:

zsh

image-20240514151618721

运行后你应该会看到新用户向导(zsh-newuser-install),它可以协助你完成一些基础配置。如果要跳过这一步骤,可以按 q 退出。如果你没有看到新用户向导(zsh-newuser-install),可以手动运行以下命令:

autoload -Uz zsh-newuser-install
zsh-newuser-install -f

注意: 确保你的终端尺寸至少为 72×15 大小,否则 * 新用户向导(zsh-newuser-install)* 将无法运行。

输入 q 会直接退出配置引导,下一次运行 zsh 时会再次进入配置引导。

输入 0 ,也会退出配置引导,但是会在当前用户目录生成一个空白的文件 .zshrc ,下一次运行时就不会再进入配置引导。下一次运行时是否再进入配置引导,取决于用户目录下是否存在.zshrc 文件。

输入输入 1 后,就开始进行配置,如下

image-20240514151752544

zsh 的配置是有 一键套餐包 的:AUR (zh_CN) - oh-my-zsh-git (archlinux.org),有简单的方案,当然还是用这个啦

yay -S  oh-my-zsh-git

image-20240514152351324

然后将 zsh 修改为默认的 shell

chsh -s /bin/zsh

image-20240514153454920

cp /usr/share/oh-my-zsh/zshrc ~/.zshrc

将默认配置移动到配置文件

image-20240514154010651

然后修改 ~/.zshrc 文件,找到里面的 ZSH_THEME 这行,指定主题。这里我使用 agnoster 主题

image-20240514154050017

在 zsh 中默认有 git 插件

image-20240514154221987

image-20240514154358988

archlinux 还有几个有意思的插件也加上

sudo pacman -S zsh-syntax-highlighting zsh-autosuggestions

image-20240514172738376

然后创建这两个插件的符号链接到 oh-my-zsh 的自定义插件目录。

sudo ln -s /usr/share/zsh/plugins/zsh-syntax-highlighting /usr/share/oh-my-zsh/custom/plugins/
sudo ln -s /usr/share/zsh/plugins/zsh-autosuggestions /usr/share/oh-my-zsh/custom/plugins/

image-20240514172831259

最后将这两个插件加到配置文件中

image-20240514173001423

最后将 konsole 的默认启动终端设置为 zsh

image-20240514173313159

# python2

存在 python3 但是默认不存在 python2,这里下载 python2

image-20240514181755567

地址:AUR (zh_CN) - python2 (archlinux.org)

yay -S python2

image-20240514185332808

# go

Arch Linux - go 2:1.22.3-1 (x86_64)

安装一个 go 语言环境

sudo pacman -S go

# java

java 的版本就比较多了

Arch Linux - jdk8-openjdk 8.412.u08-1 (x86_64)

Arch Linux - jdk11-openjdk 11.0.23.u9-1 (x86_64)

Arch Linux - jdk17-openjdk 17.0.11.u9-1 (x86_64)

Arch Linux - jdk21-openjdk 21.0.3.u9-1 (x86_64)

sudo pacman -S jdk8-openjdk
sudo pacman -S jdk11-openjdk
sudo pacman -S jdk17-openjdk
sudo pacman -S jdk21-openjdk

image-20240514203912322

在后面的版本安装完成时有一个提示 archlinux-java help 执行这个命令发现可以方便的切换 jdk 版本。

archlinux-java <COMMAND>

COMMAND:
        status          List installed Java environments and enabled one
        get             Return the short name of the Java environment set as default
        set <JAVA_ENV>  Force <JAVA_ENV> as default
        unset           Unset current default Java environment
        fix             Fix an invalid/broken default Java environment configuration

image-20240514204011687

可以看到当前的 jdk 版本默认是 8

sudo archlinux-java set java-11-openjdk

image-20240514204356844

# nmap

Nmap(Network Mapper)是一款开源网络扫描工具,主要用于网络发现和安全审计。它由 Gordon Lyon(也称为 Fyodor)开发并维护。Nmap 使用原始 IP 数据包来确定网络上可用的主机、这些主机上提供的服务(应用程序名称和版本信息)、操作系统(和 OS 版本)以及防火墙的使用情况等信息。

Arch Linux - nmap 7.95-1 (x86_64)

sudo pacman -S nmap

image-20240515154832155

# fscan

Fscan 是一款开源的网络扫描工具,旨在提供快速且全面的网络信息收集。它主要用于安全审计和渗透测试,帮助用户发现网络中的活跃主机、开放端口、运行服务及其潜在漏洞。Fscan 是由中国的安全研究人员开发和维护的,常用于各种安全评估场景。与 Nmap 类似,Fscan 提供了一系列强大的功能,但通常以更高的扫描速度和效率为特色,适用于大规模网络扫描任务。

AUR (zh_CN) - fscan (archlinux.org)

yay -S fscan 

image-20240515184526463

# foremost

Foremost 是一款开源的文件恢复工具,最初由美国空军研究实验室开发。它主要用于从磁盘镜像中恢复已删除的文件。Foremost 使用基于文件头、文件脚和数据结构的签名进行恢复,这使得它在处理各种文件类型时非常高效。

Arch Linux - foremost 1.5.7-6 (x86_64)

sudo pacman -S foremost

image-20240515155459783

# binwalk

Binwalk 是一款开源的固件分析工具,主要用于提取和分析二进制文件,特别适用于嵌入式固件的逆向工程。Binwalk 可以识别和提取固件中的文件系统、压缩文件、图像和其他数据类型。

Arch Linux - binwalk 2.3.4-4 (any)

sudo pacman -S binwalk 

image-20240515194636756

# sqlmap

SQLMap 是一款开源的自动化 SQL 注入和数据库接管工具。它能够识别和利用 SQL 注入漏洞,并提供数据库指纹识别、数据提取、访问底层文件系统以及执行命令等功能。SQLMap 是网络安全和渗透测试领域的重要工具,广泛用于安全测试和漏洞评估。

Arch Linux - sqlmap 1.8-2 (any)

sudo pacman -S sqlmap 

image-20240515183828824

# whatweb

WhatWeb 是一款开源的网页扫描工具,主要用于识别和分析网站的技术栈。通过检测网站使用的 Web 技术、内容管理系统(CMS)、插件、服务器信息、编程语言等,WhatWeb 帮助用户进行网站信息收集和漏洞评估。

AUR (zh_CN) - whatweb (archlinux.org)

yay -S whatweb 

image-20240515184030733

这个小东西要的依赖还挺多

# dirb

Dirb 是一款开源的目录扫描工具,主要用于在 Web 服务器上查找隐藏的目录和文件。它通过在给定的 URL 上进行字典攻击,尝试发现服务器上存在但未公开的目录和文件,从而帮助渗透测试人员发现潜在的漏洞和攻击面。

AUR (zh_CN) - dirb (archlinux.org)

yay -S dirb

image-20240515184206730

# dirsearch

dirb 都安排了,dirsearch 必然也少不了

AUR (zh_CN) - dirsearch (archlinux.org)

yay -S dirsearch 

image-20240515184337459

# metasploit

神器无需多言必须得有:Arch Linux - metasploit 6.4.7-1 (x86_64)

sudo pacman -S metasploit 

忘记截图了,但是在 arch 里这种小玩意装上就能用

image-20240515185553590

# wireshark

Wireshark 是一款开源的网络协议分析工具,用于捕获和分析网络数据包。它支持多种网络协议,能够深入解析数据包内容,并提供详细的统计信息和可视化工具,帮助用户理解和调试网络通信。

Arch Linux - wireshark-qt 4.2.4-2 (x86_64)

sudo pacman -S wireshark-qt

image-20240515193911518

# hydra

Hydra 是一款开源的密码破解工具,用于对各种网络服务进行暴力破解攻击。它支持多种协议和服务,包括 SSH、FTP、HTTP、SMTP 等,能够通过暴力尝试多个用户名和密码组合,以获得对目标系统的未授权访问

Arch Linux - hydra 9.5-2 (x86_64)

sudo pacman -S hydra 

image-20240515194345030

# john

John the Ripper(简称为 John)是一款用于密码破解的开源软件。它支持多种加密算法和哈希函数,包括 UNIX 密码、Windows LM 和 NTLM 密码、MD5、SHA-1 等。John 提供了多种攻击模式,包括暴力破解、字典攻击、混合攻击等,以帮助用户尝试恢复丢失的密码或破解哈希值。John 以其高效、灵活和可定制性而闻名,被广泛应用于渗透测试、数字取证和密码破解等领域。

Arch Linux - john 1.9.0.jumbo1-11 (x86_64)

sudo pacman -S john 

image-20240515195733361

# volatility3

Volatility 是一款用于数字取证和内存分析的开源工具。最初,Volatility 是基于 Python 2.x 开发的,称为 Volatility 2.x。后来,Volatility 团队开发了 Volatility 3.x,它是基于 Python 3.x 的新版本,提供了一些新功能和改进。Volatility 3.x 主要用于分析各种操作系统的内存镜像,包括 Windows、Linux 和 macOS。它可以帮助研究人员分析内存中的进程、网络连接、注册表、文件系统等信息,以发现恶意软件活动、取证证据或进行安全事件响应。

Arch Linux - volatility3 2.5.2-2 (any)

sudo pacman -S volatility3 

image-20240515200919305

忘记截图了,补一张

# pwndbg

Pwndbg 是一款用于 GDB(GNU 调试器)的插件,旨在增强调试体验,特别是针对漏洞研究和二进制漏洞利用的场景。Pwndbg 提供了许多有用的调试辅助功能和命令,使得调试过程更加高效和直观。

Arch Linux - pwndbg 2024.02.14-3 (any)

sudo pacman -S pwndbg

image-20240515201311801

# pwntools

Pwntools 是一款用于编写漏洞利用脚本的开源 Python 库。它专为二进制漏洞利用设计,提供了许多简化漏洞利用过程的工具和函数。Pwntools 可以帮助安全研究人员和渗透测试人员快速编写和测试漏洞利用代码。

Arch Linux - python-pwntools 4.12.0-2 (any)

sudo pacman -S python-pwntools

image-20240515201506957

# docker

Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它通过将应用程序及其依赖项打包在一个名为容器的标准化单元中,确保在不同的计算环境中一致地运行。

Arch Linux - docker 1:26.1.2-1 (x86_64)

sudo pacman -S docker 

image-20240515202436676

# docker-compose

Docker Compose 是 Docker 的一个工具,旨在定义和管理多容器 Docker 应用程序。通过使用 YAML 文件,Docker Compose 允许用户用简单的配置文件描述应用程序的服务、网络和卷,并使用单个命令启动和管理这些服务。

Arch Linux - docker-compose 2.27.0-1 (x86_64)

sudo pacman -S docker-compose

image-20240515202547283

# wine

Wine(Wine Is Not an Emulator)是一款开源软件,可以在 Unix 系统(如 Linux 和 macOS)上运行 Windows 应用程序。Wine 并不是一个模拟器,而是通过翻译 Windows API 调用成兼容的 Unix 系统调用,使得 Windows 应用程序能够在非 Windows 系统上运行。

Arch Linux - wine 9.8-2 (x86_64)

sudo pacman -S wine

image-20240515210032498

# 最后

目前就这样,其他的就是我复制进去的一些东西