screen
เอามาจาก ThaiLinuxCafe - bash tips
---
จิ๊กมาจากบล๊อกคุณพูนลาภเรื่อง คุณเปิด terminal กี่บาน?
ท่านเขียนไว้ดีมาก ๆ
screen เป็น virtual terminal มีประโยชน์มากในการใช้งานผ่าน ssh ข้อดีคือเวลาเรากลับเข้าไปในงานที่ทำค้างอยู่ มันจะเห็นเหมือนกับเราทำที่จุดนั้นจริง ๆ สมมุติเราคอมไพล์งานค้างไว้ ถ้ามีข้อผิดพลาด มันจะแสดงให้เห็นข้อผิดพลาดนั้นด้วย ที่สำคัญคือมันเป็น text mode จึงทำงานเร็วและไม่เปลืองแบนด์วิธ
สั่งเริ่ม screen
$ screen
คีย์ลัดที่ใช้บ่อย
C-a c = สร้างเชลล์ใหม่
C-a n = ไปเทอร์มินัลถัดไป ( ที่ยัง attach อยู่ )
C-a p = ไปเทอร์มินัลก่อนหน้า ( ที่ยัง attach อยู่ )
C-a d = detach เชลล์ปัจจุบัน ( กลับมาด้วยคำสั่ง screen -r )
C-a " = ดูเทอร์มินัลทั้งหมด ( คล้ายคำสั่ง screen -ls )
C-a 0 = ไปเทอร์มินัล 0
C-a 1 = ไปเทอร์มินัล 1
C-a S = แบ่งเทอร์มินัลแบบแนวตั้ง
(*หมายเหตุ C-a คือกด Ctrl+a )
ดูเชลล์ที่มี
$ screen -ls
ไป attach เชลล์ที่ถูก detach
ถ้ามีแค่เชลล์เดียว
$ screen -r
ถ้ามีหลายเชลล์
$ screen -r [pid.]tty[.host]
ปรับแต่งลักษณะของ screen ด้วยไฟล์ ~/.screenrc
$ vi ~/.screenrc
# ไม่เอาข้อความต้อนรับ
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ดูเพิ่มเติมได้ที่ gentoo-wiki: TIP Using screen
ถ้าใช้แล้วติดใจ อยากเวียนหัวเพิ่ม ให้ดู man screen
ตัวอย่างการใช้งาน
สมมุติว่าต้องการแก้ธีมของ drupal ที่เครื่อง server1.example.com เราติดตั้ง drupal ไว้ที่ /var/www/drupal สมมุติว่าเป็นธีม newsportal เหมือนของ debianclub ไฟล์ที่ต้องการแก้ไขหลัก ๆ จะมีสองไฟล์ คือ style.css และ page.tpl.php อยู่ใน /var/www/drupal/themes/newsportal/
เราจะเข้าถึง server1 ด้วยการใช้ ssh ปกติ
$ ssh server1.example.com -l webmaster
สั่งรัน screen
$ screen
กด Space bar ตามปกติ
ตอนนี้เราจะอยู่ในเทอร์มินัล 0 แต่ผมนิยมเว้นเทอร์มินัล 0 ไว้สำหรับงานจิปาถะชั่วคราว และใช้เทอร์มินัล 1 ในการแก้ไขไฟล์ style.css และใช้เทอร์มินัล 2 ในการแก้ไฟล์ page.tpl.php
กด C-a c เพื่อสร้างเทอร์มินัล 1
$ cd /var/www/drupal/themes/newsportal
$ vi style.css
กด C-a c เพื่อสร้างเทอร์มินัล 2
$ cd /var/www/drupal/themes/newsportal
$ vi page.tpl.php
หลังจากนี้เราสามารถสลับงานไปมาด้วยการกด C-a สองครั้ง มันจะสลับไปมาระหว่างเทอร์มินัล 1 และ 2
ถ้าเราปิด ssh โดยไม่ออกจาก screen เมื่อเข้ามาใหม่ เราสามารถเข้ามาที่งานที่ทำค้างไว้ได้เลย ด้วยคำสั่ง screen -r
หรือถ้าเราทำงานค้างไว้ที่ทำงาน และยังเปิด ssh ค้างอยู่
และเรากลับไปต่องานที่บ้าน เราสามารถช่วงชิง screen
ที่ยังค้างอยู่ที่ทำงานมาด้วยคำสั่ง screen -d -r
จบแล้วครับ ใครมีทิป screen ดี ๆ แบ่งบ้างนะครับ
screenrc
ของผมใช้ .screen ไม่ทำงานครับ ต้องใช้ .screenrc แทน ไม่ทราบว่าเขียนผิด หรือว่า deb ผมมันแปลกเองครับ
แก้ไขให้แล้วนะครับ
:)
**********************
Key ID: D4CEFD37
Fingerprint: 1ED3 27F6 48C8 5C9D 4285 F24D D64E C0AF D4CE FD37
**********************
ขอบคุณมากครับ
เป็น บทความที่เป็นประโยชน์ต่อผมมาก
ผมเปิด terminal หลายบาน compile มั่ง โปรแกรมมั่ง *-*
ขอบคุณมากครับ
ไม่เคยรู้มาก่อนว่ามีโปรแกรมอย่างนี้ ใช้วิธีถึก ๆ อยู่ตั้งนานครับผม :P
**********************
Key ID: D4CEFD37
Fingerprint: 1ED3 27F6 48C8 5C9D 4285 F24D D64E C0AF D4CE FD37
**********************









Recent comments
3 days 13 hours ago
4 days 5 hours ago
1 week 6 days ago
3 weeks 23 hours ago
4 weeks 8 hours ago
4 weeks 1 day ago
4 weeks 2 days ago
4 weeks 2 days ago
4 weeks 3 days ago
4 weeks 5 days ago