<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.
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 và 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, \[ và \] 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ì!
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.
<Trước | Nội dung | Tiếp theo>