บันทึกการทำงานกับเทอร์มินัล
เทอร์มินัลของ GNOME ดือ gnome-terminal ยังใช้งานภาษาไทยกับ vim ได้ไม่ดีนัก
คือการเลื่อนเคอร์เซอร์ไม่ถูกตำแหน่ง และการคัดลอกข้อความด้วยเมาส์ก็ยังคัดลอกแบบผิด ๆ
การนี้ XTerm ใช้งานได้ดีกว่า แต่หน้าตาโบราณไปหน่อย และสีอักษรบนพื้นดำดูยากสักนิด
เลยทดลองปรับแต่งดูครับ
สำหรับเดเบียนติดตั้งด้วย
$ sudo aptitude install xterm xfonts-thai xfonts-thai-nectec xfonts-thai-poonlap xfonts-thai-vor
สำหรับผม ปรับแต่งให้เป็นพื้นขาว เลียนแบบ gnome-terminal และปรับแต่งตัวหนังสือให้ใหญ่ขึ้น และสีเข้มขึ้นเล็กน้อย
$ vi ~/.Xdefaults
!FONT *VT100.utf8Fonts.font: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1 !COLOR *VT100*foreground: grey10 *VT100*background: grey98 *VT100*color0: black *VT100*color1: red2 *VT100*color2: green4 *VT100*color3: yellow3 *VT100*color4: blue4 *VT100*color5: magenta4 *VT100*color6: cyan4 *VT100*color7: gray90 *VT100*color8: gray50 *VT100*color9: red1 *VT100*color10: green3 *VT100*color11: yellow2 *VT100*color12: rgb:5c/5c/ff *VT100*color13: magenta *VT100*color14: cyan3 *VT100*color15: white
ให้ระบบรับรู้ค่าใหม่ของเรา
$ xrdb .Xdefaults
เสร็จแล้ว เรียกใช้ด้วยคำสั่ง
$ xterm
เรียบร้อย ใช้งานภาษาไทยได้ดีแล้ว
หมายเหตุ
/etc/X11/rgb.txt
/etc/X11/apt-defaults/
ในไฟล์ XTerm
และ XTerm-color
เอามาจาก - Xterm Terminal Emulator Options
เอามาจาก 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
สั่งรัน 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 ดี ๆ แบ่งบ้างนะครับ
screen tip: screenrc และการสั่งงานด้วยบรรทัดคำสั่ง
norm
ใช้การแก้ไขไฟล์ ~/.screenrc
ดังนี้
# vi ~/.screenrc
sessionname norm screen top screen 1 tail -f /var/log/syslog screen 2 tail -f /var/log/dmesg
รัน screen
# screen
จะได้ผลตามต้องการ
จะใช้การทำงานผ่านสคริปต์ ดังนี้
สมมุติตั้งชื่อสคริปต์ว่า screen_monitor.sh
# vi screen_monitor.sh
#!/bin/bash screen -S norm -md bash screen -S norm -p0 -X stuff "screen bash " screen -S norm -p0 -X stuff "top " screen -S norm -p1 -X stuff "screen bash " screen -S norm -p1 -X stuff "tail -f /var/log/syslog " screen -S norm -p2 -X stuff "screen bash " screen -S norm -p2 -X stuff "tail -f /var/log/dmesg "
เปลี่ยนสิทธิ์และสั่งรัน
# chmod 755 screen_monitor.sh # ./screen_monitor.sh
จะไม่เห็นการเปลี่ยนแปลง เพราะเราสั่งให้ทำงานแบบเบื้องหลัง (-md
)
จะเข้าไปสู่ (attach
) การทำงานของ screen ได้ด้วยคำสั่ง
# screen -r norm
จบแล้วครับ