ค้นหาเว็บไซต์

วิธีโฮสต์เทอร์มินัล Linux หลายตัวสำหรับการดูและการทำงานร่วมกันกับ Wemux


ในบทความก่อนหน้านี้ เราได้อธิบายวิธีใช้ tmux (Terminal MUltipleXer) เพื่อเข้าถึงและควบคุมเทอร์มินัล (หรือหน้าต่าง) จำนวนหนึ่งจากเทอร์มินัลเดียว

ตอนนี้เราจะแนะนำให้คุณรู้จักกับ wemux (tmux เวอร์ชันที่มีผู้ใช้หลายราย) ซึ่งไม่เพียงแต่รวมคุณลักษณะที่มีให้โดย tmux เท่านั้น แต่ยังรวมถึง อนุญาตให้ผู้ใช้โฮสต์สภาพแวดล้อมแบบหลายเทอร์มินัลซึ่งลูกค้าสามารถเข้าร่วมในโหมดดูหรือทำงานร่วมกันได้

กล่าวอีกนัยหนึ่ง คุณสามารถโฮสต์เซสชั่นที่ผู้อื่นสามารถดูสิ่งที่คุณทำในเทอร์มินัล (เช่น เพื่อทำการสาธิต) หรือเพื่อทำงานร่วมกับพวกเขาได้

เพื่อช่วยให้คุณได้รับประโยชน์สูงสุดจาก wemux ฉันขอแนะนำให้คุณดูคำแนะนำก่อนหน้าเกี่ยวกับ tmux ก่อนที่จะอ่านบทความปัจจุบัน

การติดตั้งและกำหนดค่าเทอร์มินัลผู้ใช้หลายคนของ Wemux

ตามข้อกำหนดเบื้องต้นก่อนที่จะติดตั้ง wemux เราจะใช้ git เพื่อโคลนที่เก็บของโปรเจ็กต์ในระบบในเครื่องของเรา หากคำสั่งต่อไปนี้แสดงว่าไม่พบ git ในระบบของคุณ:

which git 

ตามที่ระบุโดย:

/usr/bin/which: no git in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) 

ติดตั้งก่อนดำเนินการต่อ (ใช้ yum หรือ ความถนัด ขึ้นอยู่กับการกระจายของคุณ):

yum install git       [On RedHat based systems] 
dnf install git       [On Fedora 22+ versions]
aptitude install git  [On Debian based systems]

แล้ว,

1. โคลนพื้นที่เก็บข้อมูลระยะไกล

git clone git://github.com/zolrath/wemux.git /usr/local/share/wemux 

2. สร้างลิงก์สัญลักษณ์ไปยังไฟล์ปฏิบัติการ wemux ภายใน /usr/local/bin หรือไดเร็กทอรีอื่นใน ` PATH ของคุณ ตัวแปร

ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux 

3. คัดลอกไฟล์การกำหนดค่าตัวอย่างการกำหนดค่าลงใน /usr/local/etc

cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf 

และแทรกบรรทัดต่อไปนี้:

host_list=(user1 user2 user3) 

โดยที่ user1, user2 และ user3 เป็นผู้ใช้ที่ได้รับอนุญาตให้เริ่มเซิร์ฟเวอร์ wemux คุณสามารถเพิ่มผู้ใช้ได้มากเท่าที่ต้องการ โดยคั่นด้วยช่องว่าง ผู้ใช้รายอื่นจะสามารถเชื่อมต่อกับเซิร์ฟเวอร์ wemux ที่ทำงานอยู่ได้ แต่จะไม่ได้รับอนุญาตให้เริ่มเซิร์ฟเวอร์

ขอแนะนำเทอร์มินัลผู้ใช้หลายคนของ wemux

เพื่อให้สิ่งต่าง ๆ ง่ายขึ้น โปรดทราบว่าคุณสามารถนึกถึง wemux เป็นเครื่องมือที่อำนวยความสะดวกในการดูคอนโซลและการทำงานร่วมกันร่วมกันในเซสชัน tmux เดียวกัน

ตามที่อธิบายไว้ก่อนหน้านี้ ในไฟล์การกำหนดค่า (/usr/local/etc/wemux.conf) คุณต้องระบุแล้วว่าผู้ใช้รายใดจะได้รับอนุญาตให้เริ่มเซิร์ฟเวอร์ wemux หรืออีกนัยหนึ่งคือเซสชัน tmux ที่ผู้ใช้รายอื่นสามารถแนบมาได้ ในบริบทนี้ “ผู้ใช้” เหล่านี้เรียกว่าลูกค้า

สรุป:

  1. เซิร์ฟเวอร์ Wemux: เซสชัน tmux
  2. ไคลเอ็นต์ Wemux: ผู้ใช้ที่เข้าร่วมเซสชัน tmux ที่อธิบายไว้ข้างต้น

คำสั่งเหล่านี้คือคำสั่งที่ใช้จัดการเซิร์ฟเวอร์ wemux:

  1. wemux หรือ wemux start: เริ่มต้นเซิร์ฟเวอร์ wemux ใหม่ (หากไม่มีอยู่ หรือสร้างขึ้นใหม่) และสร้างซ็อกเก็ตใน /tmp/wemux-wemux ซึ่งจำเป็นต้องตั้งค่าการอนุญาตเป็น 1777 เพื่อให้ผู้ใช้รายอื่นสามารถเชื่อมต่อหรือแนบไปกับมัน:
  2. chmod 1777 /tmp/wemux-wemux 
    
  3. การแนบ wemux จะเชื่อมโยงคุณเข้ากับเซิร์ฟเวอร์ wemux ที่มีอยู่
  4. wemux stop ฆ่าเซิร์ฟเวอร์ wemux และลบซ็อกเก็ตที่สร้างไว้ก่อนหน้านี้ คำสั่งนี้จะต้องดำเนินการจากเทอร์มินัลที่แยกต่างหาก หรือคุณสามารถใช้ exit เชลล์บิวท์อินเพื่อปิดบานหน้าต่างและในที่สุดก็กลับสู่เซสชันเชลล์ปกติของคุณ
  5. ชื่อผู้ใช้ wemux kick กำจัดผู้ใช้ที่เข้าสู่ระบบผ่าน SSH ออกจากเซิร์ฟเวอร์ wemux และลบเซสชันโกงของเขา/เธอ (เพิ่มเติมเกี่ยวกับเรื่องนี้ในไม่กี่นาที) คำสั่งนี้ต้องการให้เซิร์ฟเวอร์ wemux เริ่มต้นเป็น root หรือมีสิทธิ์ sudo
  6. wemux config เปิดไฟล์การกำหนดค่าในตัวแก้ไขข้อความที่ระบุโดยตัวแปรสภาพแวดล้อม $EDITOR (เฉพาะในกรณีที่ตัวแปรดังกล่าวได้รับการกำหนดค่าในระบบของคุณ ซึ่งคุณสามารถตรวจสอบได้ด้วย echo $EDITOR ).

คำสั่ง tmux ทั้งหมดที่แสดงไว้ก่อนหน้านี้ใช้ได้ภายใน wemux โดยมีข้อดีที่ไคลเอ็นต์อาจแนบกับเซิร์ฟเวอร์ wemux ในโหมดใดโหมดหนึ่งจากสามโหมด .

ในการทำเช่นนั้น ให้ดำเนินการคำสั่งที่พบในคอลัมน์ COMMAND ด้านล่างใน “ลูกค้าเป้าหมาย“ พูดง่ายๆ ก็คือ (จะกลายเป็นลูกค้าจริงเมื่อได้เข้าร่วม wemux เซิร์ฟเวอร์):

Mode Description Commands
Mirror Read-only, non-interactive wemux mirror
Pair Interactive, client shares cursor with the server wemux pair
Rogue Joins an existing session but allows the client to uses independent windows wemux rogue

ลองมาดูที่ screencast ต่อไปนี้สำหรับการสาธิตโดยย่อของโหมดไคลเอนต์ทั้งสามโหมดที่ระบุไว้ในตารางด้านบน (ลำดับเดียวกัน) โปรดทราบว่าฉันใช้ Terminator เพื่อเริ่มต้นเซิร์ฟเวอร์ (ในฐานะผู้ใช้ gacanepa) ในบานหน้าต่างด้านซ้าย และเชื่อมต่อไคลเอนต์ (ในฐานะผู้ใช้ทดสอบ) ในบานหน้าต่างด้านขวา

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

คุณสมบัติอื่นๆ ของ wemux Terminal

หากย่อหน้าข้างต้นไม่ได้ให้เหตุผลเพียงพอที่จะลองใช้ wemux หวังว่าฟีเจอร์ต่อไปนี้จะทำให้คุณโน้มน้าวใจได้

ผู้ใช้ที่ได้รับอนุญาตให้เริ่มเซิร์ฟเวอร์ wemux (ตามคำสั่ง host_list ในไฟล์ /usr/local/etc/wemux.conf) สามารถโฮสต์ได้ หลายเซสชันพร้อมกันหากคำสั่ง allow_server_change ถูกตั้งค่าเป็นจริง:

allow_server_change="true"

หากต้องการเริ่มต้นสองเซสชันชื่อ la และ emea ให้ดำเนินการคำสั่งต่อไปนี้ในเทอร์มินัลสองแห่งที่แตกต่างกัน:

wemux join la && wemux start
wemux join emea && wemux start

อีกครั้ง เราจะใช้ เทอร์มิเนเตอร์ เพื่อดูเทอร์มินัลทั้งสองพร้อมกัน (ซึ่งคล้ายกับสิ่งที่คุณคาดหวังได้โดยการสลับไปใช้คอนโซลอื่นด้วย Ctrl+Alt+F1 ผ่าน F7):

หลังจากที่คุณกด Enter ทั้งสองเซสชันจะเริ่มต้นแยกกัน:

จากนั้น คุณสามารถให้ลูกค้าเข้าร่วมเซสชั่นใดก็ได้ด้วย:

wemux join la && wemux attach
Or
wemux join emea && wemux attach

สุดท้าย หากต้องการให้ผู้ใช้ระยะไกล (เชื่อมต่อผ่าน SSH) เริ่มต้นโดยอัตโนมัติบน wemux หลังจากเข้าสู่ระบบ และยกเลิกการเชื่อมต่อผู้ใช้จากเซิร์ฟเวอร์เมื่อแยกออก ให้เพิ่ม stanza ติดตามต่อท้ายไฟล์ ~/.bash_profile:

wemux [mode]; exit

โดยที่ [mode] เป็นหนึ่งในโหมดไคลเอนต์ที่แสดงไว้ก่อนหน้านี้
อีกทางหนึ่ง ลูกค้าสามารถเปลี่ยนจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งได้โดยใช้:

exit
wemux join [server name here] && wemux [mode]

สรุป

ในบทความนี้ เราได้อธิบายวิธีใช้ wemux เพื่อตั้งค่าการดูเทอร์มินัลของคุณจากระยะไกล (และแม้กระทั่งการทำงานร่วมกันร่วมกัน) ได้อย่างง่ายดาย wemux เป็นซอฟต์แวร์โอเพ่นซอร์สที่เผยแพร่ภายใต้ใบอนุญาต MIT และคุณสามารถปรับแต่งเพิ่มเติมได้ตามความต้องการ

พบซอร์สโค้ดได้ใน wemux Github และมีอยู่ในระบบของคุณใน /usr/local/bin/wemux ในพื้นที่เก็บข้อมูล Github เดียวกัน คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมนี้ได้

คุณพบว่าโพสต์นี้มีประโยชน์หรือไม่? โปรดแจ้งให้เราทราบว่าคุณคิดอย่างไรโดยใช้แบบฟอร์มด้านล่าง