ターミナルの履歴を記録する方法


  1. Bash の履歴を記録する方法: Bash シェルでは、デフォルトでコマンド履歴が保存されます。~/.bash_history ファイルに履歴が記録されています。このファイルを参照することで、過去のコマンドを確認することができます。

  2. シェルスクリプトを使用して履歴を記録する方法: シェルスクリプトを作成して、ターミナルの履歴をログファイルに記録することもできます。以下は、Bash シェルでの例です。

#!/bin/bash
LOG_FILE="$HOME/terminal_history.log"
# 履歴をログファイルに追加する関数
append_to_log() {
    timestamp=$(date "+%Y-%m-%d %H:%M:%S")
    command="$*"
    echo "[$timestamp] $command" >> "$LOG_FILE"
}
# プロンプトコマンドの実行時に呼び出される関数
prompt_command() {
    # 直前のコマンドを記録
    if [ $? -eq 0 ]; then
        append_to_log "$BASH_COMMAND"
    fi
}
# プロンプトコマンドを設定
PROMPT_COMMAND="prompt_command"

上記のスクリプトを ~/.bashrc ファイルに追加します。これにより、コマンドの実行ごとにログファイルに記録されます。

  1. 「script」コマンドを使用して履歴を記録する方法: Unix ベースのシステムでは、「script」というコマンドを使用してターミナルのセッションを記録することもできます。
script ~/terminal_session.log

上記のコマンドを実行すると、ターミナルのセッションが ~/terminal_session.log ファイルに記録されます。

以上の方法を使用することで、ターミナルの履歴を記録することができます。各方法には利点や制限がありますので、目的に応じて最適な方法を選択してください。また、ログファイルの場所や形式を変更することもできます。