จะแชร์ประวัติระหว่างแท็บเทอร์มินัลได้อย่างไร


23

ฉันมักพบว่าตัวเองใช้แท็บสองหรือสามแท็บใน Terminal ของฉันใน OS X

ความไม่สะดวกเล็กน้อยคือโดยค่าเริ่มต้นแท็บจะไม่แบ่งปันประวัติคำสั่งของพวกเขา ดังนั้นการค้นหาคำสั่งก่อนหน้านี้ที่ฉันรันบนแท็บอื่นโดยการพิมพ์history | grep thingIamlooking forไม่พบมัน

มีวิธีบังคับให้แท็บเทอร์มินัลแบ่งปันประวัติหรือมีคำสั่ง " history_of_all_tabs " อื่น ๆบ้างไหม?

คำตอบ:


29

ฉันไม่คิดว่าจะมีวิธีการแบ่งปันประวัติระหว่างแท็บเทอร์มินัลเท่านั้น แต่นี่คือสิ่งที่สามารถช่วยคุณได้

ประวัติไม่ใช่สิ่งที่จัดการโดยเทอร์มินัลของคุณ แต่โดยเชลล์ (bash, tcsh, zsh ฯลฯ )

นี่คือตัวเลือกบางอย่างที่จะช่วยคุณตั้งค่าประวัติที่ใช้ร่วมกันระหว่างหน้าต่างเทอร์มินัลทั้งหมด (อินสแตนซ์เชลล์)

สิ่งนี้ควรอยู่ใน.bashrcไฟล์ของคุณ

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

1
+.5 สำหรับคำตอบที่ดีสำหรับ +.5 ไวยากรณ์ดี;)
แมตต์

โซลูชันของ @ Lifely ไม่ได้ผลสำหรับฉันใน El Capitan เลย แม้แต่ความยาวสูงสุดของไฟล์ประวัติ มีวิธีแก้ปัญหาใหม่ตั้งแต่ปี 2012 หรือไม่? (ฉันมีความเห็นข้างต้น แต่ไม่ได้มีตัวแทน)
JP ดัฟฟี่

1
นี่ใช้งานได้สำหรับฉัน (เพิ่มใน. bash_profile) ใน El Capitan ด้วยการเพิ่มการส่งออก SHELL_SESSION_HISTORY = 0 ใน. bash_profile และการใช้งานของฉัน: แตะ ~ / .bash_sessions_disable
Andy

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