Bagaimana cara menyimpan riwayat scrollback di byobu?

23

Saya memiliki sesi terminal yang menarik di byobu , dan saya ingin menyimpan output terminal (perintah dan semua) ke file - bagaimana saya bisa melakukan itu?

Menurut halaman manual byobu :

Ctrl-a ~ - Simpan buffer scrollback jendela saat ini

Ini memang mungkin melakukan sesuatu, tetapi saya tidak menemukan indikasi di mana dan dengan nama apa itu mungkin disimpan.

drevicko
sumber

Jawaban:

21

Atau, Anda cukup menggunakan hotkey Byobu untuk ini:

  • Shift-F7

Itu akan mengambil riwayat Anda dan memasukkannya ke editor favorit Anda. Sekarang, simpan saja buffer itu ke file. Jika Anda berada di vi atau vim, Anda bisa menggunakan:wq /tmp/out

Dustin Kirkland
sumber
sift-F7 tampaknya tidak melakukan apa-apa dan layar bantuan byobu juga tidak menyebutkannya - Saya menggunakan byobu 5.17 dengan tmux 1.6 di ubuntu.
drevicko
Ini luar biasa, menyelamatkan saya banyak waktu!
Ctrl-C
1
Saya menjalankan byobu 5.74 dan opsi itu muncul untuk saya di layar bantuan dan berfungsi seperti yang dijelaskan. Saya akan terkejut jika itu tidak terjadi mengingat Dustin adalah pencipta byobu. :) Layak disebutkan output disimpan di $BYOBU_RUN_DIR/printscreen(seperti yang tercantum pada layar bantuan).
Chuim
2
Bagi saya itu disimpan ke /dev/shm/byobu-serg-ucvwj2rJ/printscreen, di mana serg jelas-jelas adalah nama pengguna saya
Sergiy Kolodyazhnyy
1
Saya tahu ini adalah jawaban lama. Bagaimanapun, saya mengalami masalah yang sama: shift-F7 tampaknya tidak melakukan apa-apa (meskipun pintasan ada di menu bantuan). Saya menggunakannya pada host Ubuntu-16.04 dengan versi byobu 5.106 & tmux 2.1.
Marc
20

Sebuah pertanyaan lama masih belum bisa dijawab dengan baik, dan saya perlu lagi.

Kali ini saya menemukan solusi yang bisa diterapkan. Dari 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. Saya menekan F7untuk masuk ke mode scrollback,
  2. Space untuk mulai memilih,
  3. gg untuk menggulir ke atas buffer (terima kasih @GeorgeMarian)
    • Jika itu tidak berhasil, coba ini: baik dengan banyak Page upatau :diikuti oleh nomor baris terbesar (ditunjukkan kanan atas) dan Page upuntuk sampai ke bagian atas halaman itu,
  4. Enter untuk menyalin (ke clipboard byobu, bukan terminal / sistem),
  5. lalu cat > my-byobu-dump.txtdi terminal,
  6. Alt+ Insertatau ctrl+ A+ ]untuk menempel (lagi, dari clipboard byobu)
  7. Ctrl+ Duntuk menutup file.
drevicko
sumber
Ini adalah satu-satunya jawaban yang bekerja dengan baik untuk saya.
pjvandehaar
1
Untuk langkah 3, jika Anda ingin mencapai penggunaan tertinggi gg(seperti halnya vim).
George Marian
@ GeorgeMarian Apakah Anda tahu kalau itu dari mode emulasi-vim? akankah orang menemukan perilaku lain? Tampaknya perilaku default (setidaknya dengan byobu 5.17 lebih dari tmux 1.6)
drevicko
Tidak ada mode emulasi-vim di byobu yang saya tahu. Ada perintah pergerakan vi-like dalam mode scrollback , dan mungkin di tempat lain. Saya kebetulan mencobanya, karena - yah - Linux. (Saya telah menggunakan lessbanyak akhir-akhir ini, mencari dan bergerak.)
George Marian
baik. mungkinkah itu berasal dari teknologi multipleks yang mendasarinya (layar atau tmux)? Bagaimanapun, saya telah menambahkan saran Anda. Terima kasih banyak :)
drevicko
3

Shift + F7 hanya berfungsi seperti yang diharapkan jika Anda memiliki variabel lingkungan EDITOR diatur ke editor dalam byobu . Untuk beberapa alasan, dalam beberapa kasus (misalnya untuk saya ketika menghubungkan melalui SSH ke komputer lain), pengaturan variabel ~/.profileini tidak cukup. Satu tempat untuk mengaturnya sehingga byobu selalu membacanya ~/.bashrc. Salin sesuatu seperti yang berikut ini ke Anda ~/.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'
scottkosty
sumber
Dalam kasus saya, ini tidak membantu (sebenarnya .bashrc adalah tempat saya mengatur EDITOR). Sejauh yang saya tahu, emulator terminal saya (osx default Terminal program) tidak meneruskan tombol fungsi dengan benar - mungkin dapat dipecahkan dalam pengaturan Terminal, tetapi solusi ctrl-A bekerja ok untuk saya.
drevicko
1
@drevicko ah saya mengerti, senang tahu. Nah, itu bagus bahwa kami mengumpulkan beberapa solusi sehingga mudah-mudahan salah satu dari mereka akan bekerja untuk orang berikutnya yang menemukan masalah ini.
scottkosty
fyi: .profile tidak dimuat untuk sesi ssh secara default - menjelaskan apa yang terjadi di sini.
drevicko
2

Jika Anda terbiasa tidak menggunakan tombol-F maka ini mungkin bekerja untuk Anda:

  • Ctrl+ a, [: Masuk ke mode scrollback
  • Space masuk ke mode salin (opsional)
  • Enter keluar dari scrollback atau mode salin
  • Ctrl+ a, ]: Tempelkan apa yang disalin
Ikar Pohorský
sumber
Juga jika program terminal Anda mencegat tombol-F;)
drevicko
1

Gunakan Ctrl+ A+ ~untuk menyalin buffer scrollback ke clipboard byobu.

Rekatkan teks ke dalam editor menggunakan Alt+ insert atau Ctrl+ A+ ].

(Sesuaikan Ctrl+ Ajika Anda telah mengubah kunci melarikan diri Anda.)

chupchik
sumber
Saya hanya menggunakan Mac untuk bekerja saat ini, dan ctrl-a ~ lalu ctrl-a] tidak melakukan apa-apa - saya curiga ctrl-a tidak membuatnya byobu (yang ada di ujung lain dari ssh tunnel) .. Ada ide?
drevicko
0

Pilih teks yang ingin Anda simpan, lalu tekan Control+ Shift + C Selanjutnya, buka editor teks favorit Anda. Kemudian tempel konten di sini menggunakan Control+ V . Akhirnya simpan file di lokasi yang diinginkan.

TIP TERMINAL DARI HARI: Ketika mencoba menyalin sesuatu di terminal, lakukan seperti biasa, harap gunakan Control+ Shift + Calih-alih Control+ C, dan tempel seperti biasa. Untuk menempelkan sesuatu yang ada di clipboard ke terminal gunakan Control+ Shift + V.

Cammy_the_block
sumber
itu hanya skema copy paste sederhana, akan membuang waktu untuk menyalin dan kemudian menempel. drevicko ingin melakukannya melalui terminal atau secara otomatis menyimpannya di suatu tempat.
Sukupa91
Bukankah dia bilang aku ingin menyimpan semuanya ke file? Ini caranya dia melakukannya.
Cammy_the_block
1
Tidak, saya yakin Anda hanya akan mendapatkan nilai layar - bukan seluruh sejarah scrollback byobu (mungkin 10.000 baris) ... Perhatikan bahwa byobu menyimpan riwayat terminal yang tidak tergantung pada aplikasi terminal yang Anda gunakan.
drevicko
Jika Anda memegang mouse di atas jendela itu akan menggulir ke atas sehingga Anda dapat menyorot semuanya.
Cammy_the_block
2
@Cammy_the_block Anda melewatkan bit "byobu", lihatlah (hal yang SANGAT berguna jika Anda bekerja pada server jarak jauh). Ini menyimpan sesi terminal yang dapat Anda putuskan dan kemudian hubungkan kembali. Saya memiliki 10.000 baris riwayat terminal yang TIDAK dapat diakses oleh aplikasi terminal lokal. Byobu (dan backend yang digunakannya: tmux atau layar) memiliki seperangkat perintah yang digerakkan papan ketik untuk mengakses riwayat itu.
drevicko
0

Ctrl+ A+ ]akan berfungsi jika Anda mengetik 1 hingga 20 kali atau lebih dengan abracodabra. Tetapi satu-satunya perintah akan bekerja tanpa sakit kepala. Untuk menempelkan teks dari buffer ke terminal atau file. Dan pemenangnya adalah Alt+ Ins., Sapa Byobu adalah perangkat lunak GPLv3, yang ditulis dan dikelola oleh Dustin Kirkland.

bemonolit
sumber
0

Jika Anda perlu menyimpan histori gunakan Shift + F7shorcut. Seperti kata @ dustin-kirkland .

Jika Anda lebih suka menggulir ke atas dan ke bawah di terminal Anda, itu tergantung apakah Anda menggunakan tmux atau layar. Contoh:

  1. Screeen:

    • CTRL + a: Jika Anda menggunakan [itu, Anda masuk dalam mode gulir seperti kata @ ikar-pohorský .
  2. Tmux:

    • ALT + PageUp: Anda gulir ke atas.
    • ALT + PageDown: Anda gulir ke bawah.

Bantuan Byobu F1

mrroot5
sumber