ฉันใช้ tmux กับ EC2 AWS แต่ฉันต้องการดูว่าเกิดอะไรขึ้นในเซสชันเดียวที่ฉันสร้าง
ฉันใช้Ctrl+ bแล้วd ออกจากเซสชัน
ใช้อูบุนตู 16.04
ฉันใช้ tmux กับ EC2 AWS แต่ฉันต้องการดูว่าเกิดอะไรขึ้นในเซสชันเดียวที่ฉันสร้าง
ฉันใช้Ctrl+ bแล้วd ออกจากเซสชัน
ใช้อูบุนตู 16.04
คำตอบ:
ฉันต้องการดูว่าเกิดอะไรขึ้นในเซสชันเดียวที่ฉันสร้าง
เท่าที่ฉันรู้คุณสามารถดูรายการเซสชัน tmux ของคุณโดยใช้
tmux list-sessions
เพื่อดูว่าเซสชันใดกำลังทำงานบน tmux
หากต้องการดูสิ่งที่กำลังทำงานอยู่ในเซสชันเหล่านั้นคุณต้องแนบกับเซสชันนั้น ๆ เพื่อทำสิ่งนี้คุณมีสองตัวเลือก (จากประสบการณ์)
หากคุณไม่ได้กำลังเรียกใช้เซสชั่น tmux (หรือไม่อยู่ในเซสชั่น tmux ในปัจจุบัน) คุณแนบโดยการทำงานtmux attach -t n
(โดยที่ -t หมายถึงเซสชันเป้าหมายและ n สำหรับหมายเลขเซสชันนั้น)
หากคุณกำลังทำงานภายในเซสชั่น tmux อีกครั้งคุณจะได้รับข้อผิดพลาดในการพยายามเชื่อมต่อกับเซสชั่นอื่นดังนั้นวิธีที่ง่ายที่สุดในการดูว่ามีอะไรทำงานอยู่ที่นั่นคือการใช้tmux list-windows -a
คำสั่งแล้วย้ายบานหน้าต่าง / หน้าต่างใด ๆ
การย้ายหน้าต่างโดยใช้tmux move-window -s n1 -t n2
( -s == หน้าต่างซอร์ส , -t == หน้าต่างเป้าหมายที่หน้าต่างต้นทางจะแนบมาด้วยn1 == หมายเลขของหน้าต่างที่คุณต้องการย้ายและn2คือหมายเลขของหน้าต่างที่คุณต้องการย้าย)
รูปแบบN1และN2ตัวเลขมีการสั่งซื้อ / sessionNumb:windowNumb
จัดรูปแบบเป็น ดังนั้นเซสชันแรกในหน้าต่างแรกจะเป็น 0: 1 และเซสชันที่สองในหน้าต่างแรกจะเป็น 1: 1
บันทึก. n2จะต้องมีเซสชันที่พร้อมด้วยหน้าต่างที่ยังไม่ได้สร้าง หากคุณย้ายหน้าต่างไปยังหน้าต่างที่สร้างไว้แล้วคุณจะได้รับข้อผิดพลาดว่า "หน้าต่างเป้าหมายไม่ว่างเปล่า" และการย้ายไปยังเซสชันที่ไม่ได้สร้างขึ้นจะทำให้เกิดข้อผิดพลาด "ไม่พบเซสชัน n"
การย้ายบานหน้าต่างในบางครั้งคุณอาจมีบานหน้าต่างจำนวนมากและคุณต้องการย้ายบานหน้าต่างเดียวซึ่งจะเป็นประโยชน์ถ้าคุณต้องการบานหน้าต่างบานเดียวเพื่อเลื่อนภายในบานหน้าต่างปัจจุบันของคุณ (เนื่องจากคุณไม่สามารถย้ายหน้าต่างภายในหน้าต่างอื่น)
คุณสามารถใช้ไวยากรณ์ที่คล้ายกันเกือบกับการย้ายหน้าต่าง tmux move-pane -s *n1* -t *n2*
แต่คุณทำ
ที่ไหนn1ตอนนี้คือการจัดรูปแบบเป็นsessionNumb:windowNumb.paneNumb
และเพื่อให้เป็นN2
ตัวอย่าง
หลังจากtmux list-windows -a
คุณจะได้อะไรแบบนี้
0:1: Project- (4 panes) [177x48]
0:2: Mirror (3 panes) [177x48]
0:3: Chat! (1 panes) [177x48]
0:4: ssh* (1 panes) [177x48]
1:1: zsh (2 panes) [176x45]
1:2: zsh* (1 panes) [176x45]
1:3: zsh- (1 panes) [176x45]
ตอนนี้ย้ายหน้าต่าง "แชท" จากเซสชั่นแรกไปยังเซสชั่นที่สองของฉันฉันจะต้องทำงานtmux move-window -s 0:3 -t 1:4
(จำไม่ได้ย้ายหน้าต่างไปที่หน้าต่างที่สร้างขึ้นแล้ว)
ย้ายบานหน้าต่าง
หากคุณจำเป็นต้องย้ายบานหน้าต่างแล้วคุณต้องทำtmux list-panes -a
หรือถ้าคุณรู้อยู่แล้วว่าหน้าต่างมันก็มาจากคุณสามารถtmux list-panes -t 0:1
ดู explainations รูปแบบดังกล่าวข้างต้น
ผลลัพธ์มาแสดงเซสชัน 0 หน้าต่าง 1 (-s 0: 1) มีบานหน้าต่างเหล่านี้
1: [177x34] [history 3/10000, 4119 bytes] %7 (active)
2: [88x13] [history 541/10000, 231972 bytes] %8
3: [88x13] [history 2/10000, 1541 bytes] %9
ซึ่งเป็นที่ยอมรับไม่ได้ แต่ถ้าคุณต้องการดูข้อมูลเพิ่มเติมเพื่อให้คุณสามารถรู้ได้ว่าบานหน้าต่างใดที่คุณต้องการจริงๆคุณสามารถทำได้
tmux list-panes -F "#{pane_current_command}" -t 0:1
ซึ่งจะแสดงคำสั่งที่รันอยู่ในแต่ละบานหน้าต่าง
ในกรณีของฉัน
vim
zsh
python (sadly it's runnuning `ranger`)
ดังนั้นหลังจากการระบุบานหน้าต่างที่คุณต้องการ (พูดเป็นกลุ่มหนึ่ง) คุณต้องย้าย
tmux move-pane -s 0:1.1 -t 1:1.2
เพื่อย้ายไปยังบานหน้าต่างเฉพาะในกรณีนี้ 2
หากคุณมีบานหน้าต่างเดียวในหน้าต่างเป้าหมายคุณจะtmux move-pane -s 0:1.1 -t 1:1.
ไม่สามารถบานหน้าต่างเป้าหมายได้และจะยังคงใช้งานได้
ฉันหวังว่านี้จะตอบคำถาม
ทำตามคำตอบข้างต้นคุณสามารถลอง:
tmux ls
เพื่อรับหมายเลขเซสชัน และจากนั้น
tmux attach-session -t <session_number>
tmux attach
ไหม