macOS小技:ターミナルのコマンドログ自動記録(script コマンド活用)
1. 概要
.zshrcに特定の設定を記述することで、ターミナルを起動するたびにすべての操作ログ(コマンドと出力)を自動的に記録する。この設定は、作業履歴の管理や障害発生時の追跡のため。
2. .zshrcに記載したコード
if [ -z "$SCRIPT_STARTED" ]; then
export SCRIPT_STARTED=yes
script "$HOME/terminal_log_$(date "+%Y-%m-%d_%H%M%S").log"
fi各行の解説
if [ -z "$SCRIPT_STARTED" ]; then
環境変数SCRIPT_STARTEDが空(まだ未設定)の場合だけ以下の処理を実行。無限ループ防止のための判定。
export SCRIPT_STARTED=yes
フラグを立て、以降のzshのプロセスでこの処理が再実行されないようにする。
script "$HOME/terminal_log_$(date "+%Y-%m-%d_%H%M%S").log"
scriptコマンドを実行。現在時刻を含むファイル名でログファイルを作成し、以後のセッションを記録。
3. script コマンドとは?
機能:ターミナルでのやり取りをすべて記録する。
使い方:
script ファイル名終了方法:
exit または Ctrl+D。
4. 注意点
(1) ログファイルが大量に作られる
ターミナルを開くたびに新しいログファイルが生成されます。放置するとディスク容量を圧迫します。定期的な整理が必要。
(2) セキュリティリスク
記録される内容にパスワードや機密情報が含まれる可能性があるため、運用ルールの明確化が必要。
