本文档记录 macOS 和 Linux 系统的配置方法。由于两者都是 Unix-like 系统,大部分配置方法通用,平台特定的配置会特别标注。
目录
Open 目录
开发配置
Ubuntu Dektop 禁用图形界面
禁用 GNOME 图形界面
-
禁用显示管理器(GDM3)
sudo systemctl set-default multi-user.target禁用它可防止系统启动 GUI,这会将系统默认启动目标设为“多用户命令行模式”。
-
立即停止当前图形界面(可选)
sudo systemctl isolate multi-user.target如果当前已登录图形桌面,可以立即停止它而不重启。执行后,系统会退出图形界面,回到 TTY 命令行(通常是黑屏,按 Ctrl+Alt+F2 或 F3 切换到终端)。
-
卸载 GNOME 组件(可选)
sudo apt remove --purge ubuntu-desktop gnome-shell gdm3 sudo apt autoremove
临时停止图形界面
-
临时停止图形界面,释放显存:
sudo systemctl stop gdm3这会立即终止 GNOME 和 Xorg/Wayland 进程,释放显存。但下次重启后 GUI 仍会启动。停止 gdm3 后,可能需要通过 Ctrl+Alt+F2 切换到 TTY2 登录。
-
重新启用图形界面:
sudo systemctl set-default graphical.target sudo systemctl start gdm3 // 或者重启系统 sudo reboot
Frp 内网穿透 SSH
-
frpc.toml配置文件示例:[common] server_addr = x.x.x.x # 服务器公网 IP 地址 server_port = 7000 # frp 服务器端口 token = "your_strong_secret_token" # 必须与 frps 一致 [ssh] type = tcp local_port = 22 remote_port = 1234 # 云服务器上暴露的端口 -
配置 systemd 自启
创建
/etc/systemd/system/frpc.service文件:[Unit] Description=frpc daemon After=network.target [Service] Type=simple ExecStart=/home/xu/frp/frpc -c /home/xu/frp/frpc.toml Restart=always RestartSec=10 [Install] WantedBy=multi-user.target -
启动并设置开机自启
sudo systemctl daemon-reload sudo systemctl start frpc sudo systemctl enable frpc
系统配置
1. Zsh 安装与配置
安装 Zsh
Linux:
# 安装 Zsh
sudo apt update
sudo apt install zsh
# 查看 Zsh 的版本
zsh --version
# 设置 Zsh 为默认 shell
chsh -s $(which zsh)
macOS:
# macOS 已内置 Zsh (Catalina 及以后版本默认使用 Zsh)
# 查看 Zsh 的版本
zsh --version
# 如需安装最新版本
brew install zsh
# 设置 Zsh 为默认 shell
chsh -s $(which zsh)
安装 Zimfw
2025.02.16:使用 Zimfw 代替 Oh My Zsh,集成度和效率更高
# 查看当前使用的 shell
echo $SHELL
# 通过 curl 安装 Zimfw
curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
echo $ZSH
Zsh 插件与主题配置
# 添加 powerlevel10k 模块
zmodule romkatv/powerlevel10k
zimfw install
zimfw update
zimfw upgrade
# 安装 Zoxide(非 Zimfw 安装)
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
大部分 Oh My Zsh 需要手动配置的插件(如 compinit、SHARE_HISTORY、CORRECT 等)在 Zim 中已经默认启用,只需要手动添加需要的模块和主题,使用
zimfw install即可自动安装。
2. macOS 初始化配置
系统设置
-
开启安装任何来源的程序选项:
sudo spctl --master-disable -
将软件安装至外置硬盘
# 在外置硬盘创建应用程序目录 mkdir /Volumes/Work/Application # 在移动硬盘上创建库目录和 Application Support 目录 mkdir -p /Volumes/Work/Library/Application\ Support # 将安装在"/Applications"目录下的软件文件夹移到 (手动或命令) 外置硬盘的应用程序目录 mv /Applications/A.app /Volumes/Work/Application # 进入系统自带的软件目录 cd /Applications # 将软件文件链接回内部硬盘 ln -s /Volumes/Work/Application/A.app ./A.app # 若软件在 ~/Library/Application Support 目录下有其他必要文件,将其移到移动硬盘的相应目录 mv ~/Library/Application\ Support/A /Volumes/Work/Library/Application\ Support # 并建立软链接 ln -s /Volumes/Work/Library/Application\ Support/A ~/Library/Application\ Support
macOS 常用工具
| 功能 | 名称 | 备注 | 下载链接 |
|---|---|---|---|
| 解压缩 | Keka | 官网免费 | 官网 |
| 卸载 | AppCleaner | 免费 | 官网 |
| 快捷操作 | Raycast | 基本功能免费 | 官网 |
| PDF 阅读 | PDF Expert | 收费 | 官网 |
| 截图 | PixPin | 基本功能免费 | 官网 |
| 右键管理 | iRightMouse | 免费版 / 专业版 | App Store |
| 软件包管理 | HomeBrew | 开源 | 官网 |
| 菜单管理 | Ice | 开源 | brew install jordanbaird-ice |
| 终端 | iTerm2 | 开源 | 官网 |
| SSH | Termius | 内购 | 官网 |
| 剪切板 | Raycast (部分功能) | 基本功能免费 | 官网 |
| 窗口管理 | Loop | 开源 | brew install --cask loop |
| 网络唤醒 | wakeonlan | 开源 | brew install wakeonlan |
| 声音管理 | SoundSource | 付费 | 官网 |
| 声音管理 | LosslessSwitcher | 开源 | GitHub |
| 键鼠共享 | DeskFlow | 开源 | GitHub |
| 播放器 | IINA | 开源 | 官网 |
| Shell自动补全 | Amazon Q | 开源 | GitHub |
移除登录项
-
移除登录项与扩展中的无用选项
# 在 Finder 中打开对应文件夹,对照登陆项的名称删除对应文件 ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons
3. Ubuntu 系统优化
SSH 服务端优化
优化 SSH 连接速度,禁用不必要的 DNS 解析和 GSSAPI 认证,强制使用 IPv4:
# 修改配置文件
sudo sed -i '$a UseDNS no\nGSSAPIAuthentication no\nAddressFamily inet' /etc/ssh/sshd_config
# 应用更改 (针对 Ubuntu 24.04 Socket 激活模式)
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket ssh.service
增加Linux 内核允许用户程序“监控文件变化”的上限
防止 VS Code 因为无法实时监听文件变化而变得迟钝:
# 临时生效
# 定义了单个用户可以创建的 inotify 监听器(Watcher)的总数,默认 8192
sudo sysctl fs.inotify.max_user_watches=524288
# 定义了单个用户可以创建的 inotify 实例(Instance)的总数,默认为128
sudo sysctl fs.inotify.max_user_instances=512
# 永久生效(写入配置文件)
echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
echo "fs.inotify.max_user_instances=512" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
CPU 高性能模式
将 CPU 调频策略切换为性能模式,提升系统响应速度:
# 查看支持的模式
powerprofilesctl
# 切换为高性能模式
sudo powerprofilesctl set performance
优化虚拟内存
Ubuntu 默认的 swappiness 值为 60,这意味着系统会较早地开始将内存数据交换到硬盘(即使你内存还够)。对于高性能机器,可以降低这个值,让系统优先使用物理内存:
# 修改为 10, 只有内存几乎用满时才用 Swap
sudo sysctl vm.swappiness=10
# 永久生效
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
启用中断平衡
处理大量网络包(SSH、文件传输)时,如果压力全在一个核心上,会造成单核瓶颈。irqbalance 能将硬件中断负载均匀分配到所有核心:
sudo apt install irqbalance
sudo systemctl enable --now irqbalance
内核与文件监控上限
提高文件监控上限,避免开发工具(如 IDE、构建工具)因监控文件数量限制而报错,同时优化内存交换策略:
# 写入内核配置文件
sudo tee -a /etc/sysctl.conf <<EOF
fs.inotify.max_user_watches=524288
fs.inotify.max_user_instances=512
vm.swappiness=10
EOF
# 立即应用
sudo sysctl -p
日志优化
限制系统日志大小,防止日志占用过多磁盘空间:
# 限制日志最大占用 500M
sudo journalctl --vacuum-size=500M
# 永久限制:修改配置文件
sudo sed -i 's/#SystemMaxUse=/SystemMaxUse=500M/' /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
4. 欧陆词典无限试用 (macOS)
欧路词典 Mac 版和 Windows 版有差异,Mac 版不购买注册版本有试用次数的限制。但可以通过修改本地偏好设置的方式绕过。具体过程记录如下;
- 打开「访达」
- 快捷键
Cmd + Shift + G - 输入路径:
~/Library/Preferences - 找到文件:
com.eusoft.eudic.plist - 打开 plist 二进制文件为 XML 格式,可以在 VSCode 中安装 Binary Plist 插件来打开。
- 找到字段:
MAIN_TimesLeft - 将其数值改大(如:99999),保存即可
重新打开欧路词典,即可无限次使用专业功能,升级也不会失效。
5. Micro 编辑器配置
Micro 是一个现代化、易于使用的终端文本编辑器,支持跨平台使用。以下是在 macOS 和 Ubuntu 上的优化配置。
macOS 配置
macOS 环境下使用外部剪贴板,方便与系统其他应用交互:
{
"clipboard": "external",
"mkparents": true,
"savecursor": true,
"autosu": true,
"tabsize": 4,
"tabstospaces": true,
"hlsearch": true,
"softwrap": true
}
配置说明:
clipboard: "external"- 使用系统剪贴板,支持与外部应用复制粘贴tabsize: 4- 设置 Tab 键宽度为 4 空格tabstospaces: true- 将 Tab 转换为空格mkparents: true- 保存文件时自动创建不存在的父目录savecursor: true- 保存时记录光标位置autosu: true- 需要权限时自动使用 sudohlsearch: true- 高亮搜索结果softwrap: true- 启用软换行
Ubuntu 配置
Ubuntu 环境下使用终端剪贴板,配置更简洁:
{
"autosu": true,
"clipboard": "terminal",
"hlsearch": true,
"mkparents": true,
"savecursor": true,
"softwrap": true,
"tabstospaces": true
}
配置说明:
clipboard: "terminal"- 使用终端剪贴板,适合纯终端环境- 其他配置项与 macOS 相同,确保跨平台体验一致
配置文件位置:~/.config/micro/settings.json