Làm cách nào tôi có thể thay đổi dấu nhắc bash để hiển thị thư mục làm việc của mình?


33

Tôi có thể in thư mục làm việc hiện tại của mình như thế này

myPrompt$ pwd
/Users/me/myDir

Tôi muốn cái vỏ của tôi trông như thế này

/Users/me/myDir$ pwd
/Users/me/myDir

Điều đó có thể không? Tôi làm nó như thế nào?


Trên OS X, tên của tệp là .bash_profile không chỉ là .profile. Điều đó sẽ tự động tải cho bạn.

Không hẳn. OSX bắt đầu các shell đăng nhập theo mặc định và điều đó có nghĩa là bash tìm kiếm ~/.bash_profile, ~/.bash_login~/.profile, theo thứ tự đó, đọc và thực thi các lệnh từ cái đầu tiên tồn tại và có thể đọc được. Trong mọi trường hợp, đây thực sự là một nhận xét và không phải là một câu trả lời vì vậy tôi đang chuyển đổi nó thành một.
terdon

Câu trả lời:


39

Bạn có thể sử dụng các chuỗi thoát trong các biến nhắc .

Đặt cái này trong ~/.bashrc:

PS1='\w\$ '

2
cảm ơn. Tôi đã thực hiện thay đổi đó. Bây giờ tôi thấy: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ .... Tôi muốn chỉ hiển thị phần có nội dung "tmp" cho lời nhắc của tôi. Làm thế nào để tôi che giấu phần còn lại? Tôi muốn ẩn phần "abramhandler" và "Abram's-MacBook-Air-3"
bernie2436

7
@ akh2103 sử dụng \Wthay thế \w. Xem liên kết Gilles đã cho bạn một lời giải thích (ngắn) về mã thoát.
terdon

@terdon Tôi thấy điều tương tự với \ W và \ w. Tôi đang chạy Unix trên OSX.
bernie2436

2
@ akh2103 nếu bạn đang chạy OSX và sử dụng ứng dụng đầu cuối, bạn nên thay đổi thành ~ / .profile chứ không phải .bashrc vì thiết bị đầu cuối chạy shell đăng nhập theo mặc định. Bạn cũng nên nguồn ~ / .profile hoặc mở một thiết bị đầu cuối mới để các thay đổi có hiệu lực. Ngoài ra, vui lòng chỉnh sửa để thêm thông tin, tôi không thể hiểu những gì bạn đang yêu cầu từ nhận xét cuối cùng của bạn.
terdon

@terdon khi tôi chạy nguồn ~ / .profile, nó thay đổi đường dẫn chính xác trong thiết bị đầu cuối hiện tại. Nhưng khi tôi mở một thiết bị đầu cuối mới thì tôi vẫn thấy "abram's mac book air", v.v. Tôi đã thử thêm nguồn ~ / .profile vào cả hai tệp .profile và .bashrc nhưng vẫn không gặp may. Có ý kiến ​​gì không?
bernie2436

4

Đây là một lớp lót cho OSX. Nó nối thêm lời nhắc bạn muốn vào tệp hồ sơ và sau đó tải lại hồ sơ.

echo "PS1='\w\$ '" >> ~/.bash_profile; source ~/.bash_profile

Trên El Capitan bạn sẽ muốn sử dụng

echo "PS1='\w\$ '" >> ~/.profile; source ~/.profile

1

Vì một số lý do '\w\$'không làm việc cho tôi mà thay vào đó tôi đã làm: export PS1="$(pwd) \$"và nó đã hoạt động.


4
Điều đó sẽ không hoạt động tốt khi bạn thay đổi thư mục ...
Stephen Kitt

0

Trông giống như một luồng cũ nhưng các bước bên dưới hoạt động với tôi trên OS X 10.9.5

  • đưa PS1='\w\$ 'vào~/.profile
  • nếu bạn thực hiện bất kỳ thay đổi trong việc ~/.bashrcloại bỏ chúng
  • đóng thiết bị đầu cuối với cmd+q
  • mở lại nhà ga

1
Trong trường hợp của tôi, PATH hoàn chỉnh thực sự rất lớn nên tôi đã thêm một cờ nữa cho dòng tiếp theo như PS1 = '\ w \ n \ $'
người chiến thắng
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.