
自宅でこのチュートリアルを実践してきた方は、ターミナルアプリを使ってMacに何度か変更を加えたことがあるでしょう。きっと、これらの変更はすべてスプレッドシートで管理しているでしょう?もし後から変更内容を確認したいと思ったらどうしますか?データベースなどに一つ一つ手作業で入力する以外に、どうやって変更内容を追跡できるでしょうか?さて、今日のヒントでは、このプロセスを自動化し、すべての変更を自動的にテキストファイルに保存する方法をご紹介します。
まず、ターミナルの履歴コマンドを利用します。ユーティリティフォルダ(通常はアプリケーションフォルダ内)からアプリを起動し、「」と入力してhistory
リターンキーを押します。すると、ターミナルに過去500件までのコマンド履歴が表示されます。
ただ、これでは説明が長くなりすぎるので、このヒントコラムで紹介してきたデフォルトの書き込みコマンドに絞って解説しましょう。特定のテキスト文字列を検索するためのコマンドラインユーティリティであるgrepを使えば、履歴リストを特定のコマンドだけに絞り込むことができます。ターミナルに以下のコマンドを入力し、Returnキーを押します。
history | grep "defaults write"
ターミナルで実行したデフォルトの書き込みコマンドのみの分かりやすいリストが表示されます。ただし、500個のコマンドを実行すると、最初のコマンドはこのリストから消えてしまうことに気付くかもしれません。grep検索の結果をすべて保存するテキストファイルを作成するコマンドを以下に示します。
history | grep "defaults write" >> ~/Documents/defaultsLog.txt
これにより、検索結果が「defaultsLog.txt」というテキストファイルに書き込まれ、ドキュメントフォルダに保存されます。ここからが大変(そしてとても便利な)部分です。もう一度アプリケーションフォルダに戻り、テキストエディットを開きます。ファイルメニューから「開く」を選択し、ホームフォルダに移動します。Command+Shift+ピリオドを押して隠しファイルを表示し、表示されたリストから.bash_profileファイルを選択します。もし見つからない場合は、ホームフォルダに新しいファイルを作成し、.bash_profileという名前を付けて、上記のように開きます。そして、ファイルの末尾(空のファイルを作成した場合は先頭)に次のコードを追加します。
PROMPT_COMMAND='echo "$(history 1 | grep "defaults write")" | sed '/^$/d' >> ~/Documents/defaultsLog.txt'
このスクリプトは、ターミナルに新しいコマンドプロンプトが表示されるたびに、上記の手順で作成したリストドキュメントに内容を追加します。とても便利ですよね?
[出典: Mac OS X のヒント]
OS X に関するヒントはありますか? OS X のトラブルシューティングでサポートが必要ですか? メッセージをお送りいただくか、下記にコメントを残してください。