
デフォルトの記録 Mac OS Xで使用されるコマンドを自動的に書き込む
ターミナルから大量のデフォルト書き込みコマンドを使ってMac OS Xを微調整するのが好きなら、それらのコマンド履歴を追跡するのがいかに大変かは既にご存知でしょう。もちろん、特定のコマンド構文でコマンド履歴を照会したり、grepを使って実行済みのデフォルトコマンドを検索したりすることも可能ですが、それらすべてを追跡するよりよい方法があります。それは、使用されたすべてのデフォルト調整のリストを保存し、自動更新されるテキストファイルを作成することです。これにより、特定のMacでどのデフォルトコマンドが有効または無効になっているかを簡単に追跡できます。
このチュートリアルでは、Macで入力されたすべてのdefaults writeコマンドやその他のdefaultsコマンド文字列を自動的に追跡する方法を説明します。具体的には、これらのコマンドの実行を追跡するテキストファイルを生成します。これは、defaultsコマンドを頻繁にいじっていて、何が有効または無効になっているかを忘れてしまったり、Macでのすべてのdefaultsの変更を常に把握したい場合に非常に便利です。
このトリックのもう 1 つの利点は、リストが一般的なコマンド履歴から完全に分離された状態を保つことです。つまり、コマンド履歴がクリアされても、デフォルト リストは将来の参照用に引き続き保持されます。
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 で使用されたすべてのデフォルト コマンドの完全なリストが含まれます。
いくつかのデフォルト コマンドを追跡できるまで十分に時間が経過すると、ファイルを開くと次のようになります。
cat を使用してファイルを表示すると、次のような表示になります。
501 cat ~/Documents/defaults.txt
502 defaults read com.apple.Finder
503 defaults write com.apple.dock springboard-rows -int 4
504 defaults write com.apple.dock springboard-columns -int 4;killall Dock
505 defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences RememberedNetworks
506 defaults write com.apple.systemsound "com.apple.sound.uiaudio.enabled" -int 1
507 defaults read com.apple.systemsound
508 defaults write com.apple.systemsound "com.apple.sound.uiaudio.enabled" -int 0
509 tail -f ~/Documents/defaults.txt
前述の通り、コマンド構文に「defaults」が含まれるものはすべて取得します。これには、cat、tail、nano、そしてdefaults.txtファイル自体に対するその他の操作も含まれます。さらに、defaults writeによる変更だけでなく、defaults readによるdefaultsコマンドの読み込みや、defaults deleteによるdefaultsコマンドの削除も記録します。
デフォルトトラッカーを「デフォルトの書き込み」のみに制限する方法
'defaults write' 文字列のみを表示したい場合は、代わりに .bash_profile で以下を使用します。
PROMPT_COMMAND='echo "$(history 1 | grep "defaults write")" | sed '/^$/d' >> ~/Documents/defaults-write.txt'
どちらを使用しても、生成されるファイルは汎用的なテキストドキュメントであり、nano、vi、TextEdit、TextWrangler、BBedit、emacsなど、お好みのクライアントで開くことができます。これにより、システム管理のための管理だけでなく、友人や同僚とリストを共有する際にも便利です。
この素晴らしいトリックをコメント欄に残してくれた Mike に感謝します。