Ubuntu
配置命令行终端
将所有中文系统目录都改成英文,xdg-user-dirs-gtk-update 会连同文件一起重命名:
export LANG=en_US
xdg-user-dirs-gtk-update # 需要在桌面环境执行以弹出对话框
安装 Zsh,使用 Oh My Zsh 对 zsh 进行快速配置:
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chsh -s $(which zsh) # 设置默认 Shell 为 Zsh
安装一些常用插件:
git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
插件 z 是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率。
将上述插件加入 zsh 插件列表中:
plugins=(git z zsh-autosuggestions zsh-syntax-highlighting)
安装 powerlevel10k 主题:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# 如果网络条件不好,使用 gitee.com
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
一般还需要参考 Readme.md 字体 进行字体设置, 这个主题推荐设置 Nerd Fonts 作为终端字体,可以在 Readme 找到字体下载连接。
然后在 ~/.zshrc 设置 ZSH_THEME="powerlevel10k/powerlevel10k"。重启 zsh 之后按照提示进行配置。
使用 Windows Terminal 的时候,推荐使用 Tango Dark 主题。透明度
启用亚克力材料,将 背景不透明度 设置为 80%。使用 Visual Studio Code 的时候,在
terminal.integrated.fontFamily添加MesloLGS NF。
同步之前 bash 的环境变量:
if [ -f /etc/profile ]; then
source /etc/profile
fi
取消每个会话共享历史命令:
# setopt share_history
setopt no_share_history
目前发现在 Ubuntu 24.04 的 GNOME 终端显示 Nerd Fonts 图标会遇到图形字体的高度不一致的情况,这里推荐使用 Tabby 终端,并设置其为默认终端:
gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/tabby
# 目前没有发现有什么必要
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "-x"
如果想要还原,则:
gsettings reset org.gnome.desktop.default-applications.terminal exec
gsettings reset org.gnome.desktop.default-applications.terminal exec-arg
常用软件
Docker,不推荐安装 Linux 版的 Docker Desktop。反正我安装失败了,后面觉得安装了也没啥用,反正 Ubuntu 下都是敲命令行的。
Typora:用于编写 Markdown 文档及笔记。
VLC:视频播放器,在 Ubuntu 应用商店下载即可。
Remmina:RDP远程工具,在 Ubuntu 应用商店下载即可。实际 Remmina 集成了非常多的远程控制协议。
卸载
Ubuntu 如何卸载 libmpg123 相关的包,之前使用apt安装的。
# 确认已安装的相关包名称
dpkg -l | grep mpg123
# 彻底卸载(删除配置文件)
sudo apt purge libmpg123-0t64 libmpg123-dev
# 清理残留的无用依赖
sudo apt autoremove
添加应用程序图标
[Desktop Entry]
Name=v2rayN
Comment=V2Ray GUI Client
Exec=/opt/v2rayN-linux-64-7.22.6/v2rayN
Icon=/opt/v2rayN-linux-64-7.22.6/v2rayN.png
Terminal=true
Type=Application
Categories=Network;Utility;
OpenSSH Server
安装:
sudo apt install openssh-server
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑 SSH 配置
sudo nano /etc/ssh/sshd_config
修改以下关键参数:
Port 1022 # 确保端口号(可自定义)
PasswordAuthentication yes # 允许密码登录
PermitRootLogin yes # 允许 root 登录
PubkeyAuthentication yes
中文设置
在 Desktop 版本下,在安装系统的时候我们就可以选择系统语言为中文,但是在不带GUI的情况下,需要手动命令行安装一些字体,以及配置一些文件,这里我们做记录。
安装中文字体:
sudo apt install language-pack-zh-hans fonts-wqy-microhei
修改IP地址
Ubuntu 22.04使用Netplan管理网络,需修改其YAML配置文件:
network:
version: 2
ethernets:
eth0:
dhcp4: no
dhcp-identifier: mac
addresses: [192.168.110.8/24]
routes:
- to: default
via: 192.168.110.1
nameservers:
addresses: [223.5.5.5, 223.6.6.6]
ADB Devices支持
- 创建udev规则
# 设备1:Google手机
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee2", MODE="0666", GROUP="plugdev"
# 设备2:Samsung手机
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", GROUP="plugdev"
# 设备3:OnePlus手机
SUBSYSTEM=="usb", ATTRS{idVendor}=="2a70", MODE="0666", GROUP="plugdev"
-
更新
adb_usb.ini文件在
~/.android/adb_usb.ini中添加所有厂商ID:
0x18d1
0x04e8
0x2a70
# 更多厂商ID...
VirtIOFS共享宿主机文件
VirtIOFS 比 9P VirtIO 性能更高。
主机如下设置:

通过确认如下命令是否有输出确认 virtiofs 模块是否被加载:
lsmod | grep virtiofs
挂载前挂载点目录必须存在:
mkdir -p /home/amass/Projects
mkdir -p /home/amass/Softwares # 挂载 isos 共享文件夹
编辑 /etc/fstab 文件,让虚拟机开机自动挂载:
Projects /home/amass/Projects virtiofs defaults,nofail,_netdev 0 0
Softwares /home/amass/Softwares virtiofs defaults,nofail,_netdev 0 0
千万不要直接重启! 请务必在终端运行以下命令进行测试:
sudo systemctl daemon-reload
cd / # Ubuntu 20.04 的 mount 会把标签按当前目录解析成路径,在 ~ 下执行会报 tag not found
sudo mount -a
9P共享宿主机文件(Ubuntu 16.04)
Ubuntu 16.04 内核为 4.4(HWE 为 4.15),而 virtiofs 从 Linux 5.4 才进入主线,只能退回 9P(virtio-9p)。以下宿主机为 unRaid 7.3.2。
unRaid 虚拟机模板中设置:
Unraid 共享模式选9p 模式。Unraid 源路径填宿主机目录,如/mnt/cache/Projects/,直接指向磁盘池可绕过/mnt/user的 shfs(FUSE)层。Unraid 挂载标签填Projects,即虚拟机内挂载时使用的设备名。
虚拟机内手动挂载测试:
mkdir -p /home/amass/Projects
sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=131072,cache=mmap Projects /home/amass/Projects
编辑 /etc/fstab 实现开机自动挂载:
Projects /home/amass/Projects 9p trans=virtio,version=9p2000.L,msize=131072,cache=mmap,nofail 0 0
4.4 内核不会自动加载 9pnet_virtio,开机挂载时 dmesg 会报 9pnet: Could not find request transport: virtio,需将模块打进 initramfs:
printf '9p\n9pnet\n9pnet_virtio\n' | sudo tee -a /etc/initramfs-tools/modules
sudo update-initramfs -u
同样先执行 sudo mount -a 测试,确认 mount | grep 9p 有输出后再重启。
挂载参数要点:
version=9p2000.L:显式启用 Linux 语义(权限、符号链接、xattr)。msize:单次传输上限。4.4 内核缺省仅 8 KiB,吞吐极低;调大可提速,但旧内核按msize申请连续内存,内存碎片化后可能报Cannot allocate memory,此时应调小。cache=mmap:不设缓存时只支持只读mmap,SQLite、部分链接器等需要可写共享映射的程序会失败。
适用边界:
- unRaid 的 9p 使用
passthrough模式,虚拟机写入文件的 uid/gid 会原样落到宿主机(如1000:1000),而 unRaid 共享默认属主为nobody:users(99:100),通过 SMB 或容器访问时可能遇到权限问题,需要在宿主机上chown。 - 9P 性能远低于 virtiofs,大量小文件场景(
git status、node_modules)尤其明显;条件允许时应升级到 20.04+ 改用 virtiofs。
QEMU Guest Agent
让底层的宿主机(比如 Unraid 或 Proxmox)能够与这个 Ubuntu 虚拟机进行通信:
# 更新软件源
sudo apt update
# 安装 qemu-guest-agent
sudo apt install qemu-guest-agent -y
# 启动并设置开机自启
sudo systemctl enable --now qemu-guest-agent
# 检查运行状态
sudo systemctl status qemu-guest-agent