Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

หลายคนไม่รู้จัก screen เครื่องมือเล็กน้อยที่ยอดเยี่ยม หรือ "a terminal multiplexer" หากคุณต้องการทางเทคนิค ผมเชื่ออย่างมั่นใจว่าทุกคนที่ใช้เทอร์มินัล ไม่ว่าจะเพราะเหตุใด ควรมีมันในอาร์เซนอล มัน มีประโยชน์ อย่างนั้น

Screen ทำให้การทำงานหลายอย่างพร้อมกันในเทอร์มินัลง่ายตาย ด้วยมัน คุณสามารถรันเครื่องมือหลายอย่างพร้อมกัน แต่ละอย่างในเซสชันของตัวเอง หลังจากคุณรันสิ่งใดสิ่งหนึ่งใน "screen" ของมัน คุณสามารถ detach และ re-attach เข้ากับมันได้ตามต้องการ การสามารถ "ทิ้งสิ่งต่างๆ ให้ทำงานในเซสชันที่ detached" อนุญาตให้คุณกระโดดระหว่างเครื่องมือ

หากคุณกำลังจับจองงานมากมายในเทอร์มินัลทุกวัน คุณ entweder กำลังใช้มันอยู่แล้ว หรือคุณจะชอบมันหลังจากลอง!

ติดตั้ง screen

Screen พร้อมใช้งานสำหรับเกือบทุกการกระจายใต้ดวงอาทิตย์ – เนื่องจากมันเป็นเครื่องมือเก่า ทดสอบแล้ว แม้จะค่อนข้างไม่รู้จัก ในการติดตั้งบน Debian, Ubuntu, Mint หรืออะไรก็ตามที่ใช้ apt ใช้:

sudo apt install screen

ในไม่กี่วินาทีคุณจะพร้อมใช้งาน เนื่องจากมันเล็กและไม่มี dependency มาก

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

เซสชันแรก

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

เพื่อใช้งาน ให้เพิ่มมันหน้าสิ่งใดสิ่งหนึ่งที่คุณจะพิมพ์ในเทอร์มินัล มาสร้างเอกสารใน nano editor ที่นิยมเป็นตัวอย่าง หากไม่ได้ติดตั้ง หรอใช้ได้บนการกระจายของคุณ หรือคุณชอบอย่างอื่น แทน "nano" ด้วยตัวเลือกของคุณ

screen nano mte_screen.txt

ด้วยการเพิ่ม "screen" หน้าคำสั่งปกติ เรารันมันในหนึ่งในเซสชันของ screen อาจดูเหมือนไม่มีผลลัพธ์ แต่ตามที่เราจะเห็นในขั้นตอนถัดไป มันมี

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

Detach จากเซสชัน

พิมพ์บางอย่างใน nano และกด Ctrl + A แล้ว D บนคีย์บอร์ดของคุณ Nano º หรือ editor ใดที่คุณใช้ – จะหายไป ในเทอร์มินัล คุณจะเห็นข้อความคล้ายกับ:

[detached from terminal-ID]

ตอนนี้คุณกลับมาที่สิ่งที่คุณอาจเรียกว่าเทอร์มินัลเริ่มต้นที่คุณรัน screen ก่อนหน้า แต่มันไม่ได้หายไป

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

กลับไปที่เซสชันที่กำลังทำงาน

เนื่องจากคุณมีเซสชันรันอยู่เบื้องหลัง คุณสามารถกลับไปได้โดยพิมพ์:

screen -r

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

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

สร้างเซสชันที่สอง

ขณะกลับมาที่เทอร์มินัลต้นฉบับและ detached จากเซสชัน nano ที่รันอยู่ ทำซ้ำขั้นตอนแรกเพื่อรันสิ่งใดสิ่งหนึ่งในเซสชันที่สอง เพื่อความเรียบง่าย เราสร้างเอกสารที่สองด้วย nano ใช้:

screen nano mte_2nd.txt

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

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

รายการเซสชัน

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

screen -list

Screen จะแสดงรายการเซสชันที่มีอยู่ทั้งหมด

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย 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

วิธีทำงานหลายอย่างพร้อมกันในเทอร์มินัล Linux ด้วย Screen

และนี่หมายความว่าคุณสามารถ reattach เข้ากับเซสชันที่รันอยู่จากเทอร์มินัลที่ต่างกัน ตามที่คุณเห็นในสกรีนช็อตของเรา เราใช้ Guake เพื่อ reattach เข้ากับเซสชันที่เราสร้างในเทอร์มินัลเริ่มต้นของ Mint

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

มันเป็น "multitasking" อย่างไร?