这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

Ubuntu 配置

    制作启动盘

    balenaEtcher,支持 Windows、macOS 和 Linux 的跨平台启动盘制作工具,界面简洁,使用方便,支持多种镜像格式,如 ISO、IMG 等。

    brew install balenaetcher

    下载好镜像后,使用 balenaEtcher 将其写入到 U 盘中,制作完成后就可以使用这个 U 盘来安装 Ubuntu 了。

    安装完成后,配置清华源:

    安装必要的软件包:

    sudo apt update
    sudo apt install -y build-essential curl git vim tmux fd-find ripgrep

    修改 hostname ,设置一个好记的名字:

    sudo hostnamectl set-hostname devbox

    bashrc 配置

    wget -O ~/.bash_aliases https://api.liujiacai.net/bashrc

    初始化

    sudo apt install -y vim git openssh-server

    之后拷贝自己的公钥到服务器上,保证免密登录:

    ssh-copy-id -i ~/.ssh/id_ed25519.pub dev
    ssh-copy-id -i ~/.ssh/id_ecdsa.pub dev

    快捷键

    与 mac 对应

    gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:swap_lalt_lctl', 'ctrl:swapcaps']"
    • 先把 alt 和 ctrl 交互,再把 ctrl 与 caps 交互,最后的效果

      键位实际功能
      AltCtrl
      CapsCtrl
      CtrlAlt

    如果操作失误,可以通过这个命令来还原

    gsettings reset org.gnome.desktop.input-sources xkb-options
    (setq x-alt-keysym 'control)   ; 物理 Alt(系统是 Ctrl)→ Emacs Control
    (setq x-super-keysym 'meta)    ; 物理 Win → Emacs Meta

    Caps Lock 键改为 Ctrl 键

    # 临时生效(重启后失效),不退出当前 shell 立即生效
    setxkbmap -option "ctrl:swapcaps"
    
    # 永久生效
    echo 'XKBOPTIONS="ctrl:swapcaps"' | sudo tee -a /etc/default/keyboard
    sudo dpkg-reconfigure keyboard-configuration

    禁用系统快捷键

    鼠标

    macOS 上有个经典痛点:触控板用自然滚动,外接鼠标用传统方向。GNOME 原生支持分别控制:

    # 鼠标
    gsettings set org.gnome.desktop.peripherals.mouse natural-scroll false
    # 触控板
    gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll true

    禁用 Gnome 快捷键

    # 禁用 Meta+Alt+<- 进行工作空间切换,方便 brave 设置上/下一个标签
    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]"
    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "[]"
    
    # 禁用 Super 打开 Activities,默认值是 Super_L
    gsettings set org.gnome.mutter overlay-key ''
    
    # 禁用锁屏,默认是 ['<Super>l'],也可以配置成 ['<Control><Super>l']
    gsettings set org.gnome.settings-daemon.plugins.media-keys screensaver "['']"
    
    # 禁用 dash-to-dock 的 Super+数字,这样 Emacs 中的 Meta+数字键就可以用来切换窗口了
    gsettings set org.gnome.shell.extensions.dash-to-dock hot-keys false
    # 同时清掉 GNOME Shell 层的(双保险)
    for i in $(seq 1 9); do
      gsettings set org.gnome.shell.keybindings switch-to-application-$i "[]"
    done
    # 禁用 ibus 的 Emoji Choice/Annotation
    gsettings set org.freedesktop.ibus.panel.emoji hotkey "['']"
    
    # 禁用窗口平铺
    gsettings set org.gnome.mutter.keybindings toggle-tiled-right "['']"
    gsettings set org.gnome.mutter.keybindings toggle-tiled-left "['']"
    # 24.04 需要,因为该版本引入了全新集成的 Tiling Assistant(平铺助手) 扩展
    gsettings set org.gnome.shell.extensions.tiling-assistant tile-left-half "['']"
    gsettings set org.gnome.shell.extensions.tiling-assistant tile-right-half "['']"
    
    # 禁用 toggle the notification/message tray
    gsettings set org.gnome.shell.keybindings toggle-message-tray "[]"
    
    # disable the Super + D (Hide all normal windows / Show Desktop)
    gsettings set org.gnome.desktop.wm.keybindings show-desktop "['']"
    gsettings set org.gnome.shell.keybindings focus-active-notification "[]"

    然后在 Brave 浏览器中设置 Meta + Ctrl + ArrowRight 为下一标签页, Meta + Ctrl + ArrowLeft 为上一标签页。

    如果你不确定是哪个特定的配置项吞掉了快捷键,可以直接在终端用以下命令全局过滤当前系统中所有绑定了 <Super>n<Alt>n 的 GNOME 设置项:

    gsettings list-recursively | grep -E "(<Super>|<Alt>)[nN]"

    配置 bash tab 补全时大小写不敏感

    # 永久生效
    echo "set completion-ignore-case on" >> ~/.inputrc
    # 不退出当前 shell 立即生效
    bind -f ~/.inputrc
    
    # 临时生效
    bind "set completion-ignore-case on"

    关闭 GUI 登录

    # 永久关闭 GUI
    sudo systemctl set-default multi-user.target
    # 恢复开机启动 GUI
    sudo systemctl set-default graphical.target

    要让 Ubuntu 在不连接显示器时保持开机且不自动休眠,关键是配置电源管理以忽略显示器状态。

    sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

    禁用 WiFi/网卡的电源管理 (最常见原因)

    如果你的网卡开启了省电模式,空闲时会自动切断连接。 排查命令:

    iwconfig  # 如果是 WiFi,查看 Power Management 是否为 on

    解决方法(禁用网卡省电):

    sudo vim /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

    wifi.powersave = 3 改为 wifi.powersave = 2 (2 表示禁用)。如果是以太网(网线),执行:

    # 网卡名通过 ip addr 查看
    sudo ethtool -s [网卡名] wol d  # 禁用唤醒省电模式

    显卡驱动导致系统卡死

    根据 sudo journalctl -b -1 -n 100 命令查看上次死机前的日志,发现有如下信息:

    Feb 17 18:00:12 devbox kernel: audit: type=1400 audit(1771322412.494:160): apparmor="DENIED" operation="open" class="file" profile="snap.firmware-updater.firmware-notifier" name="/p>
    Feb 17 18:00:58 devbox kernel: workqueue: i915_hpd_poll_init_work [i915] hogged CPU for >10000us 1027 times, consider switching to WQ_UNBOUND

    可以看出,最后一行日志显示 i915 驱动占用 CPU 过高,导致系统卡死。解决方法是禁用 i915 驱动:

    # 1. 创建黑名单文件
    sudo bash -c 'cat > /etc/modprobe.d/blacklist-i915.conf << EOF
    blacklist i915
    blacklist intel_agp
    EOF'
    
    # 2. 更新 initramfs
    sudo update-initramfs -u -k all
    
    # 3. 重启
    sudo reboot
    
    # 4. i915 驱动(如果需要恢复显卡功能)
    sudo rm /etc/modprobe.d/blacklist-i915.conf
    sudo update-initramfs -u -k all

    常用命令

    # 安装 uv 包管理器
    # https://docs.astral.sh/uv/getting-started/installation/
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # https://supervisord.org/installing.html
    uv tool install supervisor