ประวัติคำสั่ง Bash ไม่ทำงาน


13

ประวัติคำสั่งระหว่างเซสชันไม่ได้รับการบันทึก ฉันใช้ guake และประวัติของเซสชั่นก็ใช้งานได้ดี

ฉันสังเกตเห็นว่า. bash_historyมีคำสั่งบางอย่างที่ฉันเรียกใช้ในsudo -sโหมดและลองเหมือนกันอีกครั้งและคำสั่งทั้งหมดในขณะที่อยู่ในเซสชันจึงถูกบันทึกไว้ดังนั้นฉันจึงลองchmod 777 .bash_history

ตอนนี้คำสั่งเก่าจะปรากฏขึ้นที่จุดเริ่มต้นของเซสชัน แต่ไม่มีคำสั่งใหม่ที่ได้รับการบันทึก

ขอบคุณล่วงหน้า


2
ดังนั้น ... คุณพยายามทำอะไรกันแน่ คุณดูเหมือนจะไม่ถามคำถามที่นี่: /
Thomas Ward

4
โหมด 777 นั้นไม่จำเป็นโดยเฉพาะอย่างยิ่งไม่มีอะไรเกี่ยวข้องกับการตั้งค่าสถานะ 'ปฏิบัติการ' (โหมดเริ่มต้นคือ 600) ~/.bash_historyได้รับการเขียนเมื่อคุณออกจากระบบ (ไปถึงใหม่คำสั่งคุณสามารถใช้historyคำสั่ง) แต่ฉันก็ไม่เห็นปัญหาเช่นกัน ..
Onedinkenedi

คำตอบ:


16

คำสั่งไม่สามารถมองเห็นได้เพราะ Bash บันทึกประวัติลงในไฟล์. bash_history หลังจากเชลล์หยุดทำงานและสิ่งนี้เกิดขึ้นได้ยากมากเมื่อใช้ Guake มีวิธีแก้ไขง่าย ๆเพื่อให้ Bash ต่อท้ายประวัติ (แทนที่จะเขียนทับไฟล์) หลังจากทุกคำสั่ง

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

4
บริสุทธิ์ยอดเยี่ยม อยากให้ฉันรู้เรื่องนี้เมื่อ 5 ปีที่แล้ว
HDave

8

ที่เกี่ยวข้องโดยทั่วไปแล้วสิ่งนี้จะเสียหายอย่างไรถ้าคุณ sudo คำสั่งก่อนที่คุณจะมีไฟล์. bash_history แล้วมันจะถูกสร้างโดย root แทนที่จะเป็นผู้ใช้ของคุณ



2

อาจเป็นได้ว่ารูทนั้น: รูทเป็นเจ้าของ. bash_history ของคุณ (รูทไม่ควรเป็นเจ้าของผู้ใช้ของคุณควรเป็นเจ้าของ!) ในกรณีนี้คุณต้อง:

#chown user:user .bash_history

นี้เห็นได้ชัดว่าอาจเกิดขึ้นหากคุณทำsudo bashมาก!

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