หลายคนไม่รู้จัก screen เครื่องมือเล็กน้อยที่ยอดเยี่ยม หรือ "a terminal multiplexer" หากคุณต้องการทางเทคนิค ผมเชื่ออย่างมั่นใจว่าทุกคนที่ใช้เทอร์มินัล ไม่ว่าจะเพราะเหตุใด ควรมีมันในอาร์เซนอล มัน มีประโยชน์ อย่างนั้น
Screen ทำให้การทำงานหลายอย่างพร้อมกันในเทอร์มินัลง่ายตาย ด้วยมัน คุณสามารถรันเครื่องมือหลายอย่างพร้อมกัน แต่ละอย่างในเซสชันของตัวเอง หลังจากคุณรันสิ่งใดสิ่งหนึ่งใน "screen" ของมัน คุณสามารถ detach และ re-attach เข้ากับมันได้ตามต้องการ การสามารถ "ทิ้งสิ่งต่างๆ ให้ทำงานในเซสชันที่ detached" อนุญาตให้คุณกระโดดระหว่างเครื่องมือ
หากคุณกำลังจับจองงานมากมายในเทอร์มินัลทุกวัน คุณ entweder กำลังใช้มันอยู่แล้ว หรือคุณจะชอบมันหลังจากลอง!
ติดตั้ง screen
Screen พร้อมใช้งานสำหรับเกือบทุกการกระจายใต้ดวงอาทิตย์ – เนื่องจากมันเป็นเครื่องมือเก่า ทดสอบแล้ว แม้จะค่อนข้างไม่รู้จัก ในการติดตั้งบน Debian, Ubuntu, Mint หรืออะไรก็ตามที่ใช้ apt ใช้:
sudo apt install screen
ในไม่กี่วินาทีคุณจะพร้อมใช้งาน เนื่องจากมันเล็กและไม่มี dependency มาก

เซสชันแรก
เราจะเจาะลึกเฉพาะฟีเจอร์พื้นฐานของ screen ที่จะให้คุณใช้งานได้ทันที หากคุณชอบสิ่งที่คุณเห็นจนจบบทช่วยสอนนี้ man page ของมันอธิบายฟังก์ชันเพิ่มเติม แต่เราคิดว่าพวกมันจะมากเกินไปสำหรับการแนะนำครั้งแรก
เพื่อใช้งาน ให้เพิ่มมันหน้าสิ่งใดสิ่งหนึ่งที่คุณจะพิมพ์ในเทอร์มินัล มาสร้างเอกสารใน nano editor ที่นิยมเป็นตัวอย่าง หากไม่ได้ติดตั้ง หรอใช้ได้บนการกระจายของคุณ หรือคุณชอบอย่างอื่น แทน "nano" ด้วยตัวเลือกของคุณ
screen nano mte_screen.txt
ด้วยการเพิ่ม "screen" หน้าคำสั่งปกติ เรารันมันในหนึ่งในเซสชันของ screen อาจดูเหมือนไม่มีผลลัพธ์ แต่ตามที่เราจะเห็นในขั้นตอนถัดไป มันมี

Detach จากเซสชัน
พิมพ์บางอย่างใน nano และกด Ctrl + A แล้ว D บนคีย์บอร์ดของคุณ Nano º หรือ editor ใดที่คุณใช้ – จะหายไป ในเทอร์มินัล คุณจะเห็นข้อความคล้ายกับ:
[detached from terminal-ID]
ตอนนี้คุณกลับมาที่สิ่งที่คุณอาจเรียกว่าเทอร์มินัลเริ่มต้นที่คุณรัน screen ก่อนหน้า แต่มันไม่ได้หายไป

กลับไปที่เซสชันที่กำลังทำงาน
เนื่องจากคุณมีเซสชันรันอยู่เบื้องหลัง คุณสามารถกลับไปได้โดยพิมพ์:
screen -r
หลังกด Enter คุณจะอยู่ตรงที่คุณหยุดไว้ใน nano คุณสามารถ detach และ reattach screen ได้หลายครั้งเท่าที่ชอบ แต่สิ่งนั้นเพียงแอปเดียวรันเบื้องหลัง ไกลจากสิ่งที่คุณเรียกว่า multitasking จริง

สร้างเซสชันที่สอง
ขณะกลับมาที่เทอร์มินัลต้นฉบับและ detached จากเซสชัน nano ที่รันอยู่ ทำซ้ำขั้นตอนแรกเพื่อรันสิ่งใดสิ่งหนึ่งในเซสชันที่สอง เพื่อความเรียบง่าย เราสร้างเอกสารที่สองด้วย nano ใช้:
screen nano mte_2nd.txt
Screen แม้แต่ไม่จำกัดการรันหลายเซสชันของแอปเดียวกัน: ลองรันอะไรก็ได้ด้วยมัน Screen พิสูจน์ประโยชน์เมื่อใช้สำหรับอย่างเช่นบีบอัดไฟล์หลายไฟล์เป็น archive ด้วย 7z กระบวนการที่ใช้เวลาบ้าง แทนที่จะมองที่เทอร์มินัลรอ 7x ให้เสร็จ คุณสามารถ detach เซสชันของมันและปล่อยให้รันเบื้องหลัง

รายการเซสชัน
หากคุณทำตามขั้นตอนก่อนหน้า ตอนนี้คุณมีสองเซสชันรันกับ screen screen -r จะไม่ทำงานเหมือนก่อน เพราะมันไม่รู้จะ attach ไหน เมื่อคุณมีหลายเซสชัน เพื่อกลับไปที่หนึ่งในนั้น คุณต้องรู้ ID ของมันก่อน เพื่อหามัน ใส่:
screen -list
Screen จะแสดงรายการเซสชันที่มีอยู่ทั้งหมด

ในกรณีของเรา ตามที่คุณเห็นในสกรีนช็อต เพื่อกลับไปที่เซสชันใดเซสชันหนึ่ง เราต้องใส่:
screen -r 14384
หรือ
screen -r 14336
เพิ่มเติมที่มีประโยชน์
หากคุณรันงานที่ออกหลังเสร็จสิ้นกับ screen เซสชัน screen จะจบลงพร้อมกับมัน นั่นคือเหตุผลว่าคุณอาจรันงานบางอย่างในเซสชัน screen แต่ตอนนี้ไม่มีเซสชัน active แสดง งานอาจเสร็จสิ้นเป้าหมายในเวลานั้น
หากคุณต้องการให้เซสชันคง active ในกรณีเช่นนั้น แทนที่จะรันคำสั่งกับ screen หน้ามัน ให้รัน "screen" แค่ตัวมันเองเพื่อสร้างเซสชันใหม่ และจากนั้นพิมพ์คำสั่งของคุณที่นั่นก่อน detach หากคุณรันคำสั่งในเซสชันที่คุณสร้างด้วยตนเอง เซสชันจะไม่ exit เมื่องานเสร็จ
Screen ยังอนุญาตให้คุณสร้างเซสชันใหม่จากภายในเซสชันที่มีอยู่ แค่กดชุดคำสั่ง Ctrl + A และจากนั้นกด C เพื่อสร้าง screen ใหม่และกระโดดไปที่นั่น
สำหรับคำสั่งที่มีประโยชน์อื่นๆ ที่คุณอาจจะใช้ในที่สุด ให้กด Ctrl + A และจากนั้น:
- A เพื่อใส่ชื่อเรื่องให้เซสชันเพื่อการจดจำและจัดการง่ายขึ้น
- K เพื่อ kill เซสชันปัจจุบัน
- N หรือ P เพื่อไปยังเซสชันถัดไปหรือก่อนหน้าที่ active
- 0 ถึง 9 เพื่อเคลื่อนที่ระหว่างสิบเซสชัน active แรก
ไม่ใช่แค่สำหรับการจับจองงาน
เราเก็บที่ดีที่สุดไว้ท้ายสุด: screen ไม่ผูกมัดกับเทอร์มินัลเฉพาะ หลัง detach จากเซสชัน คุณสามารถปิดหน้าต่างเทอร์มินัลได้ หากคุณอยู่ในสภาพแวดล้อมกราฟิก หรือคุณสามารถ logout แม้แต่นั้นได้ ตราบใดที่คอมพิวเตอร์ของคุณยังรันอยู่ เซสชันจะคง active

และนี่หมายความว่าคุณสามารถ reattach เข้ากับเซสชันที่รันอยู่จากเทอร์มินัลที่ต่างกัน ตามที่คุณเห็นในสกรีนช็อตของเรา เราใช้ Guake เพื่อ reattach เข้ากับเซสชันที่เราสร้างในเทอร์มินัลเริ่มต้นของ Mint
เนื่องจากนัยยามของสิ่งนี้อาจไม่ได้ซึมผ่านอย่างเพียงพอ คิดถึงสถานการณ์การใช้งานนี้: คุณสามารถล็อกอินระยะไกลไปยังคอมพิวเตอร์ของคุณ ด้วย SSH และเริ่มงานกับ screen จากนั้น detach และ log off งานจะทำงานต่อจนกว่าจะเสร็จสิ้น หรือคุณตัดสินใจล็อกอินใหม่ reattach เข้ากับเซสชัน screen และจบมันด้วยตนเอง!
มันเป็น "multitasking" อย่างไร?