macOS 使用技巧#

收录一些 macOS 系统目前遇到过的问题的解决方案。

方法是否过气请自行测试,我一开始用 Mac 是 2014 年左右,用了大概有 5 年左右,之后因为穷,一直没换代,就很少用

直到 2026 年年初重新开始用 Mac,因此一些解决方案是 2010 年代的老方案,可能不适用于新版本 macOS

sudo 要求输入管理员帐号的密码,输入密码时不会显示 *,确保输入无误后按 enter/return 即可。


禁用 「App」尚未针对您的Mac优化 提示 1 2#

打开 Terminal 根据需要运行以下命令

命令作用 命令 测试环境
禁用最佳化提示 defaults write -g CSUIDisable32BitWarning -boolean TRUE macOS 10.14.6 (18G84) 通过
启用最佳化提示 defaults delete -g CSUIDisable32BitWarning 未测试
查看当前设置 defaults read -g CSUIDisable32BitWarning 未测试

示例图像


修改 hostname#

本技巧可以在你的计算机名(Hostname)加入非英文字符。

至于在不同网络环境和不同系统通讯的情况下,非英文字符的兼容性还请自行测试。

打开 Terminal 根据需要运行以下命令

sudo scutil --set ComputerName 计算机名
sudo scutil --set HostName 计算机名

修改 Dock 图标大小#

本技巧可以使强迫症患者不再需要跟无法量化的水平调节器打交道。

打开 Terminal 根据需要运行以下命令

defaults write com.apple.dock largesize -float 88  # 鼠标经过(放大)时图标的大小
defaults write com.apple.dock tilesize -int 48     # 普通情况下图标的大小
killall Dock                                       # 设置完要重启一下Dock才能生效

解包 PKG 文件#

使用前请在 PKG 包上右键看看有没有 显示包内容 选项,如果有,证明这个安装包并非单文件,而是文件夹,直接点击 显示包内容 即可查看内容。

PKG 指的是 PKG 格式的 macOS 软件包安装文件,并非所有 PKG 都能使用此技巧!

打开 Terminal 根据需要运行以下命令

cd path/to/pkg/file
pkgutil --expand ExampleApp.pkg  ExampleApp.unpkg  # 解包PKG 10.12及之前的系统解包目标路径一定要加上`.unpkg`否则会解包失败
pkgutil --flatten ExampleApp.unpkg ExampleApp.pkg  # 打包PKG (未测试)

# 解包后请在解包出来的目录中寻找 Payload 文件,此文件包含真正的应用文件。

cd path/to/Payload/file
cat Payload | gzip -d | cpio -id                   # 解包出真正的应用文件

打开/关闭 SIP3 安全机制(高危操作)#

本操作可能导致系统不可逆损坏,请在执行前确保你清楚自己正在干什么!!

使用此方法需要先将Mac关机,然后按住 Command + R 开机,请一直按着 Command + R 直到完全进入「恢复功能」模式。

在「恢复功能」模式下打开 Terminal 根据需要运行以下命令

csrutil disable  # 禁用SIP
csrutil enable   # 启用SIP
csrutil clear    # 重置SIP (默认值为启用)
csrutil status   # 查看SIP设置 (可在正常系统下使用本命令)

在「恢复模式4」模式下修复全盘文件权限错误#

此方法适用于尚未应用 SIP 安全机制的系统 (OS X El Capitan 之前的系统,不包括 OS X El Capitan) ,相关命令行工具在包含SIP的系统上已经被苹果移除!因此强烈建议在日常使用中长时间关闭 SIP 保护!

Apple silicon

关机 状态下,长按 电源键 10 秒

Intel

关机 状态下,然后按住 Command + R 开机,请一直按着 Command + R 直到完全进入「恢复模式」模式。

在「恢复模式」模式下打开 Terminal 根据需要运行以下命令,假设你的系统盘盘符为「Macintosh HD」

sudo /usr/libexec/repair_packages --verify --standard-pkgs /Volumes/Macintosh\ HD/
                                                                    ↑ 改成你系统盘的名称
sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /Volumes/Macintosh\ HD/
                                                                             ↑ 改成你系统盘的名称

通过 Terminal 打开「所有来源」#

允许从以下来源下载的 App

打开 Terminal 根据需要运行以下命令

命令作用 命令
打开「所有来源」 sudo spctl --master-disable
关闭「所有来源」 sudo spctl --master-enable

手动删除出错的升级安装包#

包括 系统更新 / AppStore 应用更新

有时在更新过程中,因为网络或各种各样的问题导致安装包下载过程中出现错误,且出错后无法继续下载或下载完成后无法安装等情况,此时只需要将出错的安装包文件删除并重新下载即可。

升级安装包路径,删除里面的所有文件,只保留 ProductMetadata.plist 文件即可

打开 Terminal 根据需要运行以下命令可直接打开升级包所在的目录

open /Library/Updates/

查看/修改默认 XCode 的路径#

macOS 系统中只能同时指定一个 XCode 作为开发工具,如果有多个不同版本的 XCode 需要手动切换。

打开 Terminal 根据需要运行以下命令

命令作用 命令
查看当前启用的Xcode路径 xcode-select --print-path
修改当前启用的Xcode路径 sudo xcode-select -switch path/to/Xcode.app
安装XCode命令行工具 sudo xcode-select --install

iBooks 数据目录#

打开 Terminal 根据需要运行以下命令可直接打开iBook数据目录

open ~/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks/Books

重建「打开方式」菜单 5#

打开 Terminal 根据需要运行以下命令

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain user

修改 Dock 文件夹显示的图标大小#

先点击在Dock中停靠的任意文件夹,使其弹出内容显示框,然后根据需要按下下面的组合键进行调整

Command =  # 放大图标显示 Command键 加 = (shift 是 + 那个 =)
Command -  # 缩小图标显示 Command键 加 - (shift 是 _ 那个 -)

在一些文本编辑应用中你也可以尝试使用这组快捷键来调整字体大小。


修改系统登录/锁屏界面的背景图片#

去除模糊效果,仅适用于 OS X 10.12 之前的系统

使用喜欢的图片替换以下文件即可

/Library/Caches/com.apple.desktop.admin.png

去除文件「@」特殊属性#

在 HFS+ 文件系统里,本操作可能使软连接失效,使用时请注意。

macOS 的 Finder 可以给文件或文件夹加上颜色标签等扩展属性,此功能需要创建一个名为._原文件名的文件,在 macOS 上表现为通过终端列出此文件会带有特殊的「@」属性。 在可移动存储媒体里面,这些属性如果在别的系统中表现出来会非常杂乱。但可以通过命令方便地去除这些属性。

打开 Terminal 根据需要运行以下命令

xattr -rc 文件名/文件夹名

使用示例:

bash-5.0$ ls -ahl
-rw-r--r--@  1 user  staff     0B Aug  3 11:40 NewFile.txt
          ↑ 「@」属性标记,以上为实验性地为一个文件加上颜色标签后的结果。

bash-5.0$ xattr -rc NewFile.txt  # 通过 xattr -rc 文件名/文件夹名 可以递归地删除文件/文件夹里面所有文件的「@」属性标记。

bash-5.0$ ls -ahl
-rw-r--r--   1 user  staff     0B Aug  3 11:40 NewFile.txt
          ↑ 执行后「@」属性标记消失。

创建 macOS 的安装媒体 6#

适用于 OS X 10.10 及以上系统

本操作会对U盘重新分区,请提前备份U盘内容!

从 App Store 下载最新的系统安装程序。 提前准备一只容量最小为 8G 的U盘并格式化,卷标(盘符名称)随意(此处以 Untitled 作为示例)。

打开 Terminal 根据需要运行以下命令

sudo "path/to/Installer.app/Contents/Resources/createinstallmedia" --volume /Volumes/Untitled --applicationpath "path/to/Installer.app/Contents/Resources/createinstallmedia" --nointeraction
                                                                                     ↑ 改成你U盘的卷标

重建 Launchpad 数据库 7#

适用于 OS X 10.10 及以上系统

本操作会重置 Launchpad ,所有系统应用的图标都会回到系统默认的位置,而自己安装的应用则会随机排列到第二页及以后的位置。

本操作可以解决 Launchpad 里面还残留了已经删除的 App 图标,或者出现图标错位,删除不了的情况。

打开 Terminal 根据需要运行以下命令

defaults write com.apple.dock ResetLaunchPad -bool true
killall Dock

示例图像


优雅地在 macOS 中隐藏文件#

本操作利用 macOS 的「@」属性隐藏,而非 Unix 标准的将文件名或文件夹名改成 . 开头的办法。

利用本操作可以隐藏 /Applications 中的系统应用,而不对系统造成损害或破坏性修改。

macOS 10.14 及以后系统中,一部分系统应用已经以至 /System/Applications 目录下。

Intel Only

启用了 SIP 的系统,若要修改 /Applications 中的系统应用,请到「恢复模式」模式下使用本命令;或先行关闭 SIP ,修改完毕后再重新打开 SIP

Apple silicon

在 Apple silicon 平台,请不要尝试修改系统自带的应用,没错,就算是加隐藏属性也不行

在 Apple silicon 平台中,主板固件、系统内核以及内建应用均有签名验证机制,只要签名验证不通过,就一定会启动失败

打开 Terminal 根据需要运行以下命令

命令作用 命令
隐藏文件 / 文件夹 chflags hidden 文件/文件夹
取消隐藏 chflags nohidden 文件/文件夹

修改锁屏或开机登入用户账户时的背景图片#

适用于 macOS 10.15 及以上系统,其他版本尚未出现此情况

本操作可以修复因误操作,设置了错误或不适宜的图片作为桌面背景后被系统记录,导致每次登入用户账户在输入密码的步骤都显示该图片作为背景图片的情况。

删除以下路径的图片即可

/Library/Caches/Desktop Pictures/89EE1E2D-C40A-40B6-A7F0-F7C3DCF2EB41/lockscreen.png
                                 ↑ 此为用户账户UUID,可以在下面的位置进行查询
                                   系统偏好设置 > 用户与群组 > 解锁 > 在用户账户上单击鼠标右键 > 进阶选项

在日历应用中订阅苹果官方节庆日历 8#

示例图像

  1. 在“日历”中,选取“文件”>“新建日历订阅”。
  2. 输入日历的网址,然后点按“订阅”。
  3. 输入日历名称,然后选取一种颜色来帮助您在日历上标识这个名称。
    • 若为苹果官方提供的日历,则可以自动识别日历名称,如日本の祝日
  4. 从“位置”菜单中选取“iCloud”,然后点按“好”。
    • 若不需要iCloud同步,这里可以选“我的Mac上”
日本节假日 https://p33-calendars.icloud.com/holidays/jp_ja.ics
大陆节假日 https://p48-calendars.icloud.com/holidays/cn_zh.ics
台湾节假日 https://p48-calendars.icloud.com/holidays/tw_zh.ics
香港节假日 https://p48-calendars.icloud.com/holidays/hk_zh.ics
美国节假日 https://p62-calendars.icloud.com/holidays/us_en.ics

禁止某个分区自动挂载#

本操作可以禁止任意分区(可以是任意文件系统,如:NTFS、HFS+等)在系统开机、重启、或拔出 USB 硬盘后重新连接时自动挂载

  1. 先打开 Terminal 运行以下命令。
    并记录你需要禁止自动挂载的分区的 IDENTIFIER
    本文以笔者系统中的 Windows_BC 分区为例,所以在本例中应该记录的是 disk0s3

    $ diskutil list    # 显示目前连接在电脑上的硬盘信息
    
    # 以下是在 macOS 10.15 中的输出示例
    
    /dev/disk0 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *500.3 GB   disk0
       1:                        EFI EFI                     209.7 MB   disk0s1
       2:                 Apple_APFS Container disk1         460.0 GB   disk0s2
       3:       Microsoft Basic Data Windows_BC              40.1 GB    disk0s3
    
    /dev/disk1 (synthesized):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      APFS Container Scheme -                      +460.0 GB   disk1
                                     Physical Store disk0s2
       1:                APFS Volume Macintosh HD - 資料     288.3 GB   disk1s1
       2:                APFS Volume Preboot                 83.4 MB    disk1s2
       3:                APFS Volume Recovery                528.1 MB   disk1s3
       4:                APFS Volume VM                      10.7 GB    disk1s4
       5:                APFS Volume Macintosh HD            11.2 GB    disk1s5
  2. 继续在 Terminal 运行以下命令,即可得出该分区的详细信息。
    记录下该分区的 Volume UUID ,所以在本例中应该记录的是 4C31E7AC-26AD-4347-8139-C3DFCEC13DBB

    $ diskutil info /dev/disk0s3    # 请将例子中的 `disk0s3` 换成你实际要操作的 `IDENTIFIER`
    
    # 在我系统中的示例输出
    Device Identifier:         disk0s3
    Device Node:               /dev/disk0s3
    Whole:                     No
    Part of Whole:             disk0
    
    Volume Name:               Windows_BC
    Mounted:                   No
    
    Partition Type:            Microsoft Basic Data
    File System Personality:   NTFS
    Type (Bundle):             ntfs
    Name (User Visible):       Windows NT File System (NTFS)
    
    OS Can Be Installed:       No
    Media Type:                Generic
    Protocol:                  PCI
    SMART Status:              Verified
    Volume UUID:               4C31E7AC-26AD-4347-8139-C3DFCEC13DBB
    Disk / Partition UUID:     87B2CB4F-5A5A-46FC-8EF9-5DC36D618B4B
    Partition Offset:          460210569216 Bytes (898848768 512-Byte-Device-Blocks)
    # 省略一部分输出内容
  3. 继续在 Terminal 运行以下命令,并在打开的 nano 编辑器显示的文件最末尾增加一行(请勿删除或修改已经存在的任何内容),内容如下所示:

    $ export EDITOR=nano    # 指定 shell 编辑器为 nano
                            # 如果你安装了自己喜欢的编辑器,也可以改成你自己喜欢的编辑器,如 vim
    
    $ sudo vifs
    Password:               # 输入管理员密码然后回车
    
    # 在文件末尾增加以下内容,请将 UUID 换成你记录下的 UUID
    UUID=4C31E7AC-26AD-4347-8139-C3DFCEC13DBB none auto noauto,ro
    
    # 如果你使用的是 nano 编辑器,请按以下步骤保存并退出文件编辑状态
    # 编辑完成后按 Control + X (退出编辑器)
    # 最后再键入 Y (保存修改)
  4. 此时已禁止系统对选定的分区进行自动挂载,如果需要取消禁止,可以重复第3步,删除对应的 UUID 所在的行即可

Volume UUID 是在分区格式化时由系统自动生成的,此后直到下一次格式化为止一般不再改变

假如你禁用某分区自动挂载后,又对其进行了格式化操作,可能需要按照以上步骤重新禁用

如何去掉 com.apple.macl 特殊属性 9 10 11#

虽然上面的 去除文件特殊属性 技巧中提到,使用 xattr -rc xxx 可以去除文件(夹)的所有 @ 属性

但在 macOS Catalina 中, Apple 加入了一种新的特殊属性,即 com.apple.macl

这种特殊属性无法直接通过 xattr 命令移除: xattr 命令虽然可以去除这个属性,但系统会在 0.0005 秒内重新为该文件(夹)重新加上 macl 属性

而且它和 SIP 机制有关,当文件(夹)带有这个属性时,每次打开都会触发 Gatekeeper 检查,这在某些时候会导致一些 App 每次打开时都会提示不该应用不安全

众所周知,在 Apple Silicon 芯片的 Mac 中 SIP 的关闭或者改动,都变得特别不推荐而且相当麻烦

macl 属性仍然是可以被去除的, macl 属性只在 macOS 的启动磁盘中生效,因此我们可以通过把文件复制到外置磁盘中,把该属性通过 xattr 移除即可:

  1. 打开 macOS 自带的 「磁盘工具」
  2. 在菜单栏中选取 文件 → 新建映像 → 空白映像,并根据提示创建一个比应用体积略大的映像文件,储存在任意位置
  3. 把需要移除 macl 属性的 App 复制到该磁盘映像之中
  4. 利用 xattr 移除该 App 的特殊属性
  5. 把 App 复制到任意你想要安装的位置即可
  6. 现在你可以卸载和删除掉之前新建的磁盘映像了
bash-5.0$ cd /Applications/
bash-5.0$ ls -ahl
drwxr-xr-x@  3  root  wheel  96B  Jul 21 05:30  Visual Studio Code.app/
bash-5.0$ xattr -l Visual\ Studio\ Code.app/
com.apple.macl:
  # 直接查询我正在使用,已经安装到 /Applications 的 Visual Studio Code.app ,可以看到它具有 `macl` 属性

  # 用 磁碟工具 创建一个名称为 未命名 的 磁盘映像 并挂载
  # 用 Finder 把 Visual Studio Code.app 复制到 未命名 里面

bash-5.0$ cd /Volumes/未命名/
bash-5.0$ ls -ahl
drwxr-xr-x@  3  chinanoahli  staff  96B  Jul 21 05:30  Visual Studio Code.app/
bash-5.0$ xattr -l Visual\ Studio\ Code.app/
com.apple.macl: 
  # 此时直接通过 xattr 列出 Visual Studio Code.app 的特殊属性,可以看到仅有一个 `com.apple.macl`

bash-5.0$ xattr -rc Visual\ Studio\ Code.app/
bash-5.0$ ls -ahl
drwxr-xr-x  3  chinanoahli  staff  96B  Jul 21 05:30  Visual Studio Code.app/
  #       ↑ @ 属性已经消失

  # 用 Finder 重新把 /Volumes/未命名/Visual Studio Code.app 复制至 桌面
bash-5.0$ cd ~/Desktop/

bash-5.0$ ls -ahl
drwxr-xr-x  3  chinanoahli  staff  96B  Jul 21 05:30  Visual Studio Code.app/
  #       ↑ @ 属性不复存在

另外,你可以使用 macOS 自带的 命令行工具 zip ,把你需要处理的文件压缩后重新解压,也能去除 macl 属性

但注意,压缩解压法必须使用命令行工具,而不是 Finder 右键菜单中的压缩

具体技术细节,请参考本 Tweak 标题后方的引用来源

引用来源#


使用说明

本站任何链接均可使用 鼠标中键 点击以直接在 新标签页 中打开

因为 ,所以本站直接使用 Cloudflare Pages 托管,大陆访问有时会比较缓慢,如遇到图片加载速度缓慢或出错,请刷新再试


内容归属

chinanoahli @ GitHub

对笔记内容有任何问题或建议,请到本项目的 Discussions页面 提出


奖励我一瓶快乐水

本站无广告,自费建设,自行维护

如果你觉得本站的资讯对你有用,可以通过以下任意一种方式奖励我一瓶快乐水

微信赞赏码

支付宝转账

外国朋友专用
点击图片跳转

微信赞赏码 支付宝转账 Paypal

关于许可证

严格禁止事项

严禁转载本站点的任何内容到大陆地区任何所谓的假开源平台,特别点名 CSDN 、 Gitee 等

基本全为个人笔记和个人观点,采用 CC BY SA 许可协议发布,许可协议的具体规条款请点击下方的 图片 进行查看

你可以任意修改和再分发本资料,但必须采用同样的许可证。

如有转载的资料或链接,请按照来源的许可证处理。

CC BY-SA 4.0