การเปลี่ยนเทอร์มินัลอีมูเลเตอร์


10

ฉันมีสิทธิ์เข้าถึง ssh กับเครื่องระยะไกล ในเครื่องนี้ถ้าฉันเรียกฉันได้รับecho $TERMxterm

ถ้าฉันต้องการเปลี่ยนเทอร์มินัลอีมูเลเตอร์เป็นอีมูเลเตอร์อื่น (สมมติว่าติดตั้งบนเครื่องระยะไกล) ฉันจะทำอย่างไร

คำตอบ:


15

ค่าของตัวแปรสภาพแวดล้อม 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

ขอให้โชคดีกับการวิจัยของคุณ


3
@intrpc โปรดทราบว่ามันค่อนข้างยากที่จะต้องเปลี่ยนTERMตัวแปร เป็นส่วนใหญ่จำเป็นเมื่อคุณเข้าสู่ระบบเก่าที่ไม่ได้รู้เกี่ยวกับชื่อของสถานีใหม่ (และมีไม่ได้หลายประเภทอาคารผู้โดยสารแห่งใหม่ในช่วง 15 ปีที่ผ่านมาหรือการเลียนแบบดังนั้นขั้วมากที่สุดสไตล์ตัวเองเป็นxterm) TERMเป็นสิ่งที่โปรแกรมประเภทเทอร์มินัลเชื่อว่าพวกเขากำลังพูดคุยกับมันไม่ได้เปลี่ยนสิ่งที่เป็นขั้ว
Gilles 'หยุดความชั่วร้าย'

9

คุณเข้าใจผิด

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

ตัวแปร $ TERM จะบอกระบบรีโมตว่าโค้ดควบคุมชนิดใดที่เทอร์มินัลของคุณจะเข้าใจเมื่อมันส่งพวกมัน (ตัวอย่างเช่นเพื่อสร้างเมนูแบบข้อความหรืออะไรก็ตามที่อยู่บน libncurses)

ฉันไม่แน่ใจว่าคุณต้องการทำอะไร แต่การเปลี่ยน $ TERM อาจไม่ช่วยได้


ขอบคุณ @Shadur สิ่งนี้มีประโยชน์ ฉันต้องการเปิดใช้งานการรองรับสีเพิ่มเติม ฉันมีปัญหากับการหลบหนีตัวละครต่าง ๆ ตามที่อธิบายในการอัพเดตในคำถามนี้ ในกรณีที่สำคัญทั้งสองเครื่อง / ระบบทันสมัย ​​( Ubuntu 11.10ในเครื่องท้องถิ่นของฉันและRed Hat Enterprise Linux Server release 5.4 (Tikanga)บนเครื่องระยะไกล)
Amelio Vazquez-Reina

ขออภัยลิงค์นี้เป็นคำถามที่ผิด ฉันเพิ่งแก้ไขความคิดเห็นของฉันด้านบน
Amelio Vazquez-Reina

ปัญหาของคุณก็ยังไม่ใช่ตัวแปร TERM เนื่องจากหน้าต่าง gnome-terminal ของฉัน SSHed ไปยังเซิร์ฟเวอร์ระยะไกลที่มีค่า $ TERM ของ xterm ไม่มีปัญหาในการแสดงสี ansi มันอาจจะดีกว่าถ้าคุณอธิบายปัญหาแทนที่จะถามว่าจะใช้สิ่งที่คุณคิดว่าควรเป็นทางออกอย่างไร
Shadur

ขอบคุณ แต่ฉันไม่ได้บอกว่า "ปัญหาของฉัน" เป็น$TERMตัวแปร นอกจากนี้ฉันไม่ได้ถามคำถามนี้เพื่อจุดประสงค์เดียวในการค้นหาวิธีแก้ไขปัญหา / คำถามอื่น หากมีสิ่งใดคำถามอื่นของฉันก็กระตุ้นคำถามนี้ ในที่สุดฉันไม่คิดว่ามีอะไรผิดปกติโดยหวังว่าจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการทำงานของเครื่องเลียนแบบเครื่องเทอร์มินัลโดยการถามคำถามนี้
Amelio Vazquez-Reina

โดยวิธีการที่ไม่ได้รับฉันผิดฉันขอขอบคุณคำแนะนำของคุณและตามที่ฉันกล่าวก่อนหน้านี้คำตอบของคุณช่วยให้ฉันเข้าใจการเลียนแบบขั้วได้ดีขึ้น
Amelio Vazquez-Reina
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.