ฉันจะเริ่มต้นหน้าจอด้วยการแยกหลายทางโดยตรงจากบรรทัดคำสั่งได้อย่างไร


13

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

ป้อนคำอธิบายรูปภาพที่นี่

  • tail -n 1 -f /home/server/log/access.logส่วนบนควรใช้
  • ส่วนล่างขวาควรทำงาน htop
  • ด้านล่างซ้ายควรเป็นพรอมต์คำสั่ง

มีวิธีการที่จะทำผ่านคำสั่ง / สคริปต์ดังนั้นฉันไม่ต้องทำซ้ำทุกครั้งหรือไม่



@muru คำตอบนี้ค่อนข้างจะเป็นส่วนที่จะเริ่มต้นหน้าจอแยกกันได้อย่างไรไม่ใช่ส่วนที่จะให้พวกเขาสั่งตรงตามที่แสดงด้านบน
Videonauth

.screenrcทุกอย่างที่สามารถทำได้โดยใช้ทางลัดในหน้าจอสามารถทำได้โดยใช้คำสั่งใน สำหรับการจัดนี้เรามีคำสั่ง split
muru

คำตอบ:


16

layout dumpสำหรับกรณีที่เฉพาะเจาะจงของการเตรียมหน้าต่างมีคำสั่งที่หน้าจอเพื่อบันทึกไว้ในไฟล์: จาก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.

ดังนั้นเมื่อคุณทำให้การจัดเรียงด้วยตนเองกดแล้วพิมพ์Ctrla: layout dump /path/to/some/fileรูปแบบจะถูกบันทึกไว้/path/to/some/fileและคุณสามารถกู้คืนได้ในเซสชันใหม่ด้วย:

screen -c /path/to/some/file

+1 สิ่งที่ดี; split -vดูเหมือนไม่มีเอกสาร :) นี่คือเหตุผลที่ผมดิ้นรน
Videonauth

@Videonauth จริง ๆ แล้วมีการบันทึกไว้ภายใต้หัวข้อการโยงคีย์เริ่มต้น C-a | (split -v) Split the current region vertically into two new ones.
Sergiy Kolodyazhnyy

ใช่ดูเหมือนว่าจะถูกกล่าวถึงใน manpage เท่านั้นถัดจากC-a |แต่ไม่ใช่ในเอกสาร GNU
muru

พบว่ามีพฤติกรรมแปลก ๆ ที่คุณอาจต้องการที่จะพูดถึง: ถ้าคุณพิมพ์ตัวอย่างเช่นlayout dump ~/layoutกระบวนการที่จะล้มเหลวก็ต้องเส้นทางแบบเต็ม (เช่น/home/$USER/layout)
Videonauth

@Videonauth เนื่องจากการขยายตัวหนอนมักจะทำโดยเชลล์มันไม่น่าแปลกใจถ้าคำสั่งที่กำหนดไม่สนับสนุนภายใน บางคนทำไม่ได้
muru

10

ฉันมากับต่อไปนี้เพื่อสร้างผลผลิตที่แสดงในคำถามของฉันและต่อไปนี้@ คำตอบที่ดีเยี่ยมของ ใช้layout dumpให้ฉันต่อไปนี้:

split
focus
split -v
focus

หมายเหตุ: ตัวหนอน ( ~) ขยายตัวไม่ได้ทำงานกับlayout dumpดังนั้นแทนที่จะยกตัวอย่างเช่นคุณจะต้องใช้~/layout.dmp/home/<username>/layout.dmp

จากนั้นฉันก็สร้างสิ่งต่อไปนี้ .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

ตอนนี้ฉันแค่ต้องพิมพ์screenและเริ่มเลย์เอาต์ที่ฉันต้องการ ฉันปล่อยให้นี่เป็นตัวอย่างสำหรับผู้ที่สงสัย แต่อย่าลืมโหวตคำตอบของ @ muru เพราะเขาเป็นคนที่ทำให้ฉันสามารถแก้ปัญหานี้ได้

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