Thay đổi trình giả lập thiết bị đầu cuối


10

Tôi có quyền truy cập ssh vào một máy từ xa. Trong máy này nếu tôi chạy echo $TERMtôi nhận được xterm.

Nếu tôi muốn thay đổi trình giả lập thiết bị đầu cuối của mình sang một số trình giả lập khác (giả sử rằng nó được cài đặt trên máy từ xa), tôi sẽ làm thế nào?

Câu trả lời:


15

Giá trị của biến môi trường TERM được máy chủ sử dụng (trong hệ thống V hoặc BSD, hệ điều hành dẫn xuất) để kiểm soát cách đầu vào được hệ thống nhận ra và những khả năng nào tồn tại cho đầu ra. Một số loại thiết bị đầu cuối tương tự nhau đủ để chúng có thể được thay thế trong khi vẫn còn hữu dụng, trong khi các loại khác có thể làm cho hệ thống không sử dụng được cho đến khi bạn mở một kết nối mới với giá trị được hỗ trợ cho TERM. Ví dụ: từ hệ thống Linux này sang hệ thống Linux khác, có lẽ bạn sẽ gặp rất ít sự khác biệt giữa các cài đặt vt100, vt220 và xterm. Hầu hết sự khác biệt sẽ là cách hiển thị đầu ra và màu sắc hoặc phông chữ đậm có sẵn cho loại thiết bị đầu cuối đó hay không. Cơ sở dữ liệu termcap liệt kê tất cả các loại thiết bị đầu cuối, với các khả năng khác nhau của chúng.

Miễn là bạn không chuyển sang loại thiết bị đầu cuối mà bàn phím và màn hình của bạn không tương thích, bạn sẽ ổn thôi.

đọc trang hướng dẫn sử dụng thuật ngữ và thuật ngữ trên hệ thống của bạn để biết thêm thông tin.

Để thay đổi loại thiết bị đầu cuối:

trong bash:

export TERM=vt100

trong vỏ bourne hoặc ksh:

TERM=vt100
export TERM

trong csh hoặc tcsh:

setenv TERM vt100

vt100là một thiết bị đầu cuối khá an toàn để bắt đầu chơi với. nó tương thích với xterm, nhưng nó không hiển thị màu sắc hoặc phông chữ đậm và có thể không nhận ra các phím F * của bạn, nhưng bạn không thể thực sự làm hỏng bất cứ điều gì khi sử dụng vt100.

Rất nhiều người sử dụng phát hiện thiết bị đầu cuối trong các tập lệnh init cá nhân để tối ưu hóa trải nghiệm người dùng của họ tùy thuộc vào cách họ đăng nhập vào máy chủ. Ví dụ: đặt PS1 đơn giản nếu bạn đang sử dụng vt100, sử dụng các biến màu và biến động khi sử dụng bash trong xterm.

Chúc may mắn với nghiên cứu của bạn.


3
@intrpc Lưu ý rằng khá hiếm khi cần thay đổi TERMbiến; Điều này hầu như cần thiết khi bạn đăng nhập vào một hệ thống cũ hơn mà không biết về tên của một thiết bị đầu cuối mới hơn (và đã không có nhiều loại thiết bị đầu cuối mới trong 15 năm qua hoặc lâu hơn, hầu hết các trình giả lập thiết bị đầu cuối đều tự phong cách xterm). TERMlà những gì các chương trình loại thiết bị đầu cuối tin rằng họ đang nói chuyện, nó không thay đổi thiết bị đầu cuối thực sự là gì.
Gilles 'SO- ngừng trở nên xấu xa'

9

Bạn đang hiểu lầm.

Bảng điều khiển hoặc thiết bị đầu cuối hoặc thiết bị đầu cuối PuTTY của bạn ở phía ĐỊA PHƯƠNG là "trình giả lập thiết bị đầu cuối" thực tế, mặc dù ngày nay chúng ta chỉ rút ngắn sau đó thành "thiết bị đầu cuối". Việc sử dụng bắt nguồn từ phía sau khi mọi người thực sự sử dụng các thiết bị đầu cuối màn hình và bàn phím để đăng nhập vào máy chủ máy tính lớn thay vì sử dụng nhiều bàn giao tiếp và môi trường người dùng đồ họa.

Biến $ TERM chỉ đơn giản cho hệ thống từ xa biết loại mã điều khiển nào mà thiết bị đầu cuối của bạn sẽ hiểu khi nó gửi chúng (ví dụ, để tạo các menu dựa trên văn bản hoặc bất cứ thứ gì dựa trên libncurses).

Tôi không chắc chính xác những gì bạn muốn thực hiện, nhưng thay đổi $ TERM có thể sẽ không giúp ích.


Cảm ơn @Shadur, điều này rất hữu ích. Tôi muốn kích hoạt hỗ trợ cho nhiều màu sắc hơn. Tôi đang gặp vấn đề với việc thoát nhân vật, như tôi đã giải thích trong bản cập nhật trong câu hỏi này . Trong trường hợp có vấn đề, cả máy / hệ thống đều hiện đại ( Ubuntu 11.10trên máy cục bộ của tôi và Red Hat Enterprise Linux Server release 5.4 (Tikanga)trên máy từ xa)
Amelio Vazquez-Reina

Xin lỗi, liên kết là câu hỏi sai. Tôi chỉ chỉnh sửa nhận xét của tôi ở trên.
Amelio Vazquez-Reina

Sau đó, vấn đề của bạn vẫn không phải là biến TERM, bởi vì cửa sổ gnome-terminal của tôi, được SSH đến một máy chủ từ xa có giá trị $ TERM của xterm không có vấn đề gì khi hiển thị màu ansi. Có thể tốt hơn nếu bạn giải thích vấn đề của mình thay vì hỏi cách thực hiện những gì bạn nghĩ nên là giải pháp.
Shadur

Cảm ơn, nhưng tôi không nói rằng "vấn đề của tôi" là $TERMbiến. Ngoài ra, tôi không đặt câu hỏi này cho mục đích duy nhất là tìm giải pháp cho một vấn đề / câu hỏi khác. Nếu bất cứ điều gì, câu hỏi khác của tôi thúc đẩy câu hỏi này. Cuối cùng, tôi không nghĩ có gì sai khi hy vọng tìm hiểu thêm về cách trình giả lập thiết bị đầu cuối hoạt động bằng cách đặt câu hỏi này.
Amelio Vazquez-Reina

Nhân tiện, đừng hiểu sai ý tôi, tôi đánh giá cao lời khuyên của bạn và, như tôi đã nói trước đó, câu trả lời của bạn đã giúp tôi hiểu rõ hơn về trình giả lập thiết bị đầu cuối.
Amelio Vazquez-Reina
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.