前言
本手册用于统一团队认知,不对外提供任何解释。
贡献者
许可证
Apple Store
⚠️ 注意:必须是美区 Apple Store
Amphetamine
阻止 Mac 睡眠
Xcode
一些工具的编译依赖
Redis Server
名字已经充分说明了功能
WireGuard
Linux 5.6 内核级特性,Linus 看了都说好
Tailscale
远程组网 + SSH
EasyRes
EasyRes 是一款适用于 Mac OS X 的快速屏幕分辨率切换器,具有实时动画预览。
DMG Application
clash-verge-rev
Postman
API 调试工具
OpenTrace
网络路由追踪图形化工具
Homebrew
macOS 基础
xcode-select --install
语言环境
Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Go
brew install go
Java
brew install --cask zulu@21
命令行工具
常用
brew install \
aria2 \
cmake \
ncdu \
sqlite \
telnet \
tldr \
tree \
watch \
wget
topgrade
一键更新开发环境
brew install topgrade
ffmpeg
视频处理
brew install ffmpeg
常用软件
Shottr
截图
brew install --cask shottr
Fork
Git GUI
brew install fork
IINA
视频播放器
brew install iina
Easydict
翻译
brew install --cask easydict
iStat Menus(需要注册码)
系统性能监控
brew install istat-menus
监控 CPU 频率需要安装 Intel Power Gadget
brew install intel-power-gadget
注意
:Intel Power Gadget 有可能会让你的 Mac 无限重启,在 iMac (Retina 4K, 21.5-inch, 2017) 上出现过这个问题,请慎重考虑是否安装。
无限重启修复方法:启动时按住 Shift 键,进入安全模式,使用 Intel Power Gadget 自带的 Uninstaller.pkg 完全卸载
OBS
推流 & 录屏
brew install obs
qBittorrent Enhanced
qBittorrent 增强版,自动 Ban 吸血 IP
brew install c0re100-qbittorrent
balenaEtcher
镜像烧录
brew install balenaetcher
数据库管理
Another Redis Desktop Manager
Redis
brew install another-redis-desktop-manager
Beekeeper Studio
MySQL, Postgres, SQLite, SQL Server
brew install beekeeper-studio
DBeaver
老牌工具
brew install --cask dbeaver-community
系统增强
Pearcleaner
卸载清理
brew install pearcleaner
Mos
鼠标行为调教
brew install mos
Maccy
粘贴板增强
brew install maccy
Keka
解压
brew install keka
Mounty
NTFS 读写
brew install mounty
Sloth
lsof
GUI
brew install sloth
iTerm2
替代掉系统自带的 Terminal
brew install iterm2
SwitchHosts
快速切换 HOST 文件
brew install switchhosts
Open In Termina
鼠标右键在此处打开控制台
brew install --cask openinterminal
调试
mitmproxy
brew install mitmproxy
whistle
brew install whistle
Charles(需要注册码)
brew install charles
Wireshark
brew install wireshark
jmeter
压力测试,装完之后没有图标,在命令行启动
brew install jmeter
逆向
jd-gui
逆向,反编译 JAR
brew install jd-gui
jadx
Android 逆向,装完之后没有图标,在命令行启动
brew install jadx
字体
Hack Nerd Font
终端唯一指定字体
brew tap homebrew/cask-fonts
brew install font-hack-nerd-font
相关文章
Rust cargo
A curated list of command-line utilities written in Rust
y2z/monolith
https://github.com/y2z/monolith
将完整网页保存为单个 HTML 文件
安装
cargo install monolith
用法
monolith https://dev-man-macos.d8s.fun -o a.html
使用 Touch ID 认证 sudo
cd /etc/pam.d
sudo vim sudo
写在第一行
auth sufficient pam_tid.so
:x!
系统首选项调整
https://www.robinwieruch.de/mac-setup-web-development
# 截图格式设置为更小的 jpg,而不是 png
defaults write com.apple.screencapture type jpg
# 打开新文件时,不要打开以前预览的文件(例如 PDF)
defaults write com.apple.Preview ApplePersistenceIgnoreState YES
# 显示 Library 文件夹
chflags nohidden ~/Library
# 显示隐藏的文件
defaults write com.apple.finder AppleShowAllFiles YES
# Finder 显示路径栏
defaults write com.apple.finder ShowPathbar -bool true
# Finder 显示状态栏
defaults write com.apple.finder ShowStatusBar -bool true
killall Finder;
TinkerTool·系统深度设置维护工具,帮助修改一些系统隐藏的属性
https://www.bresink.com/osx/TinkerTool.html
清除 DNS 缓存
How to Flush DNS on Mac – MacOS Clear DNS Cache
MACOS VERSION | COMMAND |
---|---|
macOS 12 (Monterey) | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
macOS 11 (Big Sur) | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
macOS 10.15 (Catalina) | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
macOS 10.14 (Mojave) | sudo killall -HUP mDNSResponder |
macOS 10.13 (High Sierra) | sudo killall -HUP mDNSResponder |
macOS 10.12 (Sierra) | sudo killall -HUP mDNSResponder |
OS X 10.11 (El Capitan) | sudo killall -HUP mDNSResponder |
OS X 10.10 (Yosemite) | sudo discoveryutil udnsflushcaches |
OS X 10.9 (Mavericks) | sudo killall -HUP mDNSResponder |
OS X 10.8 (Mountain Lion) | sudo killall -HUP mDNSResponder |
Mac OS X 10.7 (Lion) | sudo killall -HUP mDNSResponder |
Mac OS X 10.6 (Snow Leopard) | sudo dscacheutil -flushcache |
Mac OS X 10.5 (Leopard) | sudo lookupd -flushcache |
Mac OS X 10.4 (Tiger) | lookupd -flushcache |
异常耗电日志排查
pmset -g log | grep -i "wake from"
参考资料
Homebrew 清理无用依赖
brew autoremove && brew cleanup
Python 镜像配置
升级 pip 到最新版
pip3 install --upgrade pip -i https://pypi.douban.com/simple
设置镜像
pip3 config set global.index-url https://pypi.douban.com/simple
NPM Binary Mirror
使用方式
添加到 .bashrc
或 .zshrc
中
# === NPM BINRAY CHINA ===
# https://github.com/cnpm/binary-mirror-config/blob/master/package.json#L48
export NODEJS_ORG_MIRROR="https://cdn.npmmirror.com/binaries/node"
export NVM_NODEJS_ORG_MIRROR="https://cdn.npmmirror.com/binaries/node"
export PHANTOMJS_CDNURL="https://cdn.npmmirror.com/binaries/phantomjs"
export CHROMEDRIVER_CDNURL="https://cdn.npmmirror.com/binaries/chromedriver"
export OPERADRIVER_CDNURL="https://cdn.npmmirror.com/binaries/operadriver"
export ELECTRON_MIRROR="https://cdn.npmmirror.com/binaries/electron/"
export ELECTRON_BUILDER_BINARIES_MIRROR="https://cdn.npmmirror.com/binaries/electron-builder-binaries/"
export SASS_BINARY_SITE="https://cdn.npmmirror.com/binaries/node-sass"
export SWC_BINARY_SITE="https://cdn.npmmirror.com/binaries/node-swc"
export NWJS_URLBASE="https://cdn.npmmirror.com/binaries/nwjs/v"
export PUPPETEER_DOWNLOAD_HOST="https://cdn.npmmirror.com/binaries"
export SENTRYCLI_CDNURL="https://cdn.npmmirror.com/binaries/sentry-cli"
export SAUCECTL_INSTALL_BINARY_MIRROR="https://cdn.npmmirror.com/binaries/saucectl"
export npm_config_sharp_binary_host="https://cdn.npmmirror.com/binaries/sharp"
export npm_config_sharp_libvips_binary_host="https://cdn.npmmirror.com/binaries/sharp-libvips"
export npm_config_robotjs_binary_host="https://cdn.npmmirror.com/binaries/robotj"
数据来源
DoH/DoT
macOS 开启 WebKit 审查元素
https://blog.jim-nielsen.com/2022/inspecting-web-views-in-macos/
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
defaults write -g WebKitDeveloperExtras -bool YES
删除所有 .DS_Store 文件
find . -name '*.DS_Store' -type f -delete
重置 Dock
rm ~/Library/Application\ Support/Dock/*.db && killall Dock
defaults write com.apple.dock ResetLaunchPad -bool true && killall Dock
Launchpad 重置
defaults write com.apple.dock ResetLaunchPad -bool true && killall Dock
开机启动项管理
https://wild-flame.github.io/guides/docs/mac-os-x-setup-guide/preference_and_settings/launch
/Library/LaunchDaemons
- 系统启动时运行,用户不登录也会运行。
/Library/LaunchAgents
- 用户登录后运行
~/Library/LaunchAgents
- 用户自定义的用户启动项
/System/Library/LaunchDaemons
- 系统自带的启动项
/System/Library/LaunchAgents
- 系统自带的启动项
修复摄像头黑屏
https://macreports.com/mac-camera-not-working-fix
sudo killall AppleCameraAssistant; sudo killall VDCAssistant
重装 macOS 前的检查清单
support.apple.com - 重新安装 macOS
- VPN !!! VPN !!! VPN !!! 重要的事情说三遍,确认要重装系统前请先保证你的梯子是稳定的
-
备份
~/.ssh
-
备份
~/.keras
-
备份
~/.kaggle
-
备份
~/.ngrok2
-
备份
~/Projects
-
备份
~/Documents
-
备份
~/Pictures
-
备份
~/Wallpapers
-
备份
~/Downloads
-
备份
~/Movies
-
备份
~/Music
-
备份
~/Public
-
备份
Bob 配置文件
偏好设置-通用-导入导出 - 更新 dotfiles
-
检查
/Applications
和brew list
将新项目更新到 Must Install 中
macOS Environment Variables
Environment Variables
查看所有环境变量
env
设置一个 Variable
# 通过可执行文件设置
export JAVA_HOME=$(/path/to/JDK-exec-directory)
# 通过目录设置
export JAVA_HOME=/path/to/JDK-installed-directory
打印某个已设置的 Variable
echo $JAVA_HOME
PATH
查看当前 PATH
echo $PATH
修复损坏的 PATH (恢复默认 PATH)
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
添加自己的 PATH
export PATH="${PATH}:你的新目录"
刷新终端配置
source ~/.zshrc
常见的配置文件
- /etc/paths (全局建议修改这个文件)
编辑 paths, 将环境变量添加到 paths 文件中, 一行一个路径
tips: 输入环境变量时, 直接拖动文件夹到 Terminal 里就可以了
- /etc/profile (建议不修改这个文件)
全局(公有)配置,不管是哪个用户,登录时都会读取该文件
- /etc/bashrc (一般在这个文件中添加系统级环境变量)
全局(公有)配置,bash shell 执行时,不管是何种方式,都会读取此文件
- .profile (系统的每个用户设置环境信息)
当用户第一次登录时,该文件被执行,并从 /etc/profile.d 目录的配置文件中搜集 shell 设置
tips: 修改 /etc/profile 必须重启才会生效, 此修改对每个用户都生效
- .bashrc (每一个运行 bash shell 的用户执行此文件)
当 bash shell 被打开时, 该文件被读取
tips: 对所有的 bash 用户生效, 修改后启动一个新的 bash shell 即可
- .bash_profile (用于你的 bash shell 的 bash 信息)
当登录时以及每次打开新的 bash shell 时, 该文件被读取, 每个用户的家目录都有一个 .bashrc 文件
tips: 需要需要重启才会生效, /etc/profile 对所有用户生效, ~/.bash_profile 只对当前用户生效
- .zshrc (每一个运行 zsh shell 的用户执行此文件)
当 zsh shell 被打开时, 该文件被读取
tips: 对所有的 zsh 用户生效, 修改后启动一个新的 zsh shell 即可
- .zsh_profile (用于你的 zsh shell 的 zsh 信息)
当登录时以及每次打开新的 zsh shell 时, 该文件被读取, 每个用户的家目录都有一个 .zshrc 文件
tips: 需要需要重启才会生效, /etc/profile 对所有用户生效, ~/.zsh_profile 只对当前用户生效
- .netrc (用于完成常见协议的权限验证) 当你访问 git、ftp 等常见协议的时候自动验证账号密码 tips: 有些时候不能直接用账号密码,而是要用 token
.netrc 示例
machine github.com
login charles
password password
修复声音卡顿问题
sudo killall coreaudiod
修复天气组件黑屏
defaults delete com.apple.notificationcenterui; killall NotificationCenter
将大小写锁定键映射为 ESC 键
System settings
-> Keyboard
-> Keyboard Shortcuts
-> Modifier Keys
-> Caps Lock key
-> Escape
将 <Control + Space> 修改为 <Command + x>
System settings
-> Keyboard
-> Keyboard Shortcuts
-> Input Source
错误
UNABLE_TO_GET_ISSUER_CERT_LOCALLY
原因
用 brew 安装 ca-certificates openssl 会更新系统的 CA,更新出错时会导致 SSL 校验失败。
解决方案
brew reinstall ca-certificates openssl@3 node
🇨🇳 安装 rustup
Rustup Mirror
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
crates.io Mirror
vim ~/.cargo/config
[source.crates-io]
registry = "sparse+https://rsproxy.cn/index/"
[net]
git-fetch-with-cli = true
iTerm2 配置
主题配置
Preferences
-> Appearance
-> General
-> Theme
-> Minimal
状态栏配置
Preferences
-> Profiles
-> Session
-> Status bar Enabled
-> Configure Status Bar
Oh My Zsh 配置参考
github.com/jerryshell/dotfiles/blob/master/.zshrc
在 iTerm2 将 <Command + s> 修改为 <Control + s>
https://www.dfurnes.com/notes/binding-command-in-iterm
Preferences
-> Profiles
-> Keys
-> +
⌘s
Send Text with 'Vim' Special Characters
\<C-s>
Chrome DoH
Chrome 83 之前
chrome://flags/#dns-over-https
Chrome 83 之后(包括 83)
chrome://settings/security
Chrome 开启多线程下载
chrome://flags/#enable-parallel-downloading
VS Code 关闭遥测信息收集
https://code.visualstudio.com/docs/getstarted/telemetry
Code
>Preferences
>Settings
- 搜索
telemetry
- 将
Telemetry: Telemetry Level
改为 off
解决 VSCode 安装 Vim 插件后长按按键无法移动光标的问题
defaults write -g ApplePressAndHoldEnabled -bool false
修改 OpenTTD 的中文字体
打开 ~/Documents/OpenTTD/openttd.cfg
修改以下配置
small_font = /System/Library/Fonts/PingFang.ttc
medium_font = /System/Library/Fonts/PingFang.ttc
large_font = /System/Library/Fonts/PingFang.ttc
mono_font = /System/Library/Fonts/PingFang.ttc
small_size = 16
medium_size = 16
large_size = 20
mono_size = 16
small_aa = true
medium_aa = true
large_aa = true
mono_aa = true
Audacity 卡顿修复
Applications
-> Audacity.app
-> 右键 -> Show Package Contents
Contents
-> 用文本编辑器打开 Info.plist
将
<key>NSHighResolutionCapable</key>
<true/>
改为
<key>NSHighResolutionCapable</key>
<false/>
保存重启软件
Chrome 开启网页内容自动深色模式
选择 Enabled with selective inversion of non-image elements
chrome://flags/#enable-force-dark