บันทึกประวัติทุบตีเป็นประจำ


9

ฉันได้ตั้งค่า bash เพื่อบันทึกประวัติลงในไฟล์ มันทำได้เมื่อใดก็ตามที่ bash ออก [เหมาะสม] เนื่องจากบางครั้ง bash ไม่ออกอย่างถูกต้องประวัติจะสูญหาย

ดังนั้นคำถามคือฉันสามารถตั้งค่า bash เพื่อบันทึกประวัติได้เป็นประจำหรือไม่


ฉันใช้ Debian Gnu (รุ่น 6, Squeeze) ด้วยเคอร์เนล Linux

รุ่น bash: GNU bash, รุ่น 4.1.5 (1) - ปล่อย (i486-pc-linux-gnu)

คำตอบ:


8

บันทึกสิ่งนี้ลงใน bash_profile หรือ bashrc ของคุณ

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"


นี่ยังเป็นคำตอบที่ถูกต้องหรือไม่? ในระบบของฉันมีรายการภายใต้shopt -s histappend /etc/bash/bashrcถึงกระนั้นการออกจากที่ไม่สะอาดในการใช้งานเชลล์จะสูญเสียประวัติบรรทัดคำสั่ง
Nikos Alexandris

-1

เป็นไปได้ว่าคุณสามารถ $ HISTFILE เป็นเจ้าของได้ สมมติว่าคุณใช้ bash เป็นเชลล์ล็อกอินของคุณ นี่คือวิธีการตรวจสอบ:

$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history

ค่าเริ่มต้นสำหรับ HISTFILE ควรเป็น ~ / .bash_history หากคุณเห็นข้อผิดพลาด "ต้องตั้งค่า HISTFILE" หรือถ้า $ HISTFILE ไม่ใช่ ~ / .bash_history คุณควรตรวจสอบ ~ / .bash_profile หรือ ~ / .bash_profile หรือ ~ / bashrc เพื่อให้แน่ใจว่าไม่ได้รับการตั้งค่าหรือรีเซ็ตอย่างไม่ถูกต้อง

ปกติแล้วมันจะเป็นของ root เท่านั้นดังนั้นให้รีเซ็ตมัน:

$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history

ออกจากระบบจากนั้นเข้าสู่ระบบ

$ history

ควรแสดงชุดคำสั่งสุดท้ายที่ป้อนก่อนที่ไฟล์จะเป็นเจ้าของโดย root ตามด้วยคำสั่งที่ป้อนหลังจากเปลี่ยนความเป็นเจ้าของไฟล์


3
เนื่องจาก OP บอกว่าประวัติถูกบันทึกไว้เมื่อ bash ออกตามปกติปัญหาของเขาไม่มีส่วนเกี่ยวข้องกับการอนุญาต บางทีคำตอบของคุณอาจเป็นประโยชน์สำหรับคนที่มีปัญหาเกี่ยวกับประวัติทุบตี
Dmitry Grigoryev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.