Theo mặc định, không có nơi nào mà tất cả các lệnh được ghi lại và lưu giữ vô thời hạn, mặc dù ~/.bash_historycó chứa một vài lệnh trong quá khứ (nếu bạn sử dụng bash, đó là vỏ mặc định trong Ubuntu).
Nếu bạn muốn mọi lệnh được nhập vào bashđược ghi lại mãi mãi , bạn phải tự thiết lập nó. Ví dụ: bạn có thể đặt các mục sau trong ~/.bashrctệp của mình để ghi nhật ký tất cả các lệnh được nhập trong trình bashbao vào tệp ~/.command_log:
# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
trap "caller >/dev/null || \
printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\
\$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi
Ở trên đặt bẫy trên DEBUG, được thực thi ngay trước khi một lệnh thông thường được thực thi. Các callerbuilt-in được sử dụng để kiểm tra xem các lệnh đã được gõ vào một vỏ tương tác hoặc chạy qua một cái gì đó giống như ~/.bashrc. Giá trị ${BASH_COMMAND}chứa lệnh hiện đang được thực thi.