Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Cách tùy chỉnh màu sắc và nội dung Bash trong Linux Terminal Prompt

Ngày nay, Bash là trình bao mặc định trong hầu hết (nếu không phải tất cả) các bản phân phối Linux hiện đại. Tuy nhiên, bạn có thể nhận thấy rằng màu văn bản trong thiết bị đầu cuối và nội dung lời nhắc có thể khác nhau từ bản phân phối này sang bản phân phối khác.

Đề xuất Đọc: 5 Vỏ mã nguồn mở được sử dụng thường xuyên nhất cho Linux

Trong trường hợp bạn đang tự hỏi làm thế nào để tùy chỉnh điều này để có khả năng truy cập tốt hơn hoặc chỉ là ý thích, hãy tiếp tục đọc - trong bài viết này, chúng tôi sẽ giải thích cách thực hiện điều đó.

Biến môi trường PS1 Bash

Dấu nhắc lệnh và giao diện đầu cuối được điều chỉnh bởi một biến môi trường có tên là PS1 . Theo Bash trang người đàn ông, PS1 đại diện cho chuỗi lời nhắc chính được hiển thị khi trình bao sẵn sàng đọc lệnh.

Nội dung được phép trong PS1 bao gồm một số ký tự đặc biệt thoát ra sau dấu gạch chéo ngược có ý nghĩa được liệt kê trong PROMPTING phần của trang người đàn ông.

Để minh họa, hãy hiển thị nội dung hiện tại của PS1 trong hệ thống của chúng tôi (điều này có thể hơi khác trong trường hợp của bạn):

$ echo $PS1

[\admin@wsxdn.com\h \W]$

Bây giờ chúng tôi sẽ giải thích cách tùy chỉnh PS1 theo nhu cầu của chúng tôi.

Tùy chỉnh định dạng PS1

Theo phần KHUYẾN MÃI trong trang người đàn ông, đây là ý nghĩa của từng ký tự đặc biệt:

  1. \u: tên người dùng của người dùng hiện tại.
  2. \h: tên máy chủ cho đến dấu chấm đầu tiên (.) trong Tên miền Đủ điều kiện.
  3. \W: tên cơ sở trong thư mục làm việc hiện tại, với $ HOME được viết tắt bằng dấu ngã (~) .
  4. \$: Nếu người dùng hiện tại là root, hãy hiển thị # , $ ngược lại.

Ví dụ:chúng tôi có thể muốn xem xét thêm \! Nếu chúng ta muốn hiển thị số lịch sử của lệnh hiện tại hoặc \H nếu chúng tôi muốn hiển thị FQDN thay vì tên máy chủ ngắn.

Trong ví dụ sau, chúng tôi sẽ nhập cả hai vào môi trường hiện tại của chúng tôi bằng cách thực hiện lệnh này:

PS1="[\admin@wsxdn.com\H \W \!]$"

Khi bạn nhấn Enter bạn sẽ thấy rằng nội dung lời nhắc thay đổi như hình dưới đây. So sánh lời nhắc trước và sau khi thực hiện lệnh trên:

Cách tùy chỉnh màu sắc và nội dung Bash trong Linux Terminal Prompt

Bây giờ, hãy tiến thêm một bước và thay đổi màu sắc của người dùng tên máy chủ trong dấu nhắc lệnh - cả văn bản và nền xung quanh của nó.

Trên thực tế, chúng tôi có thể tùy chỉnh 3 khía cạnh của lời nhắc:

Định dạng Văn bản Màu nền trước (văn bản) Màu nền
0:văn bản bình thường 30:Đen 40:Màu đen
1:bold 31:Màu đỏ 41:Màu đỏ
4:Văn bản được gạch chân 32:Màu xanh lá cây 42:Màu xanh lá cây
33:Màu vàng 43:Màu vàng
34:Màu xanh lam 44:Màu xanh lam
35:Màu tím 45:Màu tím
36:Màu lục lam 46:Màu lục lam
37:Màu trắng 47:Màu trắng

Chúng tôi sẽ sử dụng \e ký tự đặc biệt ở đầu và một m ở cuối để chỉ ra rằng những gì tiếp theo là một chuỗi màu.

Trong trình tự này, ba giá trị ( nền , định dạng tiền cảnh ) được phân tách bằng dấu phẩy (nếu không có giá trị nào được cung cấp thì giá trị mặc định được giả định).

Đề xuất Đọc: Tìm hiểu Bash Shell Scripting trong Linux

Ngoài ra, vì các phạm vi giá trị khác nhau, không quan trọng cái nào ( nền , định dạng hoặc tiền cảnh ) bạn chỉ định trước.

Ví dụ:PS1 sau sẽ khiến lời nhắc xuất hiện bằng màu vàng văn bản được gạch chân bằng màu đỏ nền:

PS1="\e[41;4;33m[\admin@wsxdn.com\h \W]$ "
Cách tùy chỉnh màu sắc và nội dung Bash trong Linux Terminal Prompt

Trông đẹp như vẻ ngoài, tùy chỉnh này sẽ chỉ kéo dài trong phiên người dùng hiện tại. Nếu bạn đóng thiết bị đầu cuối của mình hoặc thoát khỏi phiên, các thay đổi sẽ bị mất.

Để thực hiện những thay đổi này vĩnh viễn, bạn sẽ phải thêm dòng sau vào ~/.bashrc hoặc ~/.bash_profile tùy thuộc vào phân phối của bạn:

PS1="\e[41;4;33m[\admin@wsxdn.com\h \W]$ "

Hãy thoải mái chơi với các màu sắc để tìm ra thứ phù hợp nhất với bạn.

Tóm tắt

Trong bài viết này, chúng tôi đã giải thích cách tùy chỉnh màu sắc và nội dung của lời nhắc Bash của bạn. Nếu bạn có câu hỏi hoặc đề xuất về bài đăng này, vui lòng sử dụng mẫu bình luận bên dưới để liên hệ với chúng tôi. Chúng tôi mong nhận được phản hồi từ bạn!