ตามค่าเริ่มต้นไม่มีที่ที่คำสั่งทั้งหมดจะถูกบันทึกและเก็บไว้อย่างไม่มีกำหนดแม้ว่าจะ~/.bash_history
มีคำสั่งไม่กี่ครั้งที่ผ่านมา (หากคุณใช้bash
ซึ่งเป็นเชลล์เริ่มต้นใน Ubuntu)
หากคุณต้องการให้ทุกคำสั่งพิมพ์ลงในbash
บันทึกอย่างถาวรคุณจะต้องตั้งค่าด้วยตนเอง ตัวอย่างเช่นคุณสามารถใส่~/.bashrc
คำสั่งต่อไปนี้ในไฟล์ของคุณเพื่อบันทึกคำสั่งทั้งหมดที่พิมพ์ในbash
เชลล์ลงในไฟล์~/.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
ด้านบนตั้งค่ากับดักDEBUG
ซึ่งจะถูกดำเนินการก่อนที่คำสั่งปกติจะถูกดำเนินการ ในตัวจะใช้ในการทดสอบว่าคำสั่งจะถูกพิมพ์ลงในเปลือกโต้ตอบหรือวิ่งผ่านสิ่งที่ต้องการcaller
~/.bashrc
ค่า${BASH_COMMAND}
มีคำสั่งที่กำลังดำเนินการในปัจจุบัน