Thay đổi nhắc nhở Cygwin


17

Dấu nhắc cygwin mặc định của "user@computer path \ n $" quá dài đối với tôi. Tôi muốn giữ con đường.

Tôi muốn nó trở thành:

đường dẫn $

Có một tập tin cấu hình tôi có thể sửa đổi để làm điều này?



Câu trả lời:


26

Biến PS1môi trường điều khiển dấu nhắc:

PS1='\w $ '

Để biết thêm thông tin về điều này và các chủ đề cấu hình kịp thời khác, hãy nhập man bash(giả sử bashlà vỏ của bạn) và xem phần "KHUYẾN MÃI".

Để thay đổi này vĩnh viễn, hãy chỉnh sửa ~/.bashrctệp của bạn để thêm dòng trên.


1
~ / .bashrc không được thực thi cho trình đăng nhập. cập nhật ~ / .bash_profile thay thế. Tôi sử dụng chuỗi nhắc nhở sau, có một số thông tin hữu ích khác, không chỉ là đường dẫn: PS1 = '[\ e [32m] \ t [\ e [33m] \ w [\ e [31m] \! [\ e [0m] \ $ '
bobmcn

1
Đừng quên rằng thông thường .profile nguồn .bashrc, do đó, trên thực tế, một vỏ đăng nhập được khởi tạo với cùng một thứ so với vỏ không đăng nhập cộng với những gì trong .profile. Nếu đó là trường hợp, đặt dấu nhắc mới của bạn vào .bashrc giết chết hai con chim bằng một hòn đá.

1

Một vỏ đăng nhập là một vỏ có ký tự đầu tiên của đối số 0 là - hoặc bắt đầu bằng tùy chọn --login. Khi bash được gọi dưới dạng shell đăng nhập tương tác hoặc dưới dạng shell không tương tác với tùy chọn --login, trước tiên, nó sẽ đọc và thực thi các lệnh từ tệp / etc / profile, nếu tệp đó tồn tại. Sau khi đọc tệp đó, nó tìm ~ / .bash_profile, ~ / .bash_login và ~ / .profile, theo thứ tự đó, đọc và thực thi các lệnh từ lệnh đầu tiên tồn tại và có thể đọc được. Tùy chọn --noprofile có thể được sử dụng khi shell bắt đầu ngăn chặn hành vi này Khi shell tương tác không phải là shell đăng nhập được khởi động, bash đọc và thực thi các lệnh từ ~ / .bashrc, nếu tệp đó tồn tại.

Vì vậy, nó phụ thuộc ... tôi không sử dụng --login, vì vậy tôi phải thêm nó vào ~ / .bashrc


1

Không chắc chắn tại sao có ít ngữ cảnh tốt hơn là có nhiều hơn ... Thực tế là có một dòng mới trong lời nhắc có nghĩa là độ dài của dấu nhắc không phải là một vấn đề, nhưng hãy thử điều này:

PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

hoặc là

export PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Điều này cung cấp cho bạn một dấu nhắc màu:

/full/path/to/current/folder
$your command text here

Bằng cách đó, bạn luôn thấy ngữ cảnh thư mục đầy đủ của mình nhưng vẫn nhận được một dòng đầy đủ để nhập văn bản. (Tôi đã bỏ không gian thông thường theo sau '$' vì nó được tô màu cho rõ ràng).

Colours are:
    1. '/full/path/...' = yellow;
    2. '$' (on next line) = cyan;
    3. 'your command text...' = light grey.

Đối với những người KHÔNG muốn bối cảnh 'user @ hostname':

PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

hoặc là

export PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Điều này cung cấp cho bạn một dấu nhắc màu:

user@hostname /full/path/to/current/folder
$your command text here

Đây là sở thích của tôi.

Colours are:
    1. 'user' = (light) green;
    2. '@' = pink;
    3. 'hostname' = (light) green;
    4. '/full/path/...' = yellow;
    5. '$' (on next line) = cyan;
    6. 'your command text...' = light grey.

(Không, không có lỗi chính tả trong bài này - Tiếng Anh của Nữ hoàng;))


1

.bashrc không hoạt động với tôi. Tôi đã thêm phần này vào cuối / etc / profile và nó hoạt động:

export PS1="\[\e[33m\]\w\[\e[0m\] \$ "

Tôi đang sử dụng Cygwin phiên bản 2.11.2 (phiên bản mới nhất kể từ 2018-12-18).


0

Đặt cái này trong ~ / .bashrc của bạn. Đưa ra một dấu nhắc màu và giữ trạng thái trong một dòng duy nhất.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.