自动跟踪 Mac OS X 中使用的默认写入命令

默认写入

如果你喜欢从终端使用大量默认写入命令来调整 Mac OS X,你已经知道它有多难是为了跟踪他们。当然,您可以查询命令历史记录以获得特定的命令语法,并且您总是可以使用 grep 来查找执行的默认值命令,但是有更好的方法来跟踪它们全部,这是通过保留一个自动更新的文本文件来存储所有使用的默认调整的列表。这使得跟踪在特定 Mac 上激活或禁用了哪些默认命令变得非常容易。

本教程将向您介绍如何通过生成专门跟踪这些命令执行的文本文件来自动跟踪在 Mac 上输入的每个默认写入和所有其他默认命令字符串。这对于那些经常修改默认命令并且忘记启用或禁用什么,或者只是想在 Mac 上运行所有默认更改的人来说非常有用。

此技巧的另一个优点是它使列表与一般命令历史记录完全分开,这意味着如果 命令历史已清除默认列表将继续存在以供将来参考。

如何自动跟踪 Mac OS 上使用的所有默认命令

我们假设您熟悉终端应用程序,因此请打开它开始使用。

使用您熟悉的命令行文本编辑器,我们将坚持使用 nano,因为它简单且对用户相当友好:

nano ~/.bash_profile

将以下字符串粘贴到 .bash_profile 中的新行

PROMPT_COMMAND='echo "$(history 1 | grep "defaults")" | sed '/^$/d' >> ~/Documents/defaults.txt'

请注意,默认列表文件的标准位置是用户主目录 ~/Documents/ 文件夹中名为“defaults.txt”的文件,如果需要,可以随意更改。

按 Control+O 保存文档,然后按 Control+X 退出 nano

在命令执行中第一次检测到字符串“defaults”时,将生成名为“defaults.txt”的文档。每个新的默认条目都将添加到在其自己的行上添加的数字列表中。

最好在还原后或在新 Mac 上立即启用此功能,这样 defaults.txt 文件将包含给定 Mac 上曾经使用过的所有默认命令的完整列表。

在足够长的时间跟踪一些默认命令后,打开文件将如下所示:

used defaults 写入命令列表

如果你使用 cat 查看文件,你可能会看到类似这样的内容:

501 cat ~/Documents/defaults.txt
502 默认读取 com.apple.Finder
503 默认写入 com.apple.dock springboard-rows -int 4
504默认写入 com.apple.dock springboard-columns -int 4killall Dock
505 默认读取 /Library/Preferences/SystemConfiguration/com.apple.airport.preferences RememberedNetworks
506 默认写入 com.apple.systemsound "com.apple.sound.uiaudio.enabled" -int 1
507 默认读取 com.apple.systemsound
508 默认写入 com.apple.systemsound "com.apple.sound.uiaudio.enabled" - int 0
509 tail -f ~/Documents/defaults.txt

如前所述,它将获取命令语法中带有“默认值”的任何内容,包括使用 cat、tail、nano 以及 defaults.txt 文件本身的任何其他内容。此外,它不仅会跟踪使用默认写入所做的更改,还会跟踪使用默认读取命令读取默认命令或使用默认删除命令删除默认命令的任何时间。

如何将默认跟踪器限制为仅“默认写入”

如果您只想看到“默认写入”字符串,请在 .bash_profile 中使用以下内容:

PROMPT_COMMAND='echo "$(history 1 | grep "defaults write")" | sed '/^$/d' >> ~/Documents/defaults-write.txt'

无论您使用哪种方式,生成的文件都是通用文本文档,也可以在 nano、vi、TextEdit、TextWrangler、BBedit、emacs 或任何首选客户端中打开。这不仅可以方便地跟踪系统管理目的,还可以方便地与朋友和同事共享列表。

感谢 Mike 在我们的评论。