ThaiTux.info - screen https://www.thaitux.info/taxonomy/term/113 screen tip: screenrc และการสั่งงานด้วยบรรทัดคำสั่ง https://www.thaitux.info/node/735 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>screen tip: screenrc และการสั่งงานด้วยบรรทัดคำสั่ง</p> <h3>ต้องการให้เมื่อเริ่ม screen ทุกครั้ง จะสั่งเปิด 3 หน้าต่างคือแสดง top, syslog, และ dmesg ตามลำดับ โดยตั้งชื่อ session ว่า <code>norm</code></h3> <p>ใช้การแก้ไขไฟล์ <code>~/.screenrc</code> ดังนี้</p> <pre># <strong>vi ~/.screenrc</strong></pre><pre><strong>sessionname norm screen top screen 1 tail -f /var/log/syslog screen 2 tail -f /var/log/dmesg</strong></pre><p> รัน screen</p> <pre># <strong>screen</strong></pre><p>จะได้ผลตามต้องการ</p> <h3>ต้องการให้ screen เริ่มงานแบบข้างต้น เฉพาะเมื่อเราต้องการ</h3> <p>จะใช้การทำงานผ่านสคริปต์ ดังนี้<br /> สมมุติตั้งชื่อสคริปต์ว่า screen_monitor.sh</p> <pre># <strong>vi screen_monitor.sh</strong></pre><pre><strong>#!/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 " </strong></pre><p> เปลี่ยนสิทธิ์และสั่งรัน</p> <pre># <strong>chmod 755 screen_monitor.sh<strong> # <strong>./screen_monitor.sh</strong></strong></strong></pre><p>จะไม่เห็นการเปลี่ยนแปลง เพราะเราสั่งให้ทำงานแบบเบื้องหลัง (<code>-md</code>)</p> <p>จะเข้าไปสู่ (<code>attach</code>) การทำงานของ screen ได้ด้วยคำสั่ง</p> <pre># <strong>screen -r norm</strong></pre><p> จบแล้วครับ</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/3">debian</a></div><div class="field-item odd"><a href="/taxonomy/term/113">screen</a></div></div></div> Sun, 06 Feb 2011 12:50:41 +0000 wd 735 at https://www.thaitux.info https://www.thaitux.info/node/735#comments debian: screen https://www.thaitux.info/node/108 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>เอามาจาก <a href="http://www.thailinuxhosting.com/yabbse/index.php?board=7;action=display;threadid=8190;start=0">ThaiLinuxCafe - bash tips</a><br /> ---</p> <p>จิ๊กมาจากบล๊อกคุณพูนลาภเรื่อง <a href="http://mm.co.th/poonlap/node/251">คุณเปิด terminal กี่บาน?</a><br /> ท่านเขียนไว้ดีมาก ๆ</p> <p>screen เป็น virtual terminal มีประโยชน์มากในการใช้งานผ่าน ssh<br /> ข้อดีคือเวลาเรากลับเข้าไปในงานที่ทำค้างอยู่ มันจะเห็นเหมือนกับเราทำที่จุดนั้นจริง ๆ<br /> สมมุติเราคอมไพล์งานค้างไว้ ถ้ามีข้อผิดพลาด มันจะแสดงให้เห็นข้อผิดพลาดนั้นด้วย<br /> ที่สำคัญคือมันเป็น text mode จึงทำงานเร็วและไม่เปลืองแบนด์วิธ</p> <p>สั่งเริ่ม screen<br /> <code>$ screen</code></p> <p>คีย์ลัดที่ใช้บ่อย<br /> <code>C-a c</code> = สร้างเชลล์ใหม่<br /> <code>C-a n</code> = ไปเทอร์มินัลถัดไป ( ที่ยัง attach อยู่ )<br /> <code>C-a p</code> = ไปเทอร์มินัลก่อนหน้า ( ที่ยัง attach อยู่ )<br /> <code>C-a d</code> = detach เชลล์ปัจจุบัน ( กลับมาด้วยคำสั่ง screen -r )<br /> <code>C-a "</code> = ดูเทอร์มินัลทั้งหมด ( คล้ายคำสั่ง screen -ls )<br /> <code>C-a 0</code> = ไปเทอร์มินัล 0<br /> <code>C-a 1</code> = ไปเทอร์มินัล 1<br /> <code>C-a S</code> = แบ่งเทอร์มินัลแบบแนวตั้ง<br /> (*หมายเหตุ <code>C-a</code> คือกด Ctrl+a )</p> <p>ดูเชลล์ที่มี<br /> <code>$ screen -ls</code></p> <p>ไป attach เชลล์ที่ถูก detach<br /> ถ้ามีแค่เชลล์เดียว<br /> <code>$ screen -r</code><br /> ถ้ามีหลายเชลล์<br /> <code>$ screen -r [pid.]tty[.host]</code></p> <p>ปรับแต่งลักษณะของ screen ด้วยไฟล์ ~/.screenrc<br /> <code>$ vi ~/.screenrc</code></p> <pre># ไม่เอาข้อความต้อนรับ 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</pre><p> ดูเพิ่มเติมได้ที่ <a href="http://gentoo-wiki.com/TIP_Using_screen">gentoo-wiki: TIP Using screen</a></p> <p>ถ้าใช้แล้วติดใจ อยากเวียนหัวเพิ่ม ให้ดู man screen</p> <hr /> <h3>ตัวอย่างการใช้งาน</h3> <p>สมมุติว่าต้องการแก้ธีมของ drupal ที่เครื่อง server1.example.com<br /> เราติดตั้ง drupal ไว้ที่ /var/www/drupal<br /> สมมุติว่าเป็นธีม newsportal เหมือนของ debianclub<br /> ไฟล์ที่ต้องการแก้ไขหลัก ๆ จะมีสองไฟล์ คือ style.css และ page.tpl.php<br /> อยู่ใน /var/www/drupal/themes/newsportal/</p> <p>เราจะเข้าถึง server1 ด้วยการใช้ ssh ปกติ<br /> <code>$ ssh server1.example.com</code></p> <p>สั่งรัน screen<br /> <code>$ screen</code><br /> กด Space bar ตามปกติ</p> <p>ตอนนี้เราจะอยู่ในเทอร์มินัล 0 แต่ผมนิยมเว้นเทอร์มินัล 0 ไว้สำหรับงานจิปาถะชั่วคราว<br /> และใช้เทอร์มินัล 1 ในการแก้ไขไฟล์ style.css<br /> และใช้เทอร์มินัล 2 ในการแก้ไฟล์ page.tpl.php</p> <p><code>กด C-a c</code> เพื่อสร้างเทอร์มินัล 1<br /> <code>$ cd /var/www/drupal/themes/newsportal<br /> $ vi style.css</code></p> <p><code>กด C-a c</code> เพื่อสร้างเทอร์มินัล 2<br /> <code>$ cd /var/www/drupal/themes/newsportal<br /> $ vi page.tpl.php</code></p> <p>หลังจากนี้เราสามารถสลับงานไปมาด้วยการกด C-a สองครั้ง<br /> มันจะสลับไปมาระหว่างเทอร์มินัล 1 และ 2</p> <p>ถ้าเราปิด ssh โดยไม่ออกจาก screen<br /> เมื่อเข้ามาใหม่ เราสามารถเข้ามาที่งานที่ทำค้างไว้ได้เลย ด้วยคำสั่ง <code>screen -r</code></p> <p>หรือถ้าเราทำงานค้างไว้ที่ทำงาน และยังเปิด ssh ค้างอยู่<br /> และเรากลับไปต่องานที่บ้าน เราสามารถช่วงชิง screen ที่ยังค้างอยู่ที่ทำงาน<br /> มาด้วยคำสั่ง <code>screen -d -r</code></p> <p>จบแล้วครับ ใครมีทิป screen ดี ๆ แบ่งบ้างนะครับ</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/3">debian</a></div><div class="field-item odd"><a href="/taxonomy/term/113">screen</a></div></div></div> Thu, 16 Nov 2006 07:10:22 +0000 wd 108 at https://www.thaitux.info https://www.thaitux.info/node/108#comments