มี$TERM
ไว้เพื่ออะไร
$TERM
ตัวแปรสำหรับการใช้งานโดยการใช้งานจะใช้ประโยชน์จากความสามารถของสถานีว่า
ตัวอย่างเช่นหากโปรแกรมต้องการแสดงข้อความสีก่อนอื่นคุณต้องค้นหาว่าเทอร์มินัลที่คุณใช้รองรับข้อความสีหรือไม่และถ้าเป็นเช่นนั้นจะทำอย่างไรให้ทำข้อความสี
วิธีการทำงานคือระบบเก็บไลบรารีของเทอร์มินัลที่รู้จักและความสามารถของพวกเขา ในระบบส่วนใหญ่ที่อยู่ในนี้/usr/share/terminfo
(นอกจากนี้ยังมี termcap แต่เป็นมรดกที่ไม่ได้ใช้อีกมาก)
ดังนั้นสมมติว่าคุณมีโปรแกรมที่ต้องการแสดงข้อความสีแดง มันทำให้การเรียกไปยังไลบรารี terminfo ที่บอกว่า " ให้ลำดับของไบต์ที่ฉันต้องส่งสำหรับข้อความสีแดงสำหรับเทอร์มินัล xterm " จากนั้นมันก็ใช้ไบต์และพิมพ์ออกมา คุณสามารถลองด้วยตัวเองโดยการทำ
tput setf 4; echo hi
สิ่งนี้จะได้รับsetf
ความสามารถ terminfo และส่งผ่านพารามิเตอร์4
ซึ่งเป็นสีที่คุณต้องการ
ทำไมเทอร์มินอล gnome ถึงตัวของมันเอง:
ตอนนี้สมมติว่าคุณมีเทอร์มินัลอีมูเลเตอร์ใหม่ที่เพิ่งเปิดตัวและไลบรารี terminfo ของระบบยังไม่มีคำจำกัดความสำหรับมัน เมื่อแอปพลิเคชันของคุณค้นหาวิธีการทำบางสิ่งมันจะล้มเหลวเนื่องจากเทอร์มินัลไม่เป็นที่รู้จัก
วิธีที่เครื่องของคุณไปถึงจุดนี้คือการโกหกว่าใครเป็นใคร ดังนั้นเทอร์มินอล gnome ของคุณจึงพูดว่า " ฉันคือ xterm "
Xterm เป็นเทอร์มินัลพื้นฐานที่มีมาตั้งแต่รุ่งอรุณของ X11 และเทอร์มินัลอีมูเลเตอร์ส่วนใหญ่สนับสนุนสิ่งที่มันรองรับ ดังนั้นโดยเทอร์มินอล gnome ที่บอกว่าเป็น xterm มีแนวโน้มที่จะมีคำจำกัดความในไลบรารี terminfo มากกว่า
ข้อเสียของการโกหกเกี่ยวกับประเภทเครื่องของคุณคือเครื่องอาจรองรับมากกว่า xterm อย่างมาก (ตัวอย่างเช่นเครื่องใหม่หลายเครื่องรองรับ 256 สีในขณะที่เครื่องเก่ารองรับเฉพาะเครื่อง 16) ดังนั้นคุณจะมีการแลกเปลี่ยนรับคุณสมบัติเพิ่มเติมหรือมีความเข้ากันได้มากขึ้น xterm
อาคารส่วนใหญ่จะเลือกสำหรับการทำงานร่วมกันมากขึ้นและทำให้เลือกที่จะโฆษณาตัวเองว่าเป็น
หากคุณต้องการแทนที่สิ่งนี้เทอร์มินัลจำนวนมากจะเสนอวิธีกำหนดค่าลักษณะการทำงานบางอย่าง export TERM=gnome-terminal
แต่คุณยังสามารถเพียงแค่ทำ