# 前言
一直使用 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 一下
直接第一个,然后就进到 live 环境
乐,开始我还以为结束了,没想到是刚刚开始。因为我上面选择的是 BIOS 启动,所以这里也不用去判断了。
# 链接到网络
要在 Live 环境中配置网络连接,请遵循以下步骤:
确保系统已经列出并启用了网络接口,用 ip-link(8) 检查:
ip link
对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被 rfkill 禁用。
要连接到网络:
- 有线以太网 —— 连接网线。
- WiFi—— 使用 iwctl 认证无线网络。
- 移动宽带调制解调器(移动网卡) - 使用 mmcli 连接到移动网络。
配置网络连接:
- DHCP:对于有线以太网、无线局域网(WLAN)和无线广域网(WWAN)网络接口来说,动态 IP 地址和 DNS 服务器分配(由 systemd-networkd 和 systemd-resolved 提供功能)能够开箱即用。
- 静态 IP 地址:按照网络配置 #静态 IP 地址进行操作。
用 ping 检查网络连接:
ping www.baidu.com
网络连接是正常的。
# 更新系统时间
在 Live 环境中 systemd-timesyncd
默认启用,也就是说当系统已经创建互联网连接后,系统时间将自动同步。使用下面的命令来确保系统时间是准确的
timedatectl |
# 创建磁盘分区
系统如果识别到计算机的内置硬盘、U 盘或者移动硬盘等类型磁盘,就会将其分配为一个块设备,如 /dev/sda
、 /dev/nvme0n1
或 /dev/mmcblk0
。可以使用 lsblk 或者 fdisk 查看:
fdisk -l |
结果中以 rom
、 loop
或者 airootfs
结尾的设备可以被忽略。结果中以 rpbm
、 boot0
或者 boot1
结尾的 mmcblk*
设备也可以被忽略。
注意: 如果您想要的磁盘没有显示出来,请确保您的磁盘控制器未处于 RAID 模式。
这里有一个名为 sda 的磁盘,大小为 300GB,以及一个名为 loop0 的 loop 设备,大小为 788MB。sda 代表虚拟机的‘物理磁盘’我在前面,而 loop 设备通常用于挂载文件系统镜像或其他虚拟设备。
对于一个选定的设备,以下分区是必须要有的:
- 一个根分区(挂载在
根目录
)/
; - 要在
UEFI
模式中启动,还需要一个EFI
系统分区。
请使用分区工具(fdisk 、parted、cfdisk 等等)修改分区表。例如:
# fdisk /dev/(要被分区的磁盘) | |
fdisk /dev/sda |
arch 的中文文档中给到了一些分区方案 分区 - Arch Linux 中文维基 (archlinuxcn.org)。我选择的分配方案如下表所示:
分配表
挂载点 | Partition | Size |
---|---|---|
/boot/efi | /dev/sda1 | 300 MiB |
/ | /dev/sda2 | 100G |
[SWAP] | /dev/sda3 | 8G |
/home | /dev/sda4 | 192G |
接下来开始分区
这里创建了一个大小 300MiB 的分区挂载 efi
设置一个 8G 的分区作为 SWAP
设置一个 100G 的分区挂载 /
将剩余空间设置一个分区用于挂载 /home
这里就分区完成了
# 格式化分区
格式化分区这里我选择 Btrfs
BTRFS 是一种现代的写时复制(COW)Linux 文件系统,致力于实现一些高级功能,同时着重于容错性、修复性以及易于管理性。
这里首先将 efi 分区格式化
mkfs.fat -F 32 /dev/sda1 |
使用 mkswap 激活交换分区
最后将 sda3 和 sda4 都格式化伪 btrfs 的文件系统
mkfs.btrfs /dev/sda3 | |
mkfs.btrfs /dev/sda4 |
# 挂载 & 启动分区
分区完成,格式完成后就到了安装前的最后一个步骤将我们划分的分区挂载
将根磁盘卷挂载到 /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 |
最后将交换分区启动(如果没有设置的话这里就不用管)
swapon /dev/sda2 |
# 安装系统
# 选择镜像站
系统的文件
/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
# 配置系统
# 生成 fstab 文件
安装完成后就可以配置系统了,通过以下命令生成 fstab 文件 (用 -U
或 -L
选项设置 UUID 或卷标):
genfstab -U /mnt >> /mnt/etc/fstab |
这里执行完成后去查看一下对应的文件是否写入成功
# chroot 到新安装的系统
chroot
是一个非常有用的命令,它允许你在一个新的根文件系统环境中执行命令。在 Linux 中,根文件系统是文件系统的顶层,包含操作系统的核心文件和目录。通过使用 chroot
命令,你可以将当前进程的根文件系统更改为另一个位置,就好像它是原始根文件系统一样。
在 Arch Linux 安装过程中,通常在完成 pacstrap
安装基本系统之后,你需要使用 chroot
进入新安装的系统以进行后续配置,比如安装引导程序、配置网络、创建用户等。
arch-chroot /mnt |
** 提示:** 此处使用的是
arch-chroot
而不是直接使用chroot
,注意不要输错了。如果运行 arch-chroot 的时候报错说明系统的安装步骤没有做好,需要重新操作硬盘安装
# 设置时区
通过下面的方式设置时区
# ln -sf /usr/share/zoneinfo/Region(地区名)/City(城市名) /etc/localtime |
** 提示:** 例如,在中国大陆需要将时区设置为上海这个城市,那么请运行
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
。
所以我这里使用的就是上海
然后运行 hwclock 以生成 /etc/adjtime:
hwclock --systohc |
这个命令会将我们的时间写入到硬件时钟中。硬件时钟通常用于在系统关机或重启时保持时间的持久性,以便在系统重新启动时可以恢复到正确的时间
# 区域和本地化设置
程序和库如果需要本地化文本,都依赖区域设置。在区域设置中明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。需要设置这两个文件: locale.gen
与 locale.conf
。编辑 /etc/locale.gen
,然后取消掉 en_US.UTF-8 UTF-8
和其他需要的 UTF-8 区域设置前的注释(#)。接着执行 locale-gen
以生成 locale 信息:
这里想要修改发现没有 vim,所以我又退出去安装了一个
pacstrap -K /mnt vim |
再重新进文件系统
这里将 en_US.UTF-8 UTF-8
和 zh_CN.UTF-8 UTF-8
前面的注释去掉,接着执行 locale-gen
以生成 locale 信息:
locale-gen |
只有运行该命令后,locale.gen 中取消注释的地区和语言选项才可以使用
# 网络配置
创建 hostname 文件
vim /etc/hostname | |
(主机名) |
# 设置 root 密码
用以下命令设置 root 密码:
passwd |
# 安装引导程序
引导加载程序(Boot Loader,又称引导加载器、启动加载器或启动引导器)是由计算机固件(BIOS 或 UEFI)启动的软件。它负责用想要的内核参数加载内核,并根据配置文件初始化 RAM 磁盘。
修改 grup 的配置文件
vim /etc/default/grub |
grub-install --target=i386-pc /dev/sda |
# 重新启动计算机
输入 exit
或按 Ctrl+d
退出 chroot 环境。
可选用 umount -R /mnt
手动卸载被挂载的分区:这有助于发现任何 “繁忙” 的分区,并通过 fuser 查找原因。
最后,通过执行 reboot
重启系统,systemd 将自动卸载仍然挂载的任何分区。这时候不要忘记移除安装介质,然后使用 root 账户登录到新系统。
齐活
# 网络配置
安装完成系统后发现网络不通
检查发现没有分到 ip
翻了翻文档,发现这这个 ens33 网卡没有启动起来
ip link set ens33 up|down |
这里网卡就启动起来了,但是因为我再前面系统安装时没有安装 dhcpd,这里使用内置的 systemd-networkd
设置静态 ip
然后重启 systemd-networkd
systemctl restart systemd-networkd |
然后设置网关
vim /etc/resolv.conf |
设置完成后重启 systemd-resolvd
systemctl restart systemd-resolved |
然后就可以正常连接到网络了
# 安装桌面环境
这里我选择安装 KDE - Arch Linux 中文维基 (archlinuxcn.org) 环境。
# 添加用户
因为 KDE 不允许直接以 root 身份登录,而且最小化安装的 arch 默认只有 root 用户,所以这里首先创建一个新的用户
这里选项 -m
为新创建的用户创建一个主目录
useradd -m Clown |
然后使用 passwd 命令设置密码
passwd Clown |
然后修改 /etc/sudoers 文件,使用命令
visudo |
运行这个命令需要有 vi,这里也安装一下,在配置文件中加上下面这样一行
Clown ALL=(ALL:ALL) ALL
# Plasma 桌面元软件包
pacman -S plasma-meta |
然后这里选择 2 个提供程序可用于 qt 6 - 多媒体,在 arch wiki 中我简单的翻了翻,最后决定使用 ffmpeg,因为它看起来更完整
FFmpeg - Arch Linux 中文维基 (archlinuxcn.org)
GStreamer - Arch Linux 中文维基 (archlinuxcn.org)
这里选择电脑音频
不支持?OK 投向 PipeWire
这里字体选择,目前不知道那个好看先用默认的
然后是 emoji-font 同上
确认安装,漫长的等待后 Plasma 桌面安装就完成了。
# 安装 kde 软件包
这个完整版还是有很多没有用的东西,难绷
可以选择安装完整版的软件包
pacman -S kde-applications-meta
这里有 2 个可用于 phonon-qt5-backend 的提供程序
GStreamer 不在维护,所以我还是选择使用 vlc
还是二选一,快速入门 - Qt for Python,我选第一个
计划任务,这里使用默认的即可
# 安装 Xorg
pacman -S xorg |
全部安装
这个选择默认即可
最后启动显示管理器和网络管理器服务。
systemctl enable sddm | |
systemctl enable NetworkManager |
最后重新启动
齐活,后面就各种软件和美化了
# yakuake 安装
最小化安装发现没有终端,所以也是将这个放在了最前面 Ctrl+Alt+F3
切换到系统的全屏终端
Arch Linux - yakuake 24.04.90-1 (x86_64)
直接安装
pacman -S yakuake |
然后再 Ctrl+Alt+F2
切换到图形化页面
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
# 配置中文 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
:每次使用 startx 或 SLiM 来启动 X 窗口系统时会应用此处的设置。.xprofile
:每次使用 GDM 等显示管理器时会应用此处的设置。
# 中文字体(本人弃用)
这里我选择的字体:Arch Linux - adobe-source-han-serif-cn-fonts 2.002-2 (any) 这是一个符合简体中文国标标准的字体
pacman -S adobe-source-han-serif-cn-fonts |
安装完成后再设置的文字和字体这里选择调整所有的字体
这里因为我已经设置过了
我的配置如上图所示
然后在这里点击修改,找到简体中文,然后重启。
# archlinuxcn 源
这个字体在终端上好奇怪,准备换一个 AUR (zh_CN) - ttf-misans (archlinux.org),这里需要使用到 yay 所以先装 archlinuxcn 源
archlinuxcn | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
随手将下面这里的注释取消
在末尾加上
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
之后通过以下命令安装 archlinuxcn-keyring
包导入 GPG key。
sudo pacman -Sy archlinuxcn-keyring |
遇到了使用方法中所说的报错,运行
pacman-key --lsign-key "farseerfc@archlinux.org" |
然后再重新安装
然后再更新一下源
sudo pacman -Sy |
然后安装 yay
最后使用 yay 来安装小米字体 AUR (zh_CN) - ttf-misans (archlinux.org)
yay -S ttf-misans |
# 美化 grub
主题链接:GRUB Themes - Gnome-look.org
我这里选择使用:Grub-theme-vimix - Gnome-look.org
git clone https://github.com/vinceliuice/grub2-themes.git
下载完成后进入到下载的目录下
运行这个 install.sh 文件即可安装
主题这里我选第二个
icon 类型也第二个
分辨率我选择 1080
这样就算是完成了
齐活
# 其他常用 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 |
安装完成后直接使用即可
# konsole
Arch Linux - konsole 24.04.90-1 (x86_64)
sudo pacman -S konsole |
# google-chrome
还是使用 google 比较习惯,所以这里安装一下 google 浏览器:AUR (zh_CN) - google-chrome (archlinux.org)
yay -S google-chrome |
# typora
和 (i_cn) - Typora (archlinux.org)
yay -S typora
在 typora1 以后开始变为收费的了,对于我个穷人来说肯定是不是很友好的另辟蹊径一下
# 破解
安装完成后 find 一下 license 文件
修改 Typora 安装目录 \ resources\page-dist\static\js\LicenseIndex.xxxxxxxxx.xxxxxxx.chunk.js,激活主程序
查找: e.hasActivated="true"==e.hasActivated,
替换: e.hasActivated="true"=="true",
修改 Typora 安装目录 \ resources\page-dist\license.html,关闭每次启动时的已激活弹窗
查找: </body></html>
替换: </body><script>window.onload=function(){setTimeout(()=>{window.close();},5);}</script></html>
修改 Typora 安装目录 \ resources\locales\zh-Hans.lproj\Panel.json,去除左下角 “未激活” 提示(不完美方案,仅去除文字,但实际上不影响)
查找: "UNREGISTERED":"未激活"
替换: "UNREGISTERED":" "
有钱还请支持正版,至于我 emmmmm 等我有钱了我再补票
# picgo
typora 都解决了,图床也是标配
AUR (zh_CN) - picgo (archlinux.org)
yay -S picgo
# 主题
打开设置中的颜色和主题,然后点击获取新全局主题。这个就根据个人喜好选择即可。修改完成后
# 用户头像
打开设置找到用户这里,然后点击这个头像来更改
# 输入法
# 安装
参考文档:Fcitx5 - Arch Linux 中文维基 (archlinuxcn.org)
首先安装 fcitx5 软件包:Arch Linux - Package Search
sudo pacman -S fcitx5
注意: fcitx5 包 仅提供基本框架,且仅支持英文。如果要输入其他语言(例如中文或日文),则需要安装输入法引擎(IME)。
所以这里还需要安装一个输入法引擎:Arch Linux - fcitx5-chinese-addons 5.1.5-1 (x86_64)
sudo pacman -S fcitx5-chinese-addons
在 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
# 配置
编辑 /etc/environment
并添加以下几行,然后重新登录
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
INPUT_METHOD=fcitx
GLFW_IM_MODULE=ibus
# 工具
# 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 |
# 同步时间
使用下面的命令使得虚拟机和宿主机时间上同步
vmware-toolbox-cmd timesync enable |
# 窗口分辨率自动适配
在其他虚拟机上安装好 vmtools 后会自动调整分辨率和窗口大小,当然 open-vm-tools 也是支持这样操作的
出于某些原因,分辨率自动适配的功能依赖于 gtkmm 包 和 gtk2 包 软件包,所以需确保客户机上已安装这两个包。如果客户机没有安装 X windows 或使用的桌面环境不依赖于 GTK(例如 KDE),那么你需要手动安装这两个包。
pacman -S gtkmm gtk2 |
# 拖拽与复制粘贴
** 提示:** 这些功能与 gtkmm3 有着未指明的依赖关系,并会导致这些功能静默失败。
为了确保拖拽与复制粘贴功能正常工作,需要安装 open-vm-tools 包 和 gtkmm3 包 这两个包。
使
vmware-user
在 X11 之后运行:
- 确保
/etc/xdg/autostart/vmware-user.desktop
存在,如果文件不存在,请运行:# cp /etc/vmware-tools/vmware-user.desktop /etc/xdg/autostart/vmware-user.desktop
所以这里还需要安装 gtkmm3 这个包
sudo pacman -S gtkmm3 |
检查文件,发现也存在
重新启动就可以正常复制拖拽文件了
# ZSH
Zsh - Arch Linux 中文维基 (archlinuxcn.org)
Zsh 是一款功能强大的命令行解释器(shell) ,既可以作为交互式终端来使用,也可以作为脚本语言解释器来使用。它在兼容 POSIX 的 sh 的同时(默认不兼容,仅在使用 emulate sh 时兼容),还改进了 Tab 补全和通配符等功能。(还是用这个比较习惯)
# 安装
在开始安装之前,用户可能想要查看一下当前正在使用的 Shell 软件:
$ echo $SHELL
如果想要更精确地补全命令,可以同时安装 zsh-completions
包
sudo pacman -S zsh |
sudo pacman -S zsh-completions |
# 初始配置
在终端里面输入以下命令,确保已经正确安装了 Zsh:
zsh |
运行后你应该会看到新用户向导(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
后,就开始进行配置,如下
zsh 的配置是有 一键套餐包
的:AUR (zh_CN) - oh-my-zsh-git (archlinux.org),有简单的方案,当然还是用这个啦
yay -S oh-my-zsh-git |
然后将 zsh 修改为默认的 shell
chsh -s /bin/zsh |
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc |
将默认配置移动到配置文件
然后修改 ~/.zshrc
文件,找到里面的 ZSH_THEME
这行,指定主题。这里我使用 agnoster 主题
在 zsh 中默认有 git 插件
archlinux 还有几个有意思的插件也加上
sudo pacman -S zsh-syntax-highlighting zsh-autosuggestions |
然后创建这两个插件的符号链接到 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/ |
最后将这两个插件加到配置文件中
最后将 konsole 的默认启动终端设置为 zsh
# python2
存在 python3 但是默认不存在 python2,这里下载 python2
地址:AUR (zh_CN) - python2 (archlinux.org)
yay -S python2
# 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
在后面的版本安装完成时有一个提示 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
可以看到当前的 jdk 版本默认是 8
sudo archlinux-java set java-11-openjdk
# nmap
Nmap(Network Mapper)是一款开源网络扫描工具,主要用于网络发现和安全审计。它由 Gordon Lyon(也称为 Fyodor)开发并维护。Nmap 使用原始 IP 数据包来确定网络上可用的主机、这些主机上提供的服务(应用程序名称和版本信息)、操作系统(和 OS 版本)以及防火墙的使用情况等信息。
Arch Linux - nmap 7.95-1 (x86_64)
sudo pacman -S nmap
# fscan
Fscan 是一款开源的网络扫描工具,旨在提供快速且全面的网络信息收集。它主要用于安全审计和渗透测试,帮助用户发现网络中的活跃主机、开放端口、运行服务及其潜在漏洞。Fscan 是由中国的安全研究人员开发和维护的,常用于各种安全评估场景。与 Nmap 类似,Fscan 提供了一系列强大的功能,但通常以更高的扫描速度和效率为特色,适用于大规模网络扫描任务。
AUR (zh_CN) - fscan (archlinux.org)
yay -S fscan
# foremost
Foremost 是一款开源的文件恢复工具,最初由美国空军研究实验室开发。它主要用于从磁盘镜像中恢复已删除的文件。Foremost 使用基于文件头、文件脚和数据结构的签名进行恢复,这使得它在处理各种文件类型时非常高效。
Arch Linux - foremost 1.5.7-6 (x86_64)
sudo pacman -S foremost
# binwalk
Binwalk 是一款开源的固件分析工具,主要用于提取和分析二进制文件,特别适用于嵌入式固件的逆向工程。Binwalk 可以识别和提取固件中的文件系统、压缩文件、图像和其他数据类型。
Arch Linux - binwalk 2.3.4-4 (any)
sudo pacman -S binwalk
# sqlmap
SQLMap 是一款开源的自动化 SQL 注入和数据库接管工具。它能够识别和利用 SQL 注入漏洞,并提供数据库指纹识别、数据提取、访问底层文件系统以及执行命令等功能。SQLMap 是网络安全和渗透测试领域的重要工具,广泛用于安全测试和漏洞评估。
Arch Linux - sqlmap 1.8-2 (any)
sudo pacman -S sqlmap
# whatweb
WhatWeb 是一款开源的网页扫描工具,主要用于识别和分析网站的技术栈。通过检测网站使用的 Web 技术、内容管理系统(CMS)、插件、服务器信息、编程语言等,WhatWeb 帮助用户进行网站信息收集和漏洞评估。
AUR (zh_CN) - whatweb (archlinux.org)
yay -S whatweb
这个小东西要的依赖还挺多
# dirb
Dirb 是一款开源的目录扫描工具,主要用于在 Web 服务器上查找隐藏的目录和文件。它通过在给定的 URL 上进行字典攻击,尝试发现服务器上存在但未公开的目录和文件,从而帮助渗透测试人员发现潜在的漏洞和攻击面。
AUR (zh_CN) - dirb (archlinux.org)
yay -S dirb
# dirsearch
dirb 都安排了,dirsearch 必然也少不了
AUR (zh_CN) - dirsearch (archlinux.org)
yay -S dirsearch
# metasploit
神器无需多言必须得有:Arch Linux - metasploit 6.4.7-1 (x86_64)
sudo pacman -S metasploit
忘记截图了,但是在 arch 里这种小玩意装上就能用
# wireshark
Wireshark 是一款开源的网络协议分析工具,用于捕获和分析网络数据包。它支持多种网络协议,能够深入解析数据包内容,并提供详细的统计信息和可视化工具,帮助用户理解和调试网络通信。
Arch Linux - wireshark-qt 4.2.4-2 (x86_64)
sudo pacman -S wireshark-qt
# hydra
Hydra 是一款开源的密码破解工具,用于对各种网络服务进行暴力破解攻击。它支持多种协议和服务,包括 SSH、FTP、HTTP、SMTP 等,能够通过暴力尝试多个用户名和密码组合,以获得对目标系统的未授权访问
Arch Linux - hydra 9.5-2 (x86_64)
sudo pacman -S hydra
# 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
# 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
忘记截图了,补一张
# pwndbg
Pwndbg 是一款用于 GDB(GNU 调试器)的插件,旨在增强调试体验,特别是针对漏洞研究和二进制漏洞利用的场景。Pwndbg 提供了许多有用的调试辅助功能和命令,使得调试过程更加高效和直观。
Arch Linux - pwndbg 2024.02.14-3 (any)
sudo pacman -S pwndbg
# pwntools
Pwntools 是一款用于编写漏洞利用脚本的开源 Python 库。它专为二进制漏洞利用设计,提供了许多简化漏洞利用过程的工具和函数。Pwntools 可以帮助安全研究人员和渗透测试人员快速编写和测试漏洞利用代码。
Arch Linux - python-pwntools 4.12.0-2 (any)
sudo pacman -S python-pwntools
# docker
Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它通过将应用程序及其依赖项打包在一个名为容器的标准化单元中,确保在不同的计算环境中一致地运行。
Arch Linux - docker 1:26.1.2-1 (x86_64)
sudo pacman -S docker
# docker-compose
Docker Compose 是 Docker 的一个工具,旨在定义和管理多容器 Docker 应用程序。通过使用 YAML 文件,Docker Compose 允许用户用简单的配置文件描述应用程序的服务、网络和卷,并使用单个命令启动和管理这些服务。
Arch Linux - docker-compose 2.27.0-1 (x86_64)
sudo pacman -S docker-compose
# 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
# 最后
目前就这样,其他的就是我复制进去的一些东西