ประวัติของชุดเครื่องมือ
คุณไม่ใช่คนแรกที่ต้องการเครื่องมือเช่นนี้ ผู้คนต้องการเครื่องมือเหล่านี้มา 30 ปีแล้ว และพวกมันมีมานานเกือบแล้วเช่นกัน
เครื่องมือที่เก่าแก่ที่สุดสำหรับสิ่งนี้คือแพ็คเกจ "pty" ของ Daniel J. Bernstein ซึ่งบรรยายโดย Rich Salz ในฐานะ "Ginsu knife" ซึ่ง Bernstein เขียนกลับไปเมื่อถึงปลายทศวรรษ 1990 เพื่อโกง nethack (sic!) แพคเกจ "pty" รุ่น 4 ได้รับการเผยแพร่ในปี 1992 ถึงcomp.sources.unix(ฉบับที่ 25 ฉบับที่ 127 ถึง 135) มันยังหาตำแหน่งได้บนเวิลด์ไวด์เว็บ Paul Vixie อธิบายในเวลา:
  ฉันจะว่าอย่างไรได้? มันหั่นเป็นสี่เหลี่ยมลูกเต๋าล้างจานเดินสุนัข มัน "ใช้งานได้" ซึ่งหมายความว่าหากคุณทำตามคำแนะนำคุณจะได้รับแพ็คเกจการทำงานโดยไม่ต้องถอนผมหรือขบเขี้ยวเคี้ยวฟันหรือทำกิจกรรมพอร์ตมาตรฐานอื่น ๆ
เบิร์นสไตน์ได้อัปเดตสิ่งนี้ในภายหลัง, เมื่ออยู่บนหรือก่อน 1999-04-07, ด้วยแพ็คเกจ "ptyget" ซึ่งเขาประกาศ:  
  ฉันได้รวบรวมตัวจัดสรรหลอกแบบใหม่ ptyget แล้ว ftp://koobera.math.uic.edu/pub/software/ptyget-0.50.tar.gzรุ่นอัลฟาที่ มีรายชื่อผู้รับจดหมายของ ptyget; djb-ptyget-requ...@koobera.math.uic.eduที่จะเข้าร่วมส่งข้อความว่างเปล่า 
  ฉันออกแบบอินเตอร์เฟสของ ptyget ตั้งแต่เริ่มต้น มันเป็นแบบแยกส่วนมากกว่า pty; ส่วนต่อประสาน pty พื้นฐานตอนนี้ถูกแบ่งออกเป็นสามส่วน:
  
  
  ptyget: โปรแกรมขนาดเล็กระดับต่ำ - โปรแกรม setuid เดียวในแพ็คเกจ - ที่จัดสรร pseudo-tty ใหม่และส่งไปยังโปรแกรมที่คุณเลือก  
  ptyspawn: โปรแกรมขนาดเล็กอีกตัวที่ใช้กระบวนการเด็กภายใต้ระบบหลอกรอให้มันออกจากระบบและเฝ้าดูการหยุด  
  ptyio: อีกโปรแกรมที่ใหญ่กว่าเพียงเล็กน้อยเท่านั้นที่เคลื่อนย้ายข้อมูลไปมา  
  
  
  ptyตอนนี้มีด Ginsu เก่าสะกดptybandageซึ่งเป็นคำพ้องความหมายสำหรับptyget ptyio -t ptyspawn; pty -dสำหรับการแนบโปรแกรมเครือข่ายไปยัง pseudo-ttys จะถูกสะกดptyrunซึ่งเป็นคำพ้องความหมายสำหรับptyget ptyio ptyspawn; และเป็นคำพ้องสำหรับnobuf 
  ptyget ptyio -r ptyspawn -23xฉันได้แยกฟีเจอร์การจัดการเซสชันออกเป็นแพ็คเกจแยกต่างหาก
แพ็คเกจที่แยกต่างหากนั้นคือแพ็คเกจ "sess"
"ptyget" เป็นที่น่าสังเกตว่าเป็นตัวอย่างรุ่นแรก ๆ และเป็นหนึ่งในไม่กี่กรณีที่เผยแพร่โดย Berstein ซึ่งเป็นเจ้าของระบบสร้าง "redo" ที่ไม่เคยตีพิมพ์  เป็นสารตั้งต้นที่ชัดเจนในการdependonredo-ifchange
การใช้
ptybandage
ptybandageเป็นสิ่งที่ผู้คนมักต้องการในเซสชันการเข้าสู่ระบบ กรณีการใช้งานหลักคือการสร้างโปรแกรมที่มีความอ่อนไหวต่อว่าอินพุตมาตรฐานเอาต์พุตหรือข้อผิดพลาดถูกเชื่อมต่อกับเทอร์มินัลทำงานด้วยวิธีนั้นแม้ว่าในความเป็นจริงแล้วในเชลล์ไพพ์ไลน์หรือมีการเปลี่ยนเส้นทางไฟล์มาตรฐาน
มันต้องใช้คำสั่งเพื่อเรียกใช้ (ซึ่งจะต้องมีคำสั่งภายนอกที่เหมาะสมของหลักสูตร) และทำงานในลักษณะที่จะคิดว่านำเข้าส่งออกและข้อผิดพลาดมาตรฐานของมันจะแนบไปกับสถานีที่เชื่อมต่อผู้ที่ผ่านไปptybandageมา อินพุตมาตรฐานเอาต์พุตและข้อผิดพลาดมาตรฐาน
มันเกี่ยวข้องกับความแตกต่างของการทำงานภายใต้เชลล์ควบคุมงานตรวจสอบให้แน่ใจว่าอักขระ STOP เทอร์มินัลไม่เพียงหยุดptybandageแต่ยังหยุดโปรแกรมที่รันอยู่ที่เชื่อมต่อกับเทอร์มินัลภายใน
ptyrun
ptyrunเป็นสิ่งที่คนทั่วไปต้องการในเซิร์ฟเวอร์เครือข่าย TCP กรณีการใช้งานหลักคือสภาพแวดล้อมการดำเนินการทางไกลที่ยังไม่ได้ตั้งค่าเทอร์มินัลตัวเองรันโปรแกรมที่ไม่ทำงานตามที่ต้องการเมื่อไม่มีเทอร์มินัล
มันไม่ได้คาดหวังว่าจะทำงานภายใต้เชลล์ควบคุมงานและถ้าคำสั่งที่กำลังเรียกใช้ได้รับสัญญาณหยุดมันก็เริ่มต้นใหม่
ชุดเครื่องมือที่มีอยู่
Dru Nelson เผยแพร่ทั้ง "pty" รุ่น 4 และ "ptyget"
Paul Jarc เผยแพร่ ptyget รุ่นคงที่ซึ่งพยายามจัดการกับอุปกรณ์หลอกระบบเทอร์มินัล ioctls ในระบบปฏิบัติการเฉพาะในต้นฉบับที่ระบบปฏิบัติการไม่ได้ให้บริการอีกต่อไป
ซอร์สแพ็กเกจ nosh มาพร้อมกับ workalike ptybandangeและptyrunสคริปต์ซึ่งใช้execlineเครื่องมือของ Laurent Bercot และคำสั่งการจัดการ pseudo-terminal ของ nosh แพ็กเกจเอง ในฐานะของ nosh เวอร์ชัน 1.23 สิ่งเหล่านี้มีอยู่ในแพ็คเกจก่อนบรรจุในแพ็คเกจ nosh-terminal-extras (เวอร์ชันก่อนหน้านี้มอบให้เฉพาะกับคนที่สร้างขึ้นจากแหล่งที่มา)
ตัวอย่างบางส่วนใช้
Jurjgen Oskam ที่ใช้ptybandageบน AIXเพื่อฟีดอินพุตจากเอกสารที่นี่ไปยังโปรแกรมที่ explicity เปิดขึ้นและอ่านเทอร์มินัลการควบคุมสำหรับพร้อมต์รหัสผ่าน:
$ ptybandage dsmadmc << EOF> uit.txt
joskam
รหัสผ่าน
เซสชั่นแบบสอบถาม
กระบวนการค้นหา
เลิก
EOF
Andy Bradford ใช้งานptyrunบน OpenBSDภายใต้ daemontools และ ucspi-tcp เพื่อให้bgplgshโปรแกรมควบคุมเราเตอร์แบบโต้ตอบสามารถเข้าถึงได้ผ่านเครือข่ายในขณะที่คิดว่ามันกำลังพูดกับเทอร์มินัล:
#! / bin / ดวลจุดโทษ
exec 2> & 1
exec envuidgid rviews tcpserver -vDRHl0 0 23 ptyrun / usr / bin / bgplgsh
อ่านเพิ่มเติม
- Daniel J. Bernstein (1992-02-19)  v25i127: ทั่วไปอินเตอร์เฟซกับอุปกรณ์หลอก comp.sources.unix  25 (127)
 
- Daniel J. Bernstein (1991-10-04)  ความรู้เบื้องต้นเกี่ยวกับการจัดการเซสชั่น Bernstein บน TTYs JdeBP
 
- Paul Jarc  ptyget ซอฟต์แวร์ของ Paul Jarc
 
- Jonathan de Boyne Pollard (2016) แดเนียลเจ Bernstein ของชุดเครื่องมือ โปรแกรม
 
- Dru Nelson  drudru / pty4 GitHub
 
- Dru Nelson  drudru / ptyget GitHub
 
- Laurent Bercot เอ็กซีคิวต์ ซอฟต์แวร์.
 
- Jonathan de Boyne Pollard (2016)  โปรแกรมแดเนียลเจ Bernstein ของทั้งหมดในที่เดียว โปรแกรม
 
- Jonathan de Boyne Pollard (2014)  แพคเกจ Nosh โปรแกรม
 
- Jonathan de Boyne Pollard (2012)  แนะนำให้รู้จักกับ 
redoคำตอบที่ได้รับบ่อย 
- Reyk Floeter  
bgplgsh. 8. หน้าคู่มือ OpenBSD