ตามคำถามนี้: /server/534449
การcat /dev/urandom
ทำให้เทอร์มินัลเทอร์มินัลบางตัวทำงานได้อย่างไร
ตามคำถามนี้: /server/534449
การcat /dev/urandom
ทำให้เทอร์มินัลเทอร์มินัลบางตัวทำงานได้อย่างไร
คำตอบ:
ในขณะที่มีอักขระ ASCII ปกติที่พิมพ์ได้ของคุณที่ส่งไปมาบนเทอร์มินัล แต่ก็มีอักขระที่ไม่สามารถพิมพ์ได้จำนวนมากที่ใช้สำหรับระบบเพื่อสื่อสารกับเทอร์มินัล ตัวอย่างเช่นหากโปรแกรมส่งอักขระ0x07
("อักขระ ASCII Bell") เทอร์มินัลของคุณควรจะส่งเสียงบี๊บ
ลำดับพิเศษอื่น ๆ สามารถนำมาใช้เพื่อเปลี่ยนสีของข้อความที่จะแสดงทิศทางที่มันจะแสดงชื่อของหน้าต่างขนาดของหน้าต่าง ฯลฯ ในหมู่สิ่งอื่น ๆ
เมื่อคุณ
cat /dev/urandom
กลุ่มของอักขระสุ่มจะถูกเทเทอร์มินัลของคุณและเทอร์มินัลไม่สามารถบอกได้ว่ามันไม่ใช่รหัสควบคุมจริง
เนื่องจากโปรแกรมกำลังส่งคำสั่งสุ่มไปยังเทอร์มินัลอย่างมีประสิทธิภาพเทอร์มินัลจะสิ้นสุดลงในสถานะสุ่มซึ่งมักใช้ไม่ได้
เอาต์พุตแบบสุ่มบางส่วนจะเป็นรหัสหลบหนี ANSI ( http://en.wikipedia.org/wiki/ANSI_escape_code ) ซึ่งสามารถทำสิ่งสนุก ๆ เช่นซ่อนเคอร์เซอร์หรือเลือกแบบอักษรอื่น ความเป็นไปได้อีกอย่างคือลำดับของยูนิโค้ด: การทดสอบแบบสุ่มจะไม่ถูกต้อง UTF-8 และอาจเป็นไปได้ว่าเทอร์มินัล unicode ที่รับรู้ทั้งหมดอาจจัดการได้อย่างงดงาม
cat /dev/urandom
จะให้กระแสข้อมูลแบบสุ่มไบต์ระหว่าง0
และ255
ไม่ใช่ค่าทั้งหมดที่เป็นอักขระข้อความที่ถูกต้อง เนื่องจากหน้าต่างเทอร์มินัลเป็นฟีดข้อมูลที่ไม่ถูกต้องจึงไม่เคยคาดหวังว่าจะสามารถจัดการแอปพลิเคชันเทอร์มินัลให้อยู่ในสถานะ "เสีย"