見出し画像

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) セキュリティリスク

記録される内容にパスワードや機密情報が含まれる可能性があるため、運用ルールの明確化が必要。


5. 補足:制御コード(カラーコード)がそのまま記録されます


いいなと思ったら応援しよう!