ゲーム開発部 (⸝⸝ >ヮ<) !

个人笔记页面

#Linux

重启蓝牙与音频服务(修复蓝牙服务问题)

sudo systemctl restart bluetooth.service ; systemctl --user restart pipewire pipewire-pulse wireplumber

设置 ttyUSB 权限(修复 Arduino 无法访问串口模块)

sudo chmod a+rw /dev/ttyUSB0

将 Python 运行目录设置为当前目录(修复 mkdocs 找不到文件)

export PYTHONPATH=$PYTHONPATH:.

使用 rsync 复制文件保留权限和时间戳(代替cp -a)

rsync -avH /path/to/source /path/to/dest

安装 Grub

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

输出最常用的 10 条命令

history | awk ' {print $2}' | sort | uniq -c | sort -nr | head -50

使用 reflector 生成国区镜像列表

sudo reflector --sort rate --threads 100 -c China --save /etc/pacman.d/mirrorlist

获取占用储存空间最大的软件包

# 方法一
pacman -Qi | awk '/^Name/{name=$3} /^Installed Size/{print $4$5, name}' | sort -hr | head -25
# 方法二
expac -H M '%m %n' | sort -h | tail -n 20 | tac

删除所有不被依赖的软件包

# 方法一
paru -Rsns $(paru -Qdtq)
# 方法二(分批)
paru -Qdtq | paru -R -

查找某个文件属于哪个软件包

pkgfile glib.h

压缩解压打包解包

tar -cvf dest.tar source0 source1
tar -xvf source.tar -C dest

tar -zcvf dest.tar.gz dir1 file1
tar -zxvf source.tar.gz -C dest

tar -Jcvf dest.tar.xz dir1 file1
tar -Jxvf source.tar.xz -C dest

zip -r dest.zip dir1
unzip source.zip

7z a dest.7z dir1 file1
7z x source.7z -o dest

gzip -k source
gzip -dc source.gz > /path/to/dest

xz -k source
xz -dc source.xz > /path/to/dest

Arch 初始配置

pacstrap /mnt base linux linux-firmware networkmanager neovim sudo zsh
genfstab -U /mnt > /mnt/etc/fstab
arch-chroot /mnt

echo zyf_arch_vm > /etc/hostname
echo 127.0.0.1 localhost > /etc/hosts
echo ::1 localhost >> /etc/hosts
echo 127.0.0.1 zyf_arch_vm.localdomain zyf_arch_vm >> /etc/hosts

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

vim /etc/locale.gen # 取消注释 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8
locale-gen
echo 'LANG=en_US.UTF-8'  > /etc/locale.conf

useradd -m -G wheel -s /bin/bash zyf
passwd zyf
# 取消注释 /etc/sudoers 中的 %wheel ALL=(ALL) ALL

pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ARCH
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -R /mnt
reboot

常用环境变量

# 1. 国际化与输入法
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export LC_ALL='en_US.UTF-8'

# 2. 环境变量
export PATH="$HOME/.local/bin:$HOME/bin:$HOME/.cargo/bin:$HOME/.dotnet/tools:$PATH"
export CARGO_HOME="$HOME/.cargo"
export PNPM_HOME="$HOME/.local/share/pnpm"
export EDITOR='lvim'

# 3. 代理配置

export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890


# 4. Rust镜像
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup

# 5. Conda初始化
__conda_setup="$('/home/zyf/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
  eval "$__conda_setup"
else
  [ -f "/home/zyf/miniconda3/etc/profile.d/conda.sh" ] && . "/home/zyf/miniconda3/etc/profile.d/conda.sh"
fi
unset __conda_setup

# 6. SSH密钥
if [ -z "$SSH_AUTH_SOCK" ]; then
  eval "$(ssh-agent -s)" > /dev/null
fi
ssh-add ~/.ssh/id_ed25519 > /dev/null 2>&1  # 静默加载

# 7. 3.jetbra.in
___MY_VMOPTIONS_SHELL_FILE="${HOME}/.jetbrains.vmoptions.sh"; [ -f "$___MY_VMOPTIONS_SHELL_FILE" ] && . "$___MY_VMOPTIONS_SHELL_FILE"