จะบันทึกประวัติเทอร์มินัลด้วยตนเองได้อย่างไร


33

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

ฉันใช้ gnome-terminal กับ Ubuntu 12.10

คำตอบ:


17

คำตอบในลิงก์ที่คุณให้ไว้จากไซต์ Super-Users ไม่ควรถูกมองว่าเป็น 'การแก้ปัญหา' กับhistoryพฤติกรรมเริ่มต้นของคำสั่ง เปลือกทุบตีมีสติบางอย่างออกจากกล่องพฤติกรรมเริ่มต้น

ฉันขอแนะนำอย่างยิ่งให้อ่านฉันจะหลีกเลี่ยงการสูญเสียบรรทัดประวัติศาสตร์ได้อย่างไร สำหรับคำอธิบายว่าการแก้ไขเหล่านี้historyกำลังทำอะไร นอกจากนี้ยังมีข้อกังวลที่สมเหตุสมผลที่ควรระวังว่าทำไมนี่จึงไม่ใช่พฤติกรรมเริ่มต้นของhistoryคำสั่ง

  • ประสิทธิภาพ - เมื่อคุณกำลังบันทึกทุกคำสั่งจากหน้าต่างทุกครั้งhistory -aที่.bash_historyไฟล์สามารถเจริญเติบโตได้ขนาดค่อนข้างใหญ่และต้องใช้ทรัพยากรมากขึ้นในการโหลดเปลือกทุบตี ซึ่งอาจส่งผลให้เวลาเริ่มต้นทำงานนานขึ้น (สำหรับเซสชันเทอร์มินัลของคุณไม่ใช่การเริ่มต้นระบบโดยรวมต่อครั้ง)

  • องค์กร - (จากบทความข้างต้น) "คำสั่งประวัติของเชลล์แบบโต้ตอบพร้อมกัน (สำหรับผู้ใช้ที่กำหนด) จะถูกรวมเข้าด้วยกันดังนั้นประวัติจึงไม่ใช่รายการลำดับของคำสั่งที่รับประกันว่าจะถูกดำเนินการในเชลล์เดียว"

หากคุณมีความกังวลเกี่ยวกับการรักษาความปลอดภัยเปลือกทุบตีและ bash_historyไฟล์ผ่านการตรวจสอบดูที่บทความนี้: ฉันจะบันทึกประวัติหรือทุบตี "ปลอดภัย" กับการลบประวัติได้อย่างไร

ในบางโอกาส (เช่นระบบที่ไม่เสถียรหรือไฟฟ้าขัดข้อง) ฉันพบว่าคำสั่งด้านล่างมีประโยชน์

เพิ่มบรรทัดต่อไปนี้ใน~/.bashrcไฟล์ของคุณ:

unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND

shopt -s histappend

ต้องแน่ใจว่าแหล่ง.bashrcไฟล์ของคุณใช้คำสั่งsource ~/.bashrc


39

คำตอบที่ทำงานง่ายที่สุดสำหรับคำถาม "วิธีบันทึกประวัติเทอร์มินัลด้วยตนเอง":

history -a

มันอาจคุ้มค่าที่จะพิจารณาเปลี่ยนเป็น zsh ซึ่งมีsetopt inc_append_history("บันทึกทุกคำสั่งก่อนที่จะถูกเรียกใช้งาน")

และคำถามนี้ก็มีความเกี่ยวข้องเช่นกัน: เป็นไปได้ไหมที่จะเขียนถึง. bash_history ทันที?


24

หากต้องการบันทึกประวัติทุบตีด้วยตนเองไปยังไฟล์:

history -w ~/history.txt
vim ~/history.txt

มันส่งออกประวัติไปยังไฟล์ที่เรียกว่า history.txt จากนั้นคุณสามารถดูได้โดยใช้เครื่องมือแก้ไขที่คุณชื่นชอบ

คัดลอกคำตอบจาก http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/

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