1. 简介

defaults是macOS系统中的命令行工具,用于读取、写入和删除用户偏好设置。它允许用户精细调整系统和应用程序的行为,修改在系统设置中无法直接更改的高级选项。

⚠️ 注意:谨慎使用,不要盲目复制命令,使用前了解每个命令的具体作用

2. 基本概念

2.1 域(Domain)

  • 偏好设置按域组织
  • 通常对应特定应用程序
  • 全局域:NSGlobalDomain(影响所有应用程序)

2.2 键值对

  • 每个域包含多个键值对
  • 键:字符串
  • 值:可以是字符串、数组、字典等

3. 命令语法

基本语法:

defaults [操作] [域] [键] [值]

3.1 主要操作

  1. 读取
# 读取所有域
defaults read

# 读取特定域
defaults read com.apple.finder

# 读取特定键
defaults read com.apple.finder AppleShowAllFiles
  1. 写入
# 写入字符串
defaults write com.apple.finder AppleShowAllFiles YES

# 写入数组
defaults write com.apple.dock persistent-apps -array-add '<dict/>'

# 写入字典
defaults write com.apple.finder '{ "ShowPathbar" = YES; }'
  1. 删除
# 删除特定键
defaults delete com.apple.finder AppleShowAllFiles

# 删除整个域
defaults delete com.apple.finder

4. 常用操作

4.1 系统界面和行为

4.1.1 Dock设置

# 加速Dock栏显示/隐藏
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0.5

# 调整Dock栏图标大小
defaults write com.apple.dock tilesize -int 36

# 移除Dock栏的动画效果
defaults write com.apple.dock autohide-time-modifier -float 0

# 设置启动台图标排列
defaults write com.apple.dock springboard-columns -int 7
defaults write com.apple.dock springboard-rows -int 6

4.1.2 Finder设置

# 显示隐藏文件
defaults write com.apple.finder AppleShowAllFiles YES

# 显示完整文件路径
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true

# 禁止在网络卷和U盘上生成.DS_Store文件
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool TRUE

4.1.3 桌面和文件管理

# 桌面不显示硬盘图标
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false

# 桌面不显示外部硬盘
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false

# 桌面不显示可移动媒体
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false

4.2 系统性能和界面优化

4.2.1 动画和性能

# 加快窗口缩放速度
defaults write -g NSWindowResizeTime -float 0.001

# 禁用应用程序打开动画
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false

# 加快Mission Control动画
defaults write com.apple.dock expose-animation-duration -float 0.1

# 加快菜单栏和窗口显示速度
defaults write NSGlobalDomain MenuPauseTime -float 0.5

4.3 截图和文件操作

4.3.1 截图设置

# 更改截图保存位置
defaults write com.apple.screencapture location ~/Desktop

# 更改截图文件名
defaults write com.apple.screencapture name "MyScreenshot"

# 截图格式改为jpg
defaults write com.apple.screencapture type jpg

# 禁用截图阴影效果
defaults write com.apple.screencapture disable-shadow -bool true

4.4 文本和应用程序设置

4.4.1 文本编辑

# 默认以纯文本打开文件
defaults write com.apple.TextEdit RichText -int 0

# 自动保存间隔(以秒为单位)
defaults write com.apple.TextEdit AutosaveInterval -int 10

4.4.2 Safari浏览器

# 显示完整网址
defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true

# 启用开发者菜单
defaults write com.apple.Safari IncludeDevelopMenu -bool true

4.5 其他系统设置

4.5.1 电池和电源

# 显示电池百分比
defaults write com.apple.menuextra.battery ShowPercent -string "YES"

# 在关闭盖子时不进入睡眠(仅限外接电源)
defaults write com.apple.caffeinate.user DisableSleepOnLidClose -bool YES

4.5.2 日期和时间

# 24小时制
defaults write NSGlobalDomain AppleTimeMachineUseLocalVolumes -bool true

4.5.3 其他系统功能

# 在QuickLook中选择文本
defaults write com.apple.finder QLEnableTextSelection -bool true

# 显示剪贴板历史记录
defaults write com.apple.dock show-recents -bool true

5. 实用技巧

5.1 查看信息

# 列出所有域
defaults domains

# 搜索特定设置
defaults find 关键词

5.2 导出和导入设置

# 导出设置
defaults export com.apple.finder finder_backup.plist

# 导入设置
defaults import com.apple.finder finder_backup.plist

5.3 立即生效

# 重启Finder
killall Finder

# 重启Dock
killall Dock

6. 安全建议

  • 修改设置前先备份
  • 谨慎操作系统关键设置
  • 仅在了解命令含义时执行
  • 部分设置可能需要重新登录或重启

6.1 恢复方法

  1. 使用defaults delete删除特定设置
  2. 重置特定应用设置
  3. 从备份文件恢复

7. 附录

7.1 常用应用域

应用域 说明
com.apple.finder 访达
com.apple.dock 程序坞
com.apple.screencapture 屏幕截图
NSGlobalDomain 全局设置
com.apple.Safari Safari浏览器

7.2 值类型

  • -string:字符串
  • -int:整数
  • -float:浮点数
  • -bool:布尔值
  • -array:数组
  • -dict:字典