Không thực sự; màu của đầu ra của chương trình đã cho được điều khiển bởi lệnh chứ không phải bởi thiết bị đầu cuối.
Điều đó nói rằng, giả sử thiết bị đầu cuối của bạn hiểu mã thoát ANSI cho màu sắc (hầu hết làm), bạn có thể sử dụng mã thoát để đặt màu nhắc nhở mong muốn ở đầu dấu nhắc và màu đầu ra mong muốn của bạn ở cuối; điều này sẽ dẫn đến các dòng lệnh của bạn cũng có màu bất kỳ mà bạn đặt cho đầu ra, nhưng điều đó có thể gần đến mức bạn sẽ tìm thấy những gì bạn đang tìm kiếm. Ví dụ: như sau:
$ export PS1='\[\033[00;35m\]\u\[\033[00m\]@\[\033[00;35m\]\H\[\033[00m\]:\[\033[00;33m\]\W\[\033[00m\] \$\[\033[00;34m '
sẽ cung cấp cho bạn một dấu nhắc giống như:
user@host:wd $ _
với 'người dùng' và 'máy chủ' có màu tím, 'wd' (cwd của bạn) có màu nâu (vàng đậm) và mọi thứ sau '$' trong bất kỳ thiết bị đầu cuối nào của bạn sử dụng cho màu xanh nhạt. (Một xterm mặc định sẽ hiển thị điều này bằng màu lục lam; gnome-terminal dường như mặc định có màu xanh hoa ngô khá đẹp.)
Mã màu thực tế, như được chỉ định trong định dạng cần thiết cho bash, ví dụ \[\033[00;35m\]
, ở đâu 00;35
là đặc tả màu thực tế; hàng đầu 00
hiếm khi thay đổi, nhưng có thể tạo hiệu ứng đậm nét IIRC (01), gạch chân (??) và đảo ngược video (??), trong khi dấu '35' là màu thực tế, trong trường hợp này là màu tím.
Thật khó để tìm thấy một danh sách đầy đủ các mã màu ANSI, nhưng các màu nền trước chạy từ 30 đến 37 và các màu nền từ 40 đến 47, như sau:
color fg bg
black 30 40
red 31 41
green 32 42
yellow 33 43
blue 34 44
purple 35 45
cyan 36 46
gray/white 37 47
Hãy nhớ rằng, vì bạn đang đặt màu mặc định cho mọi thứ theo dấu nhắc của mình, các chương trình bạn chạy không đặt màu của riêng chúng thông qua mã thoát sẽ lấy màu đó - ví dụ: nếu bạn chạy máy nhắn tin, bạn có thể thấy đầu ra của nó có cùng màu bạn đã đặt cho các lệnh khác. Trong khi đó, các lệnh tự đặt màu của chúng thông qua mã thoát sẽ bỏ qua hoàn toàn nỗ lực của bạn.