คุณเปิด terminal กี่บาน?
www.tanabutr.co.th/photobook
สำหรับคนที่ใช้เทอร์มินอลไม่ว่าจะเป็นคอนโซลหรือเทอร์มินอลเอมิวเลเตอร์, บางทีมีความจำเป็นต้องเปิดเทอร์มินอลหลายตัวดูพร้อมๆกัน. แต่จริงๆแล้วเวลาใช้ก็ได้อันเดียวแหละเพราะคนเราก็ทำอะไรได้อย่างเดียวในเวลาหนึ่งๆ. ลองมาสรุปดูว่ามีวิธีใช้เทอร์มินอลหลายๆตัวในเวลาเดียวกันแบบไหนบ้าง.
- ใช้เทอร์มินอลเสมือน (virtual terminal) ก็คือลินุกซ์คอนโซลนั่นเอง. กด Alt+F1 (สมมติว่าใช้เท็กซ์โหมดอย่างเดียว), Alt+F2, Alt+F3, ... หรือด้วยคำสั่ง chvt แต่ต้องสั่งด้วย root. มักใช้เปลี่ยนเทอร์มินอลไปมาเวลาใช้คอนโซลที่ต่อกับเซิร์ฟเวอร์โดยตรง.
- เปิด xterm หลายๆตัวถ้าใช้ X window ได้. เห็นหมดทุกหน้าต่าง, ตัดคัดลอกแปะได้สะดวกแต่รกหูรกตาถ้าเปิดมากเกินไป.
- เปิดพวก gnome-terminal หรือ konsole ตัวเดียวแล้วใช้แท็บ. พวกเทอร์มินอลรุ่นใหม่มันสะดวกครับ. ใช้แืท็บได้, ไม่ต้องเปิดหลายหน้าต่าง. เลือกเปิดแท็บจากเมนูหรือกด Ctrl+Shift+t ในกรณีที่ใช้ gnome-terminal. เปลี่ยนแท็บไปมาโดยกด Ctrl+PageUp, Ctrl+PageDown (เหมือน Firefox). หรือเลือกแท็บที่อยากใช้ตามเบอร์โดยการกด Alt+[ตัวเลข].
- ใช้ screen. เห็นใครใช้ screen ก็ีรู้ได้เลยว่าเป็นพวก geek, มือเก๋า. คือใช้เทอร์มินอลอะไรก็ได้ตัวเดียวแล้วสั่งคำสั่ง screen.
screen เป็นคำสั่งที่ไปรันเชลล์อีกที และก็รันเชลล์ได้หลายตัวในเทอร์มินอลเดียว. ถ้าใช้ครั้งแรกสั่งคำสั่ง screen ก็จะมี welcome message ให้ดูรับทราบว่าเข้าสู่ screen แล้ว. พอกด space ก็เข้าเชลล์ตัวใหม่สั่งคำสั่งอะไรได้เหมือนไม่มีอะไรเกิดขึ้น. พออยู่ในโปรแกรม screen จะใช้คีย์ Ctrl+a เป็นตัว escape สั่งคำสั่งต่างๆเช่น
- Ctrl+a c สำหรับสร้างเชลล์อีกตัว
- Ctrl+a n ย้่ายไปหน้าจอของเชลล์ถัดไป
- Ctrl+a p ย้ายไปหน้าจอของของเชลล์ตัวที่แล้ว
- Ctrl+a d ใช้ detach หน้าจอ ออกจากคำสั่ง screen แต่โปรแกรมหรือเชลล์ยังไม่ตาย
การใช้เชลล์ได้หลายๆหน้าจอด้วยเทอร์มินอลเดียวก็มีประโยชน์แต่ที่เป็นประโยชน์อย่างยิ่งคือการ detach ที่เราควรจำกันไปใช้. การใช้ detach นี่เองทำให้ใช้เชลล์ได้เหมือนกับพวก remote desktop (มีมาก่อน remote desktop อีก) เช่นที่ทำงานใช้ screen รันโปรแกรมค้างไว้รอนานไม่เสร็จก็ detach ปล่อยหน้าจอ. พออยู่ที่บ้านก็ ssh เข้าไปในเครื่องที่ทำงานแล้วสั่งคำสั่ง
$ screen -r
screen ก็จะไปต่อติดหน้าจอ (เชลล์) ที่รันค้างไว้ได้ซึ่งเป็นหน้าจอเดียวกัน และโปรแกรมที่รันค้างไว้มันก็อยู่อย่างนั้น (หรือทำงานเสร็จไปแล้ว). หรือบางทีไม่แน่ใจว่ามี screen รันค้างไว้หรือไม่ก็สั่งคำสั่ง
$ screen -ls There is a screen on: 12058.pts-0.colinux (Detached) 1 Socket in /var/run/screen/S-poonlap.screen เป็นโปรแกรมที่ควรจำโปรแกรมหนึ่ง. มันทำอะไรได้มากกว่าที่แนะนำในที่นี่และซับซ้อนเหมือนกัน. เห็นบอกว่าแชร์หน้าจอก็ได้ด้วย (ในเครื่องเดียวกัน, คือมันใช้ยูนิกซ์ซ็อกเก็ต), คัดลอกเท็กซ์, เก็บล็อก, บอกเตือนเวลา silent หรือ active ฯลฯ ลองไปอ่าน man screen หรือหาอ่านตามเว็บ ดูครับ.
สุดท้ายไฟล์ ~/.screenrc เป็นไฟล์ตั้งค่าเริ่มต้น, ปรับแต่งอะไรได้เยอะ. ตัวอย่างก็ก็อปๆเขามาครับ. ใช้ดีขึ้นกว่าไม่ปรับแต่งเยอะคือมีแสดงแถบ status อยู่ด้านล่างและเปลี่ยน Ctrl+a ให้เป็น Ctrl+t แทนจะได้ใช้ Ctrl+a ใน bash เป็น beginning-of-line ได้เหมือนที่คุ้นเคยครับ.
# ไม่เอาข้อความต้อนรับ startup_message off # ตั้งค่า scroll มากกว่าค่าปริยาย (100) defscrollback 1024 # ทำให้มีแถบ status ด้านล่าง hardstatus on hardstatus alwayslastline hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a " # ใช้ Ctrl+t แทน Ctrl+a escape ^Ta
อ่านเพิ่มเติม:
Comments: blogger

