Làm thế nào để tùy chỉnh (và Colorize) Bash Nhắc của bạn

Mục lục:

Làm thế nào để tùy chỉnh (và Colorize) Bash Nhắc của bạn
Làm thế nào để tùy chỉnh (và Colorize) Bash Nhắc của bạn

Video: Làm thế nào để tùy chỉnh (và Colorize) Bash Nhắc của bạn

Video: Làm thế nào để tùy chỉnh (và Colorize) Bash Nhắc của bạn
Video: Ô tô đang đi chết máy - P2: Hư hỏng điện đánh lửa, biểu hiện và xử lý thế nào? | TIPCAR TV - YouTube 2024, Tháng tư
Anonim
Hầu hết các bản phân phối Linux đều định cấu hình dấu nhắc Bash để trông giống như
Hầu hết các bản phân phối Linux đều định cấu hình dấu nhắc Bash để trông giống như

username@hostname:directory$

. Nhưng bạn có thể cấu hình nhắc Bash để chứa bất cứ điều 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 mẫu ở đây được thực hiện trên Ubuntu 16.04 LTS. Quá trình này sẽ giống nhau trên các bản phân phối Linux khác, mặc dù dấu nhắc Bash mặc định và các thiết lập trong tệp.bashrc có thể hơi khác một chút.

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

Cấu hình 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, tệp sẽ có

/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 chỉnh sửa văn bản mẫu của chúng tôi, 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 cảm thấy thoải mái. Mở một Terminal và chạy:

nano ~/.bashrc

Cuộn xuống
Cuộn xuống

PS1=

phần. Biến đầu tiên trông khá phức tạp vì nó bao gồm thông tin màu - chúng tôi sẽ giải thích sau. Biến thứ hai, không có thông tin màu, đọ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
Điều này vẫn còn một chút phức tạp do

${debian_chroot:+($debian_chroot)}

bit. Chúng chỉ cần nói với Bash để cho bạn 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 chúng, đây là cấu trúc mặc định của biến nhắc Bash:

u@h:w$

u

cho biết tên người dùng của bạn,

@

cho biết dấu @,

h

cho biết tên máy (tên máy tính),

:

cho biết: ký tự,

w

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 thông thường hoặc # nếu bạn là người chủ. Vì vậy, đặt tất cả với nhau, bạn nhận được

username@hostname:working_directory$

Để thay đổi dấu nhắc Bash của bạn, 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 hơn bạn có thể sử dụng hơn các biến mặc định.

Để nguyên trình chỉnh sửa 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 viết một biến mới vào tệp.bashrc của bạn.

Làm thế nào để tạo một dấu nhắc Bash tùy chỉnh

Cấu hình 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 "người dùng $" cơ bản, trong khi dấu nhắc thứ hai sẽ đặt lời nhắc của bạn thành lời nhắc "người dùng: working_directory $" cơ bản.

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 của nó nhờ vào thực tế là bạn đã lưu các thiết lập mặc định này 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 làm cho nó có thể dễ dàng lấy lại dấu nhắc Bash mặc định của bạn 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, để thêm tiền tố vào dấu nhắc mặc định với "Hello World", bạn có thể sử dụng:
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, để thêm tiền tố vào dấu nhắc mặc định với "Hello World", bạn có thể sử dụng:

PS1='Hello World u@h:w$ '

Bây giờ bạn đã có những điều 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 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:
Bây giờ bạn đã có những điều 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 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 nhân vật chuông:

    a

  • Ngày, theo định dạng “Ngày trong tuần trong tuần” (ví dụ: “Thứ Ba ngày 26 tháng 5”):

    d

  • Định dạng được chuyển tới strftime (3) và kết quả được chèn vào chuỗi nhắc; một định dạng trống sẽ dẫn đến một đại diện thời gian cụ thể theo ngôn ngữ. Niềng răng là bắt buộc:

    D{format}

  • Một ký tự thoát:

    e

  • Tên máy chủ, tối đa ‘.’ Đầ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 trình bao:

    j

  • Tên cơ sở của tên thiết bị đầu cuối của trình bao:

    l

  • Một dòng mới:
  • Một vận chuyển trở lại:
  • Tên của shell, tên cơ sở là $ 0 (phần sau dấu gạch chéo cuối cùng):

    s

  • Thời gian, theo định dạng HH: MM: SS 24 giờ:

  • Thời gian, trong định dạng HH: MM: SS 12 giờ:

    T

  • Thời gian, ở định dạng 12 giờ sáng / chiều:

    @

  • Thời gian, theo đị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 Bash (ví dụ: 2.00):

    v

  • Việc phát hành Bash, phiên bản + bản vá lỗi (ví dụ: 2.00.0):

    V

  • Thư mục làm việc hiện tại, với $ HOME viết tắt với dấu ngã (sử dụng biến $ PROMPT_DIRTRIM):

    w

  • Tên cơ sở của $ PWD, với $ HOME viết tắt bằng dấu ngã:

    W

  • 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 $:

    $

  • Ký tự có mã ASCII là giá trị bát phân nnn:

    nn

  • Dấu gạch chéo ngược:

  • Bắt đầu một chuỗi ký tự không in. Điều này có thể được sử dụng để nhúng một chuỗi điều khiển đầu cuối vào dấu nhắc:

    [

  • Kết thúc chuỗi ký tự không in:

    ]

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

PS1='[d ] u@h

w$ '

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

Có một mẹo mạnh hơn 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 dấu nhắc xuất hiện, Bash sẽ chạy lệnh và điền vào 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
Có một mẹo mạnh hơn 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 dấu nhắc xuất hiện, Bash sẽ chạy lệnh và điền vào 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 nháy đơn - đó là giọng nghiêm trọng, 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 on `uname -s -r` w$ '

Một ví dụ khác, giả sử bạn muốn xem thời gian hoạt động và mức tải trung bình của hệ thống, như được hiển thị bởi
Một ví dụ khác, giả sử bạn muốn xem thời gian hoạt động và mức tải trung bình của hệ thống, như được hiển thị bởi

uptime

chỉ huy. Bạn có thể sử dụng cấu trúc sau đây để đặt thời gian hoạt động lên dòng của chính nó trước phần còn lại của lời nhắc.

PS1='(`uptime`)

u@h:w$ '

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

Cách thêm màu vào dấu 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 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ở nên quá 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 màu mặc định từ trước đó là:

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

Hoặc, loại bỏ các bit debian_chroot một lần nữa:

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

Đây thực sự chỉ là
Đây thực sự chỉ là

u@h:w$

biến từ trước đó, nhưng với thông tin màu. Thực sự, chúng ta có thể chia nhỏ nó thành một vài phần:

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

Phần đầu tiên là

u@h

bit, trước bởi thông tin màu biến nó thành màu xanh lục. Thứ hai là

:

ký tự, trước thông tin màu xóa bất kỳ màu nào. Thứ ba là

w

bit, trước bởi thông tin màu chuyển sang màu xanh lam. Thứ tư là

$

bit, trước bởi thông tin màu sắc loại bỏ bất kỳ màu nào.

Một khi bạn hiểu cách xây dựng các thẻ màu của riêng bạn, 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.
Một khi bạn hiểu cách xây dựng các thẻ màu của riêng bạn, 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.

Dưới đây là những điều bạn cần biết: Bạn phải bao gồm toàn bộ thông tin mã màu giữa

[

] character

S. Bên trong thẻ, bạn phải bắt đầu bằng

33[

hoặc là

e[

để chỉ ra cho Bash rằng đây là thông tin màu sắc. Cả hai

33[

e[

Làm điều tương tự.

e[

ngắn hơn để có thể sử dụng thuận tiện hơn, nhưng chúng tôi sẽ sử dụng

33[

ở đâ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

để cho biết kết thúc của một thẻ màu.

Phá vỡ nó xuống, đây là những gì tất cả các thẻ màu sẽ giống như thế. Sự khác biệt duy nhất là thông tin bạn thêm vào vị trí của COLOR để xác định màu thực tế:

[33[ COLORm]

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 dưới” 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:

  • Màu đen: 30
  • Xanh lam: 34
  • Lục lam: 36
  • Xanh lục: 32
  • Màu tím: 35
  • Đỏ: 31
  • Trắng: 37
  • Màu vàng: 33

Ví dụ: vì văn bản màu tím là mã màu 32, bạn nên sử dụng

[33[ 32m]

cho văn bản màu tía.

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 trước số màu, cách nhau bằng dấu chấm phẩy (;). Văn bản với các thuộc tính này sẽ khác nhau trong các trình mô phỏng thiết bị đầu cuối khác nhau.
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 trước số màu, cách nhau bằng dấu chấm phẩy (;). Văn bản với các thuộc tính này sẽ khác nhau trong các trình mô phỏng thiết bị đầ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
  • Chữ đậm hoặc nhạt: 1 (Tùy thuộc vào trình mô phỏng đầu cuối.)
  • Văn bản mờ: 2
  • Văn bản được gạch dưới: 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 thiết bị đầu cuối.)
  • Văn bản được đả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 bao gồm thuộc tính văn bản thông thường. Đó là mặc định, anyway.

Ví dụ: vì văn bản màu đỏ là mã 31 và văn bản in đậm là mã 1, bạn nên sử dụng

[33[ 1;31m]

cho văn bản màu đỏ đậm.

Bạn cũng có thể chỉ định màu nền, nhưng bạn không thể thêm thuộc tính vào màu nền.
Bạn cũng có thể chỉ định màu nền, nhưng bạn 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 màu xanh da trời: 44
  • Nền Cyan: 46
  • Nền màu xanh lá cây: 42
  • Nền màu tím: 45
  • Nền đỏ: 41
  • Nền trắng: 47
  • Nền màu vàng: 43

Ví dụ, vì nền màu xanh da trời là mã số 44,

[33[ 44m]

sẽ chỉ định một nền màu xanh.

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

PS1='[33[ 42m][33[ 31m]u@h:w$ '

Chúng tôi chỉ xác định một màu nền đơn và sau đó là một màu văn bản nền trước ở đây, bắt đầu ở đầu dấu 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 nhiều thẻ màu như bạn muốn trong biến để tô màu các phần khác nhau của dấu nhắc của bạn theo cách bạn muốn.

Màu văn bản nền và nền trước tiếp tục đi 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 khi
Màu văn bản nền và nền trước tiếp tục đi 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 khi

$

tính cách.

PS1='[33[ 42m][33[ 31m]u@h:w\[33[ 00m]$ '

Image
Image

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

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

Để làm điều 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. Có thể bạn sẽ muốn rời khỏi

${debian_chroot:+($debian_chroot)}

chỉ một mình, 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 màu của bạn dưới

if [ '$color_prompt' = yes ]; then

hàng. Nhập biến không có màu dưới

else

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 trong nano, nhấn Ctrl + O, nhấn Enter, sau đó nhấn Ctrl + X để thoát.
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 trong nano, nhấn Ctrl + O, nhấn Enter, sau đó nhấn Ctrl + X để thoát.

Lần sau khi bạn bắt đầu một vỏ Bash mới - ví dụ, bằng cách đăng nhập tại terminal hoặc bằng cách mở một cửa sổ terminal mới, bạn sẽ thấy dấu nhắc tùy chỉnh của mình.

Đề xuất: