Cách tùy chỉnh (và tô màu) lời nhắc Bash của bạn

May 18, 2025
Bảo trì và Tối ưu hóa
NỘI DUNG KHÔNG ĐƯỢC CHỨNG MINH

Hầu hết các bản phân phối Linux đều định cấu hình lời nhắc Bash trông giống như tên người dùng @ tên máy chủ: thư mục $ . Nhưng bạn có thể cấu hình dấu nhắc Bash để chứa bất kỳ thứ gì bạn thích và thậm chí chọn bất kỳ màu nào bạn thích.

Các bước ví dụ ở đây được thực hiện trên Ubuntu 16.04 LTS. Quá trình này phải giống nhau trên các bản phân phối Linux khác, mặc dù lời nhắc Bash mặc định và cài đặt trong tệp .bashrc có thể hơi khác một chút.

Nơi biến Prompt được lưu trữ

Cấu hình lời nhắc Bash của bạn được lưu trữ trong tệp .bashrc của tài khoản người dùng của bạn, tại ~ / .bashrc . Vì vậy, nếu tên người dùng của bạn là bob, thì tệp ở /home/bob/.bashrc .

Bạn có thể mở tệp để xem biến Bash hiện tại. Chúng tôi sẽ sử dụng nano làm trình soạn thảo văn bản mẫu của mình, mặc dù bạn cũng có thể sử dụng vi , emacs hoặc bất kỳ trình soạn thảo văn bản nào khác mà bạn hài lòng. Mở một Terminal và chạy:

nano ~/.bashrc

Cuộn xuống Ψ1 = phần. Biến đầu tiên trông khá phức tạp vì nó bao gồm thông tin về màu sắc — chúng tôi sẽ giải thích điều đó sau. Biến thứ hai, không có thông tin về màu sắc, đọc như sau:

$ {debian_chroot:+($debian_chroot)} \ u @ \ h: \ w \ $

Điều này vẫn còn một chút phức tạp do ${debian_chroot:+($debian_chroot)} chút ít. Những điều này chỉ cho Bash biết nếu bạn đang sử dụng môi trường chroot Debian và thông thường sẽ không được hiển thị. Bỏ qua những điều đó, đây là cấu trúc mặc định của biến dấu nhắc Bash:

\ u @ \ h: \ w \ $

\ u cho biết tên người dùng của bạn, @ chỉ ra dấu @, \h cho biết tên máy chủ (tên máy tính), : cho biết: ký tự, \trong cho biết thư mục làm việc và \$ cho biết $ nếu bạn là tài khoản người dùng bình thường hoặc # nếu bạn là root. Vì vậy, kết hợp tất cả lại với nhau, bạn sẽ username @ hostname: working_directory $ .

Để thay đổi lời nhắc Bash, bạn chỉ cần thêm, xóa hoặc sắp xếp lại các ký tự đặc biệt trong biến PS1. Nhưng có nhiều biến bạn có thể sử dụng hơn những biến mặc định.

Rời khỏi trình soạn thảo văn bản ngay bây giờ — trong nano, nhấn Ctrl + X để thoát. Chúng tôi sẽ chỉ cho bạn cách thử nghiệm với các biến trước khi thực sự ghi một biến mới vào tệp .bashrc của bạn.

Cách tạo Lời nhắc Bash Tùy chỉnh

Cấu hình dấu nhắc Bash của bạn được lưu trữ trong biến PS1. Để lưu nội dung của biến PS1 vào một biến mới, hãy chạy lệnh sau:

DEFAULT = $ PS1

Bây giờ bạn có thể đặt biến PS1 thành các giá trị khác nhau để thử nghiệm. Ví dụ: dòng đầu tiên ở đây sẽ đặt lời nhắc của bạn thành lời nhắc cơ bản “user $”, trong khi dòng thứ hai sẽ đặt lời nhắc của bạn thành lời nhắc cơ bản “user: working_directory $”.

PS1 = "\ u \ $"

PS1 = "\ u: \ w \ $"

Nếu bạn muốn quay lại lời nhắc mặc định của mình, chỉ cần chạy lệnh sau.

PS1 = $ DEFAULT

Bash sẽ được khôi phục về lời nhắc mặc định do bạn đã lưu các cài đặt mặc định đó trước đó. Lưu ý rằng bất kỳ thay đổi nào bạn thực hiện ở đây chỉ là tạm thời cho phiên Bash hiện tại, vì vậy bạn luôn có thể đăng xuất và đăng nhập lại hoặc đóng và mở lại cửa sổ đầu cuối để quay lại lời nhắc mặc định của mình. Nhưng dòng trên giúp bạn có thể dễ dàng quay lại lời nhắc Bash mặc định của mình mà không gặp rắc rối khi đăng xuất hoặc đóng cửa sổ.

Bạn có thể thêm bất kỳ ký tự hoặc văn bản nào vào biến. Vì vậy, để đặt trước lời nhắc mặc định bằng “Hello World”, bạn có thể sử dụng:

PS1="Hello World \u@\h:\w\$ "

Bây giờ bạn đã nắm được thông tin cơ bản, bạn chỉ cần biết tất cả các ký tự đặc biệt là gì. Bạn có thể sẽ không quan tâm đến nhiều người trong số này, nhưng đây là danh sách đầy đủ khi nó xuất hiện trong hướng dẫn sử dụng Bash :

  • Một ký tự chuông: \ a
  • Ngày, ở định dạng "Ngày trong tuần, ngày trong tháng" (ví dụ: "Thứ ba ngày 26 tháng 5"): \ d
  • Định dạng được chuyển cho strftime (3) và kết quả được chèn vào chuỗi dấu nhắc; một định dạng trống dẫn đến biểu diễn thời gian theo ngôn ngữ cụ thể. Niềng răng được yêu cầu: \ D{format}
  • Một nhân vật trốn thoát: \Là
  • Tên máy chủ, tối đa là ‘.’ Đầu tiên: \h
  • Tên máy chủ: \H
  • Số lượng công việc hiện được quản lý bởi shell: \ j
  • Tên cơ sở của tên thiết bị đầu cuối của shell: \ l
  • Một dòng mới: \ n
  • Dấu xuống dòng: \ r
  • Tên của shell, tên cơ sở của $ 0 (phần sau dấu gạch chéo cuối cùng): \S
  • Thời gian, ở định dạng HH: MM: SS 24 giờ: \ t
  • Thời gian, ở định dạng HH: MM: SS trong 12 giờ: \ T
  • Thời gian, ở định dạng 12 giờ sáng / chiều: \@
  • Thời gian, ở định dạng HH: MM 24 giờ: \ A
  • Tên người dùng của người dùng hiện tại: \ u
  • Phiên bản của Bash (ví dụ: 2.00): ev
  • Việc phát hành Bash, phiên bản + patchlevel (ví dụ: 2.00.0): EV
  • Thư mục làm việc hiện tại, với $ HOME được viết tắt bằng dấu ngã (sử dụng biến $ PROMPT_DIRTRIM): \trong
  • Tên cơ sở của $ PWD, với $ HOME được viết tắt bằng dấu ngã: \TRONG
  • Số lịch sử của lệnh này: \!
  • Số lệnh của lệnh này: \#
  • Nếu uid hiệu dụng là 0, #, nếu không thì $: \$
  • Ký tự có mã ASCII là giá trị bát phân nnn: \ nnn
  • Dấu gạch chéo ngược: \\
  • Bắt đầu một chuỗi các ký tự không in. Điều này có thể được sử dụng để nhúng chuỗi điều khiển đầu cuối vào lời nhắc: \[
  • Kết thúc một chuỗi các ký tự không in: \]

Vì vậy, nếu bạn muốn thêm ngày và giờ vào dấu nhắc Bash và đặt thư mục làm việc vào lệnh trên dòng thứ hai, bạn có thể sử dụng cấu trúc sau:

PS1="[\d \t] \u@\h\n\w\$ "

Dấu ngoặc vuông ở đây hoàn toàn không cần thiết nhưng giúp phân chia mọi thứ một cách trực quan và làm cho dòng dễ đọc hơn. Như chúng tôi đã đề cập trước đó, bạn có thể thêm bất kỳ văn bản hoặc ký tự bình thường nào vào biến mà bạn thích, vì vậy hãy thoải mái sử dụng bất kỳ thứ gì phù hợp với bạn.

Có một thủ thuật mạnh mẽ hơn mà bạn nên biết: Bạn có thể thêm đầu ra của bất kỳ lệnh nào vào lời nhắc. Bất cứ khi nào lời nhắc xuất hiện, Bash sẽ chạy lệnh và điền thông tin hiện tại. Để làm điều này, chỉ cần bao gồm bất kỳ lệnh nào bạn muốn chạy giữa hai ` nhân vật. Đó không phải là dấu huyền — đó là dấu trọng âm, xuất hiện phía trên phím Tab trên bàn phím của bạn.

Ví dụ: giả sử bạn muốn xem phiên bản hạt nhân Linux trong lời nhắc. Bạn có thể sử dụng một dòng như sau:

PS1 = "\ u @ \ h trên ʻuname -s -r` \ w \ $"

Một ví dụ khác, giả sử bạn muốn xem thời gian hoạt động và tải trung bình của hệ thống, như được hiển thị bởi thời gian hoạt động chỉ huy. Bạn có thể sử dụng cấu trúc sau, đặt thời gian hoạt động trên dòng riêng của nó trước phần còn lại của lời nhắc.

PS1="(`uptime`)\n\u@\h:\w$ "

Hãy thử nghiệm với các ký tự và lệnh đặc biệt khác nhau để lắp ráp dấu nhắc lệnh lý tưởng của bạn.

Cách thêm màu sắc vào lời nhắc Bash của bạn

Khi bạn đã tìm ra lời nhắc ưa thích của mình, bạn có thể thêm màu sắc cho lời nhắc đó. Điều này thực sự rất đơn giản, nhưng nó làm cho biến trông rất lộn xộn và phức tạp nếu bạn không hiểu những gì bạn đang xem.

Ví dụ, biến nhắc nhở màu mặc định trước đó là:

$ {debian_chroot:+($debian_chroot)} \ [\033[01;32m\] \ u @ \ h \ [\033[00m\]: \ [\033[01;34m\] \ w \ [\033[00m\] \ $

Hoặc xóa các bit debian_chroot một lần nữa:

\ [\033[01;32m\] \ u @ \ h \ [\033[00m\]: \ [\033[01;34m\] \ w \ [\033[00m\] \ $

Đây thực sự chỉ là \ u @ \ h: \ w $ biến so với trước đó, nhưng với thông tin về màu sắc. Thực sự, chúng ta có thể chia nó thành một vài phần:

\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\trong\[\033[00m\]\$

Phần đầu tiên là \u@\h bit, đứng trước thông tin màu khiến nó chuyển sang màu xanh lục. Thứ hai là : ký tự, đứng trước thông tin màu sẽ loại bỏ bất kỳ màu nào. Thứ ba là \trong bit, đứng trước thông tin màu khiến nó chuyển sang màu xanh lam. Thứ tư là \$ bit, đứng trước thông tin màu sẽ loại bỏ bất kỳ màu nào.

Khi bạn hiểu cách tạo các thẻ màu của riêng mình, bạn có thể thêm bất kỳ màu nào bạn thích vào bất kỳ phần nào của dấu nhắc Bash mà bạn thích.

Đây là những gì bạn cần biết: Bạn phải bao gồm toàn bộ thông tin mã màu giữa \[ \] tính cách S. Bên trong thẻ, bạn phải bắt đầu bằng \033[ hoặc là \Là[ để cho Bash biết rằng đây là thông tin về màu sắc. Cả hai \033[ \Là[ Làm điều tương tự. \Là[ ngắn hơn nên có thể thuận tiện hơn khi sử dụng, nhưng chúng tôi sẽ sử dụng \033[ ở đây vì nó khớp với những gì được sử dụng theo mặc định. Ở cuối thẻ, bạn phải kết thúc bằng m \ để chỉ ra phần cuối của thẻ màu.

Chia nhỏ điều đó, đây là giao diện của mọi thẻ màu. Sự khác biệt duy nhất là thông tin bạn thêm vào thay cho COLOR để xác định màu thực tế:

\[\033[MÀU SẮCm \]

Bash cho phép bạn thay đổi màu của văn bản nền trước, thêm các thuộc tính như “in đậm” hoặc “gạch chân” vào văn bản và đặt màu nền.

Dưới đây là các giá trị cho văn bản nền trước:

  • Đen: 30
  • Xanh lam: 34
  • Cyan: 36
  • Màu xanh lá cây: 32
  • Tím: 35
  • Đỏ: 31
  • Trắng: 37
  • Vàng: 33

Ví dụ: vì văn bản màu tím là mã màu 32, bạn sẽ sử dụng \[\033[ 32 m \] cho văn bản màu tím.

Bạn cũng có thể chỉ định một thuộc tính cho văn bản. Thuộc tính này phải được thêm vào trước số màu, phân tách bằng dấu chấm phẩy (;). Văn bản có các thuộc tính này sẽ trông khác nhau trong các trình giả lập đầu cuối khác nhau.

Dưới đây là các giá trị cho thuộc tính văn bản:

  • Văn bản bình thường: 0
  • Văn bản đậm hoặc nhạt: 1 (Tùy thuộc vào trình giả lập đầu cuối.)
  • Văn bản mờ: 2
  • Văn bản được gạch chân: 4
  • Văn bản nhấp nháy: 5 (Điều này không hoạt động trong hầu hết các trình giả lập đầu cuối.)
  • Văn bản đảo ngược: 7 (Điều này đảo ngược màu nền trước và màu nền, vì vậy bạn sẽ thấy văn bản màu đen trên nền trắng nếu văn bản hiện tại là văn bản màu trắng trên nền đen.)
  • Văn bản ẩn: 8

Bạn thực sự không cần phải bao gồm thuộc tính văn bản bình thường. Đó là mặc định, dù sao.

Ví dụ: vì văn bản màu đỏ là mã 31 và văn bản in đậm là mã 1, bạn sẽ sử dụng \[\033[ 1;31 m \] cho văn bản màu đỏ đậm.

Bạn cũng có thể chỉ định màu nền nhưng không thể thêm thuộc tính vào màu nền.

Dưới đây là các giá trị cho màu nền:

  • Nền đen: 40
  • Nền xanh: 44
  • Nền màu lục lam: 46
  • Nền xanh: 42
  • Nền tím: 45
  • Nền đỏ: 41
  • Nền trắng: 47
  • Nền vàng: 43

Ví dụ: vì nền màu xanh lam là mã 44, \[\033[ 44 m \] sẽ chỉ định một nền màu xanh lam.

Bạn có thể chỉ định cả thẻ màu nền trước và nền sau. Ví dụ: 42 đại diện cho nền màu xanh lá cây và 31 đại diện cho văn bản màu đỏ. Vì vậy, để làm cho lời nhắc mặc định trở thành văn bản màu đỏ trên nền xanh lục, bạn sẽ sử dụng:

Ψ1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "

Chúng tôi chỉ chỉ định một màu nền duy nhất và sau đó là một màu văn bản nền trước duy nhất ở đây, màu này bắt đầu ở đầu lời nhắc và được áp dụng cho tất cả văn bản trong lời nhắc. Tuy nhiên, bạn có thể chỉ định bao nhiêu thẻ màu tùy thích trong biến để tô màu các phần khác nhau của lời nhắc theo cách bạn muốn.

Màu nền và màu văn bản nền trước tiếp tục vượt qua lời nhắc trừ khi bạn chỉ định mã màu 00 xóa thông tin màu. Bạn cũng có thể sử dụng thẻ này trong biến để đặt lại định dạng về mặc định ở đâu đó trong lời nhắc của bạn. Ví dụ: dòng sau sẽ kết thúc tất cả các màu trước \$ tính cách.

Ψ1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \\ [\ 033 [00m \] \ $ "

Cách đặt lời nhắc mặc định mới của bạn

Khi bạn đã thử nghiệm xong các màu sắc, bạn sẽ có lời nhắc Bash mà bạn thích trong phiên hiện tại. Nhưng bạn có thể muốn đặt lời nhắc mới đó vĩnh viễn để lời nhắc này tự động được sử dụng trong tất cả các phiên Bash của bạn.

Để thực hiện việc này, bạn chỉ cần thay đổi nội dung của biến PS1 trong tệp .bashrc mà chúng ta đã xem trước đó.

Mở tệp .bashrc trong trình soạn thảo văn bản ưa thích của bạn, như sau:

nano ~/.bashrc

Cuộn xuống và tìm phần PS1 =. Chỉ cần thay thế biến mặc định bằng biến tùy chỉnh của bạn. Bạn có thể sẽ muốn rời khỏi ${debian_chroot:+($debian_chroot)} Tuy nhiên, các bit riêng lẻ — chúng sẽ không xuất hiện trừ khi bạn đang ở trong môi trường chroot.

Nhập biến PS1 được tô màu của bạn trong nếu [ "$color_prompt" = yes ]; sau đó hàng. Nhập biến không có màu bên dưới khác hàng.

Lưu tệp và đóng trình soạn thảo văn bản của bạn. Ví dụ: để lưu tệp dưới dạng nano, hãy nhấn Ctrl + O, nhấn Enter, sau đó nhấn Ctrl + X để thoát.

Vào lần tiếp theo khi bạn khởi động trình bao Bash mới — ví dụ: bằng cách đăng nhập tại thiết bị đầu cuối hoặc bằng cách mở cửa sổ đầu cuối mới — bạn sẽ thấy lời nhắc tùy chỉnh của mình.

How To Customize (and Colorize) Your Bash Prompt

Customize The Bash Prompt

How To Customize Your Bash Prompt ($PS1) [Linux]

How To Customize Your Bash Terminal Prompt

Customize & Colorize Your Bash Prompt/Terminal

Customize Your Bash Prompt With Escape Sequences

How To Change The Terminal Prompt (MacOS Zsh)

Change Terminal Prompt Color! (Linux Mint & Ubuntu) EASY!

Linux Tip | How To Customize Your BASH Environment

Customizing Your Terminal | Linux Terminal With Fancy Bash Prompt | Linux Terminal Beautification

How To Customize Your Terminal | Bashrc File | Colors & Display Prompt

Linux Terminal Love - Tips & Tricks #6 - Customise Terminal Bash Prompt


Bảo trì và Tối ưu hóa - Các bài báo phổ biến nhất

Cách tinh chỉnh ClearType trong Windows để có khả năng đọc màn hình tốt hơn

Bảo trì và Tối ưu hóa Jan 5, 2025

NỘI DUNG KHÔNG ĐƯỢC CHỨNG MINH ClearType là công nghệ làm mịn phông chữ được tích hợp trong Windows để giúp văn bản dễ đọc hơn trê..


Cách sử dụng Trình quản lý tệp tích hợp của Android 6.0

Bảo trì và Tối ưu hóa Jul 10, 2025

NỘI DUNG KHÔNG ĐƯỢC CHỨNG MINH Android bao gồm toàn quyền truy cập vào hệ thống tệp, hoàn chỉnh với hỗ trợ thẻ SD có thể tháo rời. Nhưng b..


Làm thế nào để Windows biết một chương trình không phản hồi?

Bảo trì và Tối ưu hóa Sep 6, 2025

NỘI DUNG KHÔNG ĐƯỢC CHỨNG MINH Bất cứ ai đã sử dụng Windows đều đã từng thấy thông báo hệ thống cho biết chương trình không phản hồi, n..


Tắt tiện ích bổ sung để tăng tốc độ duyệt web trong Internet Explorer 9

Bảo trì và Tối ưu hóa May 31, 2025

NỘI DUNG KHÔNG ĐƯỢC CHỨNG MINH Chúng tôi đã chỉ cho bạn cách nâng cao Internet Explorer với các tiện ích bổ sung , tương tự như Fire..


Cách tự động hóa các tác vụ trình duyệt web lặp đi lặp lại với iMacros

Bảo trì và Tối ưu hóa Jul 12, 2025

NỘI DUNG KHÔNG ĐƯỢC CHỨNG MINH Máy tính được cho là tự động hóa các tác vụ lặp đi lặp lại - nếu bạn thấy mình phải gửi đi gửi lại ..


Cách giải phóng dung lượng trong Gmail: 5 cách để lấy lại dung lượng

Bảo trì và Tối ưu hóa May 1, 2025

Gmail cung cấp giới hạn bộ nhớ cao - 10 GB và sẽ tiếp tục tăng - nhưng nó không giúp ích được gì nhiều nếu bạn sắp đạt đến giới hạn đ�..


Xuất Trang chủ iGoogle của bạn sang một tài khoản khác

Bảo trì và Tối ưu hóa Dec 21, 2024

Nếu bạn là người yêu thích iGoogle, bạn có thể có một thiết lập hoàn hảo với Nguồn cấp dữ liệu RSS, Chủ đề và các tiện ích khác theo cách bạn ..


Tự động hóa các chức năng của Windows với các tác vụ đã lên lịch

Bảo trì và Tối ưu hóa Aug 25, 2025

Tính năng Nhiệm vụ theo lịch trình của XP và Vista thường bị bỏ qua. Đây là một công cụ tuyệt vời để sử dụng cho các tác vụ Bảo trì Tự động h..


Thể loại