Pertanyaan Bagaimana saya memulai layar dengan beberapa perpecahan langsung dari baris perintah?


saya menggunakan screen setelah saya masuk dengan ssh ke server saya. Sampai sekarang saya mengatur perpecahan di jendela layar saya dengan tangan dan menjalankan perintah dengan tangan seperti yang ditunjukkan dalam cuplikan layar berikut:

enter image description here

  • Bagian atas harus dijalankan tail -n 1 -f /home/server/log/access.log.
  • Bagian kanan bawah harus dijalankan htop
  • Yang kiri bawah hanya harus berupa command prompt

Apakah ada cara untuk melakukannya melalui perintah / skrip, jadi saya tidak perlu mengulangnya setiap saat dengan tangan?


10
2017-11-28 01:15


asal


askubuntu.com/questions/645647/default-gnu-screen-screens? - muru
@muru Ini cukup menjawabnya untuk bagian bagaimana memulai layar terpisah, hanya bukan bagian bagaimana cara memerintahkannya langsung seperti yang ditunjukkan di atas. - Videonauth
Segala sesuatu yang dapat dilakukan dengan menggunakan cara pintas di layar dapat dilakukan menggunakan perintah di .screenrc. Untuk pengaturan ini kami punya itu split perintah. - muru


Jawaban:


Untuk kasus pengaturan jendela khusus, ada perintah layar untuk menyimpannya ke file: layout dump. Dari man screen:

layout dump [filename]

Write to a file the order of splits made in the current layout. This is
useful to recreate the order of  your  regions  used  in  your  current
layout.  Only  the  current  layout is recorded. While the order of the
regions are recorded, the sizes of  those  regions  and  which  windows
correspond  to  which regions are not. If no filename is specified, the
default is layout-dump, saved in the directory that the screen  process
was  started in. If the file already exists, layout dump will append to
that file. As an example:

           C-a : layout dump /home/user/.screenrc

will save or append the layout to the user's .screenrc file.

Jadi, setelah Anda membuat pengaturan secara manual, tekan CtrlSebuah:, lalu ketik layout dump /path/to/some/file. Tata letak akan disimpan ke /path/to/some/file dan Anda dapat mengembalikannya di sesi baru dengan:

screen -c /path/to/some/file

14
2017-11-28 01:45



+1 bagus; Itu split -v tampaknya tidak berdokumen :) inilah mengapa saya berjuang. - Videonauth
@Videonauth sebenarnya didokumentasikan di bawah bagian default keybindings. C-a | (split -v) Split the current region vertically into two new ones. - Sergiy Kolodyazhnyy
Ya, sepertinya itu hanya disebutkan di halaman manual, di sebelah C-a |, tetapi tidak dalam dokumen GNU - muru
Menemukan perilaku aneh yang mungkin ingin Anda sebutkan: Jika Anda mengetik misalnya layout dump ~/layout proses akan gagal, perlu jalur penuh (yaitu /home/$USER/layout) - Videonauth
@Videonauth sejak ekspansi tilde biasanya dilakukan oleh shell, tidak mengherankan jika perintah yang diberikan tidak mendukungnya secara internal. Sebagian, kebanyakan tidak. - muru


Saya datang dengan yang berikut ini untuk menciptakan output yang ditunjukkan dalam pertanyaan saya dan mengikuti Jawaban bagus @muru. Menggunakan layout dump memberi saya yang berikut:

split
focus
split -v
focus

Catatan: Tilde (~) ekspansi tidak berfungsi layout dump jadi bukannya ~/layout.dmp misalnya Anda perlu menggunakan /home/<username>/layout.dmp.

Dari yang saya kemudian buat yang berikut ini .screenrc

# create the top screen
chdir /home/server/log
screen -t "Apache Log" tail -n 1 -f access.log
# split the screen and focus onto the new created space
split
focus
#create the bash
chdir /home/server/log
screen
# split vertically and focus onto the new area
split -v
focus
# create the htop screen
screen -t "Htop" htop
# focus twice to end up with the bash area active
focus
focus

Sekarang saya hanya perlu mengetik screen dan tata letak yang ingin saya mulai. Saya tinggalkan itu di sini sebagai contoh bagi mereka yang bertanya-tanya, tetapi jangan lupa untuk memberi jawaban atas jawaban @ muru, karena dialah yang membuat saya mampu menyelesaikan ini.


8
2017-11-28 02:26