跳到主要内容

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 插件列表中:

~/.zshrc
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 的环境变量:

/etc/zsh/zprofile
if [ -f /etc/profile ]; then
source /etc/profile
fi

取消每个会话共享历史命令:

~/.oh-my-zsh/lib/history.zsh
# 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 下都是敲命令行的。

QQ Linux版

Visual Studio Code

Qt

Typora:用于编写 Markdown 文档及笔记。

Beyond Compare

VLC:视频播放器,在 Ubuntu 应用商店下载即可。

Remmina:RDP远程工具,在 Ubuntu 应用商店下载即可。实际 Remmina 集成了非常多的远程控制协议。

卸载

Ubuntu 如何卸载 libmpg123 相关的包,之前使用apt安装的。

# 确认已安装的相关包名称
dpkg -l | grep mpg123

# 彻底卸载(删除配置文件)
sudo apt purge libmpg123-0t64 libmpg123-dev

# 清理残留的无用依赖
sudo apt autoremove

添加应用程序图标

/usr/share/applications/v2rayN.desktop
[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配置文件:

/etc/netplan/10-lxc.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支持

  1. 创建udev规则
/etc/udev/rules.d/70-android.rules
# 设备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"
  1. 更新 adb_usb.ini 文件

    ~/.android/adb_usb.ini 中添加所有厂商ID:

~/.android/adb_usb.ini
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 文件,让虚拟机开机自动挂载:

/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 实现开机自动挂载:

/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:users99:100),通过 SMB 或容器访问时可能遇到权限问题,需要在宿主机上 chown
  • 9P 性能远低于 virtiofs,大量小文件场景(git statusnode_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

评论

如果内容有勘误、补充或不同看法,可以直接写在这里。

正在加载评论区…