หากเราต้องการจะให้มันทำงานต่อไปเรื่อยๆ แม้เราจะออกมาแล้วจะทำยังไง ผมได้ไปค้นหาข้อมูลดูก็เจอ 2 ตัวนี้คือ screen และ tmux
เท่าที่ผมรู้ตัว screen เป็นตัวเก่ามีมานานแล้ว พอลองไปเล่นที่เครื่องดูก็พบว่าติดตั้งไว้ให้อยู่แล้ว แต่พอหัดใช้สักพักรู้สึกงงๆ
ผมเลยลองเล่นอีกตัวที่เขาแนะนำมาคือ tmux ชื่อเต็มๆ คือ Terminal Multiplexer ครับ
การใช้งาน GNU Screen
ตัว GNU Screen ก็จะมี Session, Window, Regionเมื่อเราทำการสร้าง session เราจะมีอยู่แล้ว 1 window แล้วถ้าจะ split หน้าจอก็จะเรียกว่า region
การจัดการ Session
# list screen session $ screen -ls # create screen session $ screen or $ screen -S name # detach screen session "Ctrl + a" then "d" or $ screen -d <session-id|session-name> # reattach screen session $ screen -r <session-id|session-name> # terminate screen session "Ctrl + a" then "k" or "Ctrl + d" or $ exit
การจัดการ Window
# list window "Ctrl + a" then """ # create new window "Ctrl + a" then "c" # rename window "Ctrl + a" then "A" # switch to window number "Ctrl + a" then "0" to "9" # change window next, or previous "Ctrl + a" then "n" or "p"
การจัดการ Region
# split screen (create region)/ vertical "Ctrl + a" then "|" # split screen (create region)/ horizontal "Ctrl + a" then "S" # change split screen (change focus region) "Ctrl + a" then "Tab" # close split screen (region) "Ctrl + a" then "X" # close all split screen (all region) "Ctrl + a" then "Q"
การใช้งาน tmux
tmux สามารถติดตั้งได้โดยคำสั่ง (Ubuntu 18.04)# use snap to install terminal multiplexer sudo snap install tmuxtmux ใช้งานง่ายโดยต้องทำความเข้าใจก่อน 3 ส่วนแรก ได้แก่ session, window, panes ครับ
session เป็นส่วนของการติดต่อโดยใน session ก็ จะมี window กับ panes
window เป็นหน้าจอใหญ่ หน้าจอเดียว และถ้าต้องการแบ่งหน้าก็จะเรียกว่า panes ครับ
# list session are running $ tmux ls # output show is no have any session no server running on /tmp/tmux-1000/default # create new connection $ tmux new -s <session-name>
สังเกตุได้จาก status bar ที่อยู่ด้านล่างสีเขียวๆ ครับ แสดงแบบนี้ [sarankon] 0:bash*
แสดงว่าเราอยู่ session แล้วชื่อ sarankon มี window เลขที่ 0 ชื่อว่า bash ส่วน * คือบอกเราว่าเราอยู่ที่ window นี้
เมื่อเราต้องการออกจาก session แต่ยังไม่ต้องการ terminate session ไปเพื่อให้เรากลับมาดูที่หลังให้เรากด key
"Ctrl + b" จากนั้นพิมพ์ "d" เพื่อทำการ Detach ออกมากสู่ Secure Shell หลักของเรา โดย session ยังทำงานอยู่
แล้วลองพิมพ์คำสั่ง tmux ls ดูจะเห็นว่ามี session และมีจำนวน window บอกไว้ด้วย
เมื่อต้องการกลับเข้าไปใน session ให้เราพิมพ์ tmux a -t
เท่านี้เราก็สามารถ run คำสั่งทิ้งไว้ในเครื่องได้แล้วครับ
สรุปคำสั่งที่ใช้บ่อยๆ ครับ
Session
### Session Management # list tmux session $ tmux ls # create tmux session $ tmux new -s <session-name> # rename tmux session "Ctrl+b" then "$" # show session list and structure "Ctrl+b" then "s" # detach session "Ctrl+b" then "d" # reattach session $ tmux a -t <session-name>
Window
### Window Management # create new window "Ctrl+b" then "c" # rename window "Ctrl+b" then "," # show window list and structure "Ctrl+b" then "w" # change to next window or previous windows "Ctrl+b" then "n" or "p" # change to window number "Ctrl+b" then "0" to "9"
Panes
## Panes Management # Split to vertical panes [-] "Ctrl+b" then "%" S # Split to horizontal panes [|] "Ctrl+b" then """ # Move panes "Ctrl+b" then "{" or "}" # Use next panes "Ctrl+b" then "o" # Make panes to window "Ctrl+b" then "!" # Minimize and Maximize panes "Ctrl+b" then "z" # Resize panes "Ctrl+b" then "<arrow-key>" # Terminate panes "Ctrl+b" then "x" or "Ctrl+d" or $ exit
คำสั่ง break-pane ใช้เหมือนกันกับ make pane to window และ join-pane ใช้เพื่อ split
เมื่อเราต้องการใช้งาน ให้เรากด key "Ctrl+b" then ":" จากนั้นถึงพิมพ์ คำสั่ง
# join number from คือเอา window number นั้นมา join join-pane -s <windows-number> [-v|-h] # join number to คือเอา window ที่เราทำงานอยู่ไป join กับ window number นั้น join-pane -t <windows-number> [-v|-h] # -v Vertical [-], -h Horizontal [|]
ขอบคุณข้อมูลจากเว็บ
Linuxize | How to use linux screen
Blog (Korakot Rakhuang) | How to use screen tmux
ไม่มีความคิดเห็น:
แสดงความคิดเห็น