จะบันทึกประวัติ scrollback ใน byobu ได้อย่างไร?


23

ฉันมีเซสชันเทอร์มินัลที่น่าสนใจในbyobuและฉันต้องการบันทึกเอาท์พุทเทอร์มินัล (คำสั่งและทั้งหมด) ลงในไฟล์ - ฉันจะทำเช่นนั้นได้อย่างไร

ตามหน้าคน byobu :

Ctrl-a ~ - บันทึกบัฟเฟอร์การเลื่อนของหน้าต่างปัจจุบัน

นี่อาจจะทำอะไรบางอย่าง แต่ฉันไม่พบสิ่งที่บ่งบอกว่ามันถูกบันทึกไว้ที่ไหนและภายใต้ชื่ออะไร

คำตอบ:


21

หรือคุณสามารถใช้ปุ่มลัดของ Byobu สำหรับสิ่งนี้:

  • Shift-F7

ที่จะนำประวัติของคุณมาใส่ไว้ในโปรแกรมแก้ไขรายการโปรดของคุณ ตอนนี้เพียงบันทึกบัฟเฟอร์นั้นลงในไฟล์ หากคุณอยู่ใน vi หรือ vim คุณสามารถใช้:wq /tmp/out


sift-F7 ดูเหมือนจะไม่ทำอะไรเลยและหน้าจอช่วยเหลือ byobu ไม่ได้พูดถึงมัน - ฉันใช้ byobu 5.17 กับ tmux 1.6 ใน Ubuntu
drevicko

มันยอดเยี่ยมมากช่วยฉันได้เยอะเลย!
Ctrl-C

1
ฉันใช้งาน byobu 5.74 และตัวเลือกนั้นจะปรากฏขึ้นให้ฉันในหน้าจอความช่วยเหลือและทำงานตามที่อธิบายไว้ ฉันจะแปลกใจถ้านั่นไม่ใช่กรณีที่ดัสตินเป็นผู้สร้างของ byobu :) มูลค่าการกล่าวขวัญเอาท์พุทจะถูกบันทึกไว้ที่$BYOBU_RUN_DIR/printscreen(ตามที่ระบุไว้ในหน้าจอความช่วยเหลือ)
Chuim

2
สำหรับฉันมันถูกบันทึกไว้/dev/shm/byobu-serg-ucvwj2rJ/printscreenที่ serg เห็นได้ชัดว่าชื่อผู้ใช้ของฉัน
Sergiy Kolodyazhnyy

1
ฉันรู้ว่านี่เป็นคำตอบเก่า อย่างไรก็ตามฉันพบปัญหาเดียวกัน: shift-F7 ดูเหมือนจะไม่ทำอะไรเลย (แม้ว่าทางลัดจะปรากฏในเมนูช่วยเหลือ) ฉันใช้มันกับโฮสต์ Ubuntu-16.04 กับ byobu รุ่น 5.106 & tmux 2.1
Marc

20

คำถามเก่ายังไม่สามารถตอบได้และฉันก็ตอบสนองความต้องการอีกครั้ง

ครั้งนี้ฉันพบวิธีแก้ปัญหาที่ใช้การได้ จากman byobu:

SCROLLBACK, COPY, PASTE MODES

   Each  window  in  Byobu  has  up to 10,000 lines of scrollback history,
   which you can enter and navigate using the alt-pgup and alt-pgdn  keys.
   Exit  this  scrollback mode by hitting enter.  You can also easily copy
   and paste text from scrollback mode.  To do so, enter scrollback  using
   alt-pgup  or  alt-pgdn,  press the spacebar to start highlighting text,
   use up/down/left/right/pgup/pgdn to select the text, and press enter to
   copy  the  text.  You can then paste the text using alt-insert or ctrl-
   a-].
  1. ฉันกดปุ่มF7เพื่อเข้าสู่โหมดเลื่อน
  2. Space เพื่อเริ่มการเลือก
  3. gg เพื่อเลื่อนไปที่ด้านบนของบัฟเฟอร์ (ขอบคุณ @GeorgeMarian)
    • หากวิธีนี้ใช้ไม่ได้ให้ลองสิ่งนี้: มีจำนวนมากPage upหรือ:ตามด้วยหมายเลขบรรทัดที่ใหญ่ที่สุด (ระบุด้านบนขวา) และPage upไปที่ด้านบนของหน้านั้น
  4. Enter เพื่อคัดลอก (ไปยังคลิปบอร์ดของ byobu ไม่ใช่เทอร์มินัล / ระบบ)
  5. จากนั้นcat > my-byobu-dump.txtในสถานี
  6. Alt+ Insertหรือctrl+ A+ ]วาง (อีกครั้งจากคลิปบอร์ด byobu ของ)
  7. Ctrl+ Dเพื่อปิดไฟล์

นี่เป็นคำตอบเดียวที่ทำงานได้ดีสำหรับฉัน
pjvandehaar

1
สำหรับขั้นตอนที่ 3 ถ้าคุณต้องการใช้ให้ได้ประโยชน์สูงสุดgg(เช่นเดียวกับเสียงเรียกเข้า)
George Marian

@GeorgeMarian คุณรู้หรือไม่ว่าเป็นโหมด vim-emulation? ผู้คนจะพบกับพฤติกรรมอื่น ๆ ดูเหมือนพฤติกรรมเริ่มต้น (อย่างน้อยกับ byobu 5.17 มากกว่า tmux 1.6)
drevicko

ไม่มีโหมด vim-emulation ใน byobu ที่ฉันรู้ มีคำสั่งเคลื่อนไหวเหมือน vi ในโหมด scrollbackและที่อื่น ๆ ฉันเพิ่งเกิดขึ้นลองพวกเขาตั้งแต่ - ดี - Linux ( lessเมื่อเร็ว ๆ นี้ฉันใช้เวลาค้นหาและเคลื่อนไหวไปรอบ ๆ )
George Marian

ตกลง. มันอาจมาจากเทคโนโลยีมัลติเพล็กซ์ (หน้าจอหรือ tmux)? อย่างไรก็ตามฉันได้เพิ่มข้อเสนอแนะของคุณ ขอบคุณมาก :)
drevicko

3

Shift + F7 เพียงทำงานตามที่คาดถ้าคุณมีชุดตัวแปรสภาพแวดล้อม EDITOR เพื่อแก้ไขภายใน byobu ด้วยเหตุผลบางอย่างในบางกรณี (เช่นสำหรับฉันเมื่อเชื่อมต่อผ่าน SSH ไปยังคอมพิวเตอร์เครื่องอื่น) การตั้งค่าตัวแปร~/.profileนี้ไม่เพียงพอ ที่เดียวที่จะตั้งค่าเพื่อให้ byobu อ่านมันอยู่~/.bashrcเสมอ คัดลอกสิ่งต่อไปนี้ไปยังของคุณ~/.bashrc:

# Although this is set in ~/.profile, it is set here as well so that in a 
# remote byobu session, Shift+F7 copies the output to a Vim buffer. See:
# /ubuntu/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'

ในกรณีของฉันสิ่งนี้ไม่ได้ช่วย (อันที่จริงแล้ว. bashrc เป็นที่ที่ฉันตั้ง EDITOR ต่อไป) เท่าที่ฉันสามารถบอกได้เทอร์มินัลอีมูเลเตอร์ของฉัน (โปรแกรมเทอร์มินัลเริ่มต้น osx) ไม่ส่งผ่านปุ่มฟังก์ชั่นอย่างถูกต้อง - อาจแก้ไขได้ในการตั้งค่าของเทอร์มินัล
drevicko

1
@drevicko อาฉันรู้ดีรู้ นั่นเป็นเรื่องดีที่เรากำลังรวบรวมวิธีแก้ไขปัญหาหลายอย่างเพื่อให้หวังว่าหนึ่งในนั้นจะทำงานให้กับบุคคลต่อไปที่พบปัญหานี้
scottkosty

fyi :. profile ไม่ได้โหลดสำหรับเซสชัน ssh โดยค่าเริ่มต้น - อธิบายสิ่งที่เกิดขึ้นที่นี่
drevicko

2

หากคุณไม่คุ้นเคยกับการใช้ปุ่ม F สิ่งนี้อาจใช้ได้กับคุณ:

  • Ctrl+ a, [: เข้าสู่โหมด scrollback
  • Space เข้าสู่โหมดคัดลอก (ตัวเลือก)
  • Enter ออกจากโหมดเลื่อนหรือคัดลอก
  • Ctrl+ a, ]: วางสิ่งที่ถูกคัดลอก

นอกจากนี้หากโปรแกรมเทอร์มินัลของคุณดักคีย์ F);
drevicko

1

ใช้Ctrl+ A+ ~เพื่อคัดลอกบัฟเฟอร์การเลื่อนไปยังคลิปบอร์ด byobu

วางข้อความลงในโปรแกรมแก้ไขโดยใช้Alt+ insert หรือCtrl+ +A]

(ปรับCtrl+ Aถ้าคุณเปลี่ยนรหัส Escape ของคุณ)


ฉันมีเพียง Mac ที่ทำงานได้ในขณะนี้และ ctrl-a ~ จากนั้น ctrl-a] ไม่ได้ทำอะไรเลย - ฉันสงสัยว่า ctrl-a จะไม่ทำให้เป็น byobu (ซึ่งอยู่อีกด้านหนึ่งของ ssh tunnel) .. ความคิดใด ๆ
drevicko

0

เลือกข้อความที่คุณต้องการบันทึกจากนั้นกดControl+ Shift + C ถัดไปเปิดโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ จากนั้นวางเนื้อหาที่นี่ใช้+Control V ในที่สุดให้บันทึกไฟล์ในตำแหน่งที่ต้องการ

TERMINAL TIP ประจำวัน: เมื่อพยายามคัดลอกบางอย่างในเทอร์มินัลทำตามปกติคาดว่าจะใช้Control+ Shift + CแทนControl+ Cและวางตามปกติ สำหรับการวางบางสิ่งบางอย่างที่อยู่ในคลิปบอร์ดเข้าไปในขั้วControl+ +Shift V


มันเป็นเพียงรูปแบบการวางสำเนาที่ง่ายจะเสียเวลาในการคัดลอกและวาง drevicko ต้องการทำผ่านเทอร์มินัลหรือบันทึกที่ใดที่หนึ่งโดยอัตโนมัติ
Sukupa91

เขาไม่ได้บอกว่าฉันต้องการบันทึกทุกอย่างลงในไฟล์หรือไม่? นี่เป็นวิธีที่เขาทำ
Cammy_the_block

1
ไม่ฉันเชื่อว่าคุณจะได้รับความคุ้มค่าของหน้าจอไม่ใช่ทั้งหมด (อาจเป็น 10,000 บรรทัด) โดยประวัติของ scrollback byobu ... โปรดทราบว่า byobu เก็บประวัติเทอร์มินัลที่เป็นอิสระจากแอพเครื่องปลายทางที่คุณใช้
drevicko

หากคุณถือเมาส์เหนือหน้าต่างมันจะเลื่อนขึ้นเพื่อให้คุณสามารถเน้นสิ่งทั้งหมด
Cammy_the_block

2
@Cammy_the_block คุณไม่มีบิต "byobu" ค้นหามัน (สิ่งที่มีประโยชน์มากถ้าคุณทำงานบนเซิร์ฟเวอร์ระยะไกล) มันเก็บเซสชันเทอร์มินัลที่คุณสามารถยกเลิกการเชื่อมต่อจากและเชื่อมต่อใหม่ในภายหลัง ฉันมีประวัติเทอร์มินัล 10,000 บรรทัดที่ไม่สามารถเข้าถึงแอปพลิเคชันสถานีปลายทางได้ Byobu (และแบ็กเอนด์ที่ใช้: tmux หรือหน้าจอ) มีชุดของคำสั่งที่ขับเคลื่อนด้วยคีย์บอร์ดเพื่อเข้าถึงประวัตินั้น
drevicko

0

Ctrl+ A+ ]จะทำงานถ้าคุณพิมพ์จาก 1 ถึง 20 เท่าหรือมากกว่าด้วย abracodabra แต่คำสั่งเดียวเท่านั้นที่จะทำงานได้โดยไม่ต้องปวดหัวเมื่อต้องการวางข้อความจากบัฟเฟอร์ไปยังเทอร์มินัลหรือไฟล์ และผู้ชนะคือAlt+ Ins, สวัสดีกับ Byobu คือซอฟต์แวร์ GPLv3 ที่แต่งและดูแลโดย Dustin Kirkland


0

หากคุณต้องการบันทึกประวัติใช้Shift + F7shorcut ชอบ@ dustin-kirklandพูดว่า

หากคุณต้องการเลื่อนขึ้นและลงในเครื่องของคุณมันขึ้นอยู่กับว่าคุณใช้ tmux หรือหน้าจอ ตัวอย่าง:

  1. screeen:

    • CTRL + a: หากคุณใช้งาน[คุณจะเข้าสู่โหมดเลื่อนอย่าง@ ikar-pohorskýพูดว่า
  2. Tmux:

    • ALT + PageUp: คุณเลื่อนขึ้น
    • ALT + PageDown: คุณเลื่อนลง

Byobu F1 ช่วย

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