Command prompt và biến PS1

commandĐọc bài viết của Phạm Duy Thăng
Command Prompt có thể được tùy biến để terminal của bạn trông đẹp hơn nhờ sử dụng biến môi trường PS1 (Đọc bài viết : Làm đẹp terminal)
Cú pháp của biến PS1 sẽ có dạng :

$PS1='[options]'

Có thể sử dụng mã màu để tùy biến màu sắc cho Command prompt
Bảng mã màu

Màu tối hơn Màu sáng hơn
Black 0;30 Dark Gray 1;30
Blue 0;34 Light Blue 1;34
Green 0;32 Light Green 1;32
Cyan 0;36 Light Cyan 1;36
Red 0;31 Light Red 1;31
Brown 0;33 Yellow 1;33
Purple 0;35 Light Purple 1;35
Light Gray 0;37 White 1;37

Bảng Options

\h Host
\u Username
\@ Thời gian AM/PM
\w Hiện đường dẫn đầy đủ
\a Tiếng beep
\$ Hiển thị “#” nếu user có UID=0 , “$” nếu UID khác 0
\[ Bắt đầu chuỗi kí tự
\] Kết thúc chuỗi kí tự
\t Hiện thời gian 24h theo cấu trúc HH:MM:SS
\d Ngày tháng theo cấu trúc Weekday:Month:Date
\D{a} Hiển thị chuỗi “a”
\ Hiển thị kí tự \

Cú pháp thêm mã màu

Mở mã màu \[ab33[0x;3xm\] với x từ 1 -> 7 và a là dấu \ còn b là số 0
Đóng mã màu \[ab33[0xm\] với x từ 1->7 và a là \ còn b là số 0

Một số ví dụ
-Options : Các tham số có thể được bao, cho phép kí tự gắn kèm. Kí tự có thể đứng riêng rẽ.
VD: PS1='[\t][\d][\h]@[\u]\w\$: ‘ sẽ được :

[15:09:32][Sun Mar 22][gialac]@[tuyetkiem]~$:

-Nhóm mã màu đứng trước [\t] sẽ áp dụng từ [\t] đến khi nào tới một nhóm mã màu khác
[\t] chỉ là ví dụ
VD: PS1='[\t][\d]\[ab33[02m\][\h]@[\u]\w\$: ‘
-Mã đóng màu đứng ở đâu sẽ áp dụng độ sáng của màu cho đoạn sau nó với màu lấy từ mã màu mở
VD: PS1=’\[ab33[01;32m\][\t]\[ab33[01;36m\][\d]\[ab33[03;37m\][\h]@[\u]\w\$: ‘

-Lệnh tùy biến command prompt

touch .bashrc ; echo "PS1='Options'"> .bashrc

Ví dụ :

touch .bashrc ; echo "PS1='\[ab33[01;32m\][\t] \u@\h\[ab33[00m\]:\[ab33[01;34m\]\w\[ab33[00m\]\$ '"> .bashrc

——————–

13 phản hồi to “Command prompt và biến PS1”

  1. tuyetkiem Says:

    Do wordpress editor không hiển thị kí tự mã null do đó mình phải dùng a thay cho \ và b thay cho 0
    Hãy thay các kí tự tương ứng ở phím (“) gần phím Enter, thay a và b thành \ và 0

  2. Thăng Phạm Duy Says:

    Bác cho em hỏi tại sao trước lệnh echo … > .bashrc, bác cứ phải touch 1 phát ạ :D?

  3. tuyetkiem Says:

    Thăng Phạm Duy nói :
    Bác cho em hỏi tại sao trước lệnh echo … > .bashrc, bác cứ phải touch 1 phát ạ😀 ?

    Ah ! Thực ra là không cần ! Trước hay dùng lệnh này để tạo file thay vì chép vào cuối file bằng >> nên quen tay dùng (phân biệt cho rõ ràng thôi)😀😀

  4. Thăng Phạm Duy Says:

    H mới để ý, bác thử test 2 lệnh echo của bác đi, nhiều khả năng là nó sẽ xóa toàn bộ nội dung file .bashrc đấy.
    Lệnh đúng lẽ ra phải là:
    echo … >> .bashrc

  5. tuyetkiem Says:

    Đáng ra phải làm thế này :
    mv ~/.bashrc ~/.bashrc.bak ; echo ….>.bashrc
    Tuy nhiên ban đầu máy mình không hề có file .bashrc
    Mọi thiết lập đều nằm ở /etc/bash.bashrc
    Vậy nên mới viết thế !

  6. tuyetkiem Says:

    Ah Duy có có biết lệnh nào cho phép thay thế 1 dòng trong 1 file bằng 1 dòng khác không ?

  7. Thăng Phạm Duy Says:

    sed ‘s/nội dung dòng cần thay/nội dung mới/’

    P/S: Em tên là Phạm Duy Thăng😀.

  8. Thăng Phạm Duy Says:

    Không hiểu sao cái tham số cuối lại bị tự động remove😦

    sed ‘s/nội dung dòng cần thay/nội dung mới/’ [tên-file]

  9. tuyetkiem Says:

    Tham số gì chứ
    Anh thử :
    sed 's/noidungcu/noidungmoi/' [tenfile]
    thì nó chép y nguyên ra màn hình và đúng là dòng đó có thay đổi thật còn file thì vẫn vậy
    Lại thử :
    sed 's/noidungcu/noidungmoi/' [tenfile] > [tenfile]
    thì nó xóa trắng cả [tenfile] đi
    Lại thử :
    sed 's/noidungcu/noidungmoi/' [tenfile] > [tenfile2]
    Giờ mới được
    Tuy nhiên nó tạo ra file2. File gốc vẫn thế

  10. Thăng Phạm Duy Says:

    Em xin lỗi bác. Em thiếu tham số -i . Vội quá nên quên :”>. LỆnh đúng như sau:

    [b]sed ’s/nội dung dòng cần thay/nội dung mới/’ [tên-file][/b]

  11. Thăng Phạm Duy Says:

    Lại nhầm, hic hic >”< . Bác xóa hộ cái cmt trên. Lệnh đúng:

    sed -i ’s/nội dung dòng cần thay/nội dung mới/’ [tên-file]

  12. admin Says:

    Hic
    Vừa ngồi với Khanh
    2 thằng tìm đủ cách
    Kể cả gán biến
    Giờ thì ổn rồi
    Để thử xem
    thankyou !

  13. Lampv01203 Says:

    sorry vi chua cai scim
    lam the nao de moi khi bat terminal len k phai ghi lai lech PS!=’…’ nua??


Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: