OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

Thêm màu

Hầu hết các chương trình giả lập thiết bị đầu cuối đều phản ứng với các chuỗi ký tự không in nhất định để kiểm soát những thứ như thuộc tính ký tự (như màu sắc, văn bản in đậm và văn bản nhấp nháy đáng sợ) và vị trí con trỏ. Chúng tôi sẽ đề cập đến vị trí con trỏ trong một chút, nhưng trước tiên chúng tôi sẽ xem xét màu sắc.


hình ảnh

Sự nhầm lẫn về thiết bị đầu cuối

Quay trở lại thời cổ đại, khi thiết bị đầu cuối được kết nối với máy tính từ xa, có rất nhiều thương hiệu thiết bị đầu cuối cạnh tranh và chúng đều hoạt động khác nhau. Họ có những bàn phím khác nhau và tất cả đều có những cách khác nhau để diễn giải sự hình thành điều khiển. Các hệ thống giống Unix và Unix có hai hệ thống con khá phức tạp để đối phó với khối điều khiển thiết bị đầu cuối (được gọi là hạn chót ga cuối). Nếu bạn nhìn vào phần sâu nhất của cài đặt trình mô phỏng đầu cuối, bạn có thể tìm thấy một thiết lập cho loại mô phỏng thiết bị đầu cuối.

Trong nỗ lực làm cho các thiết bị đầu cuối nói một số loại ngôn ngữ thông dụng, Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) đã phát triển một bộ tiêu chuẩn gồm các ký tự để điều khiển các thiết bị đầu cuối video. Người dùng DOS lâu đời sẽ nhớ AN-SI.SYS tệp đã được sử dụng để cho phép giải thích các mã này.


Màu ký tự được kiểm soát bằng cách gửi trình giả lập đầu cuối Mã thoát ANSI em- nằm trong dòng ký tự sẽ được hiển thị. Mã điều khiển không “in ra” trên màn hình, thay vào đó nó được thiết bị đầu cuối diễn giải như một lệnh. Như chúng ta đã thấy trong bảng trên, \[ \] trình tự được sử dụng để đóng gói các ký tự không in được. Mã thoát ANSI bắt đầu bằng một số bát phân 033 (mã được tạo bởi khóa thoát), sau đó là một thuộc tính ký tự tùy chọn, theo sau là một lệnh. Ví dụ: mã để đặt màu văn bản thành bình thường (thuộc tính = 0), văn bản màu đen là:

\ 033 [0; 30phút

Đây là bảng các màu văn bản có sẵn. Lưu ý rằng các màu được chia thành hai nhóm, được phân biệt bằng cách áp dụng thuộc tính ký tự đậm (1) tạo ra sự phổ biến của các màu “nhạt”:


Bảng 13- 2: Chuỗi thoát được sử dụng để đặt màu văn bản


Trình tự

Văn bản màu

Trình tự

Văn bản màu

\ 033 [0; 30phút

Da Đen

\ 033 [1; 30phút

Màu xám đen

\ 033 [0; 31phút

đỏ

\ 033 [1; 31phút

Đỏ nhạt

\ 033 [0; 32phút

màu xanh lá

\ 033 [1; 32phút

Màu xanh lợt

\ 033 [0; 33phút

nâu

\ 033 [1; 33phút

Màu vàng

\ 033 [0; 34phút

Màu xanh da trời

\ 033 [1; 34phút

Ánh sáng xanh

\ 033 [0; 35phút

Màu tím

\ 033 [1; 35phút

Tím nhạt

Thêm màu


\ 033 [0; 36phút

Cyan

\ 033 [1; 36phút

Lục lam nhạt

\ 033 [0; 37phút

ánh sáng Grey

\ 033 [1; 37phút

trắng


Hãy thử tạo một dấu nhắc màu đỏ. Chúng tôi sẽ chèn mã thoát vào đầu:



$ PS1 = "\ [\ 033 [0; 31 phút \] <\ u @ \ h \ W> \ $"

$

$ PS1 = "\ [\ 033 [0; 31 phút \] <\ u @ \ h \ W> \ $"

$


Điều đó hoạt động, nhưng lưu ý rằng tất cả văn bản mà chúng tôi nhập sau lời nhắc cũng có màu đỏ. Để khắc phục điều này, chúng tôi sẽ thêm một mã thoát khác vào cuối lời nhắc để thông báo cho thiết bị đầu cuối quay lại màu trước đó:



$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$

$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$


Cái đó tốt hơn!

Bạn cũng có thể đặt màu nền văn bản bằng cách sử dụng các mã được liệt kê bên dưới. Màu nền không hỗ trợ thuộc tính đậm.


Bảng 13-3: Trình tự thoát được sử dụng để đặt màu nền


Trình tự

Màu nền

Trình tự

Màu nền

\ 033 [0; 40phút

Da Đen

\ 033 [0; 44phút

Màu xanh da trời

\ 033 [0; 41phút

đỏ

\ 033 [0; 45phút

Màu tím

\ 033 [0; 42phút

màu xanh lá

\ 033 [0; 46phút

Cyan

\ 033 [0; 43phút

nâu

\ 033 [0; 47phút

ánh sáng Grey


Chúng tôi có thể tạo lời nhắc có nền màu đỏ bằng cách áp dụng một thay đổi đơn giản cho mã thoát đầu tiên:



$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<me@linuxbox ~> $

$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<me@linuxbox ~> $


Hãy thử các mã màu và xem bạn có thể tạo ra những gì!


hình ảnh

Lưu ý: Bên cạnh các thuộc tính ký tự bình thường (0) và in đậm (1), văn bản cũng có thể được cung cấp các thuộc tính gạch dưới (4), nhấp nháy (5) và nghịch đảo (7). Vì lợi ích của hương vị tốt, nhiều trình giả lập thiết bị đầu cuối từ chối tôn trọng thuộc tính nhấp nháy, tuy nhiên.


hình ảnh


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: