ฉันมีสิทธิ์เข้าถึง ssh กับเครื่องระยะไกล ในเครื่องนี้ถ้าฉันเรียกฉันได้รับecho $TERM
xterm
ถ้าฉันต้องการเปลี่ยนเทอร์มินัลอีมูเลเตอร์เป็นอีมูเลเตอร์อื่น (สมมติว่าติดตั้งบนเครื่องระยะไกล) ฉันจะทำอย่างไร
ฉันมีสิทธิ์เข้าถึง ssh กับเครื่องระยะไกล ในเครื่องนี้ถ้าฉันเรียกฉันได้รับecho $TERM
xterm
ถ้าฉันต้องการเปลี่ยนเทอร์มินัลอีมูเลเตอร์เป็นอีมูเลเตอร์อื่น (สมมติว่าติดตั้งบนเครื่องระยะไกล) ฉันจะทำอย่างไร
คำตอบ:
ค่าของตัวแปรสภาพแวดล้อม TERM ถูกใช้โดยเซิร์ฟเวอร์ (ในระบบ V หรือ BSD, OSes ที่ได้รับ) เพื่อควบคุมวิธีที่ระบบรับรู้อินพุตและความสามารถใดที่มีอยู่สำหรับเอาต์พุต เทอร์มินัลบางชนิดมีลักษณะคล้ายกันมากพอที่จะสามารถเปลี่ยนได้ในขณะที่ยังคงมีประโยชน์อยู่ในขณะที่ประเภทอื่น ๆ อาจทำให้ระบบใช้งานไม่ได้จนกว่าคุณจะเปิดการเชื่อมต่อใหม่ด้วยค่าที่รองรับสำหรับ TERM ตัวอย่างเช่นจากระบบ Linux หนึ่งไปอีกระบบหนึ่งคุณอาจพบว่าการตั้งค่า vt100, vt220 และ xterm แตกต่างกันเล็กน้อย ความแตกต่างส่วนใหญ่จะเป็นวิธีแสดงผลลัพธ์และว่าสีหรือแบบอักษรตัวหนาพร้อมใช้งานกับเทอร์มินัลประเภทนั้นหรือไม่ ฐานข้อมูล termcap แสดงรายการประเภทเทอร์มินัลทั้งหมดพร้อมความสามารถที่หลากหลาย
ตราบใดที่คุณไม่เปลี่ยนไปใช้ประเภทเทอร์มินัลที่แป้นพิมพ์และหน้าจอของคุณเข้ากันไม่ได้คุณก็สามารถทำได้
อ่าน man page สำหรับคำศัพท์และ termcap บนระบบของคุณสำหรับข้อมูลเพิ่มเติม
วิธีเปลี่ยนประเภทเทอร์มินัล:
ในทุบตี:
export TERM=vt100
ใน bourne shell หรือ ksh:
TERM=vt100
export TERM
ใน csh หรือ tcsh:
setenv TERM vt100
vt100
เป็นเครื่องปลายทางที่ปลอดภัยสำหรับการเริ่มเล่น มันเข้ากันได้กับ xterm แต่ไม่แสดงสีหรือแบบอักษรหนาและอาจไม่รู้จักปุ่ม F * ของคุณ แต่คุณไม่น่าจะทำสิ่งสกปรกด้วย vt100
ผู้คนจำนวนมากใช้การตรวจสอบเทอร์มินัลในสคริปต์เริ่มต้นส่วนบุคคลเพื่อปรับประสบการณ์ผู้ใช้ให้เหมาะสมโดยขึ้นอยู่กับวิธีที่พวกเขาเข้าสู่เซิร์ฟเวอร์ ตัวอย่างเช่นตั้งค่า PS1 ธรรมดาหากคุณใช้ vt100 ใช้สีและตัวแปรแบบไดนามิกเมื่อใช้ bash ใน xterm
ขอให้โชคดีกับการวิจัยของคุณ
คุณเข้าใจผิด
อินสแตนซ์คอนโซลหรือเทอร์มินัลหรือ PuTTY ของคุณที่ด้าน LOCAL เป็น "เทอร์มินัลอีมูเลเตอร์" ที่เกิดขึ้นจริงถึงแม้ว่าในปัจจุบันเราจะย่อให้เป็น "เทอร์มินัล" การใช้งานเกิดจากด้านหลังเมื่อผู้คนใช้จอเทอร์มินัลจอภาพและคีย์บอร์ดเพื่อลงชื่อเข้าใช้เซิร์ฟเวอร์เมนเฟรมแทนที่จะใช้คอนโซลหลายตัวและสภาพแวดล้อมแบบกราฟิกผู้ใช้
ตัวแปร $ TERM จะบอกระบบรีโมตว่าโค้ดควบคุมชนิดใดที่เทอร์มินัลของคุณจะเข้าใจเมื่อมันส่งพวกมัน (ตัวอย่างเช่นเพื่อสร้างเมนูแบบข้อความหรืออะไรก็ตามที่อยู่บน libncurses)
ฉันไม่แน่ใจว่าคุณต้องการทำอะไร แต่การเปลี่ยน $ TERM อาจไม่ช่วยได้
Ubuntu 11.10
ในเครื่องท้องถิ่นของฉันและRed Hat Enterprise Linux Server release 5.4 (Tikanga)
บนเครื่องระยะไกล)
$TERM
ตัวแปร นอกจากนี้ฉันไม่ได้ถามคำถามนี้เพื่อจุดประสงค์เดียวในการค้นหาวิธีแก้ไขปัญหา / คำถามอื่น หากมีสิ่งใดคำถามอื่นของฉันก็กระตุ้นคำถามนี้ ในที่สุดฉันไม่คิดว่ามีอะไรผิดปกติโดยหวังว่าจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการทำงานของเครื่องเลียนแบบเครื่องเทอร์มินัลโดยการถามคำถามนี้
TERM
ตัวแปร เป็นส่วนใหญ่จำเป็นเมื่อคุณเข้าสู่ระบบเก่าที่ไม่ได้รู้เกี่ยวกับชื่อของสถานีใหม่ (และมีไม่ได้หลายประเภทอาคารผู้โดยสารแห่งใหม่ในช่วง 15 ปีที่ผ่านมาหรือการเลียนแบบดังนั้นขั้วมากที่สุดสไตล์ตัวเองเป็นxterm
)TERM
เป็นสิ่งที่โปรแกรมประเภทเทอร์มินัลเชื่อว่าพวกเขากำลังพูดคุยกับมันไม่ได้เปลี่ยนสิ่งที่เป็นขั้ว