Trong thiết bị đầu cuối, sửa đổi văn bản đi trước $


13

Trong thiết bị đầu cuối, tôi luôn có thể xem tôi đang đi theo con đường nào:

macbook-romeo:School romeovs$ echo "example command"

mà tôi thấy khá hữu ích Tuy nhiên, có rất nhiều thứ không cần thiết ở đây: macbook-romeokhông hữu ích vì tôi luôn ở trong macbook của mình (duh). Sau đó, một lần nữa romeovslà khá hữu ích (đây là tên người dùng của tôi).

Có một wan để chỉnh sửa những gì được hiển thị ở đây? ví dụ

22:50 - School - Romeo$ echo "example"

nơi 22:50là thời điểm hiện tại? (Đây chỉ là một ví dụ tất nhiên, tôi sẽ không cần thời gian, tôi sẽ sử dụng như văn bản để tối giản hơn một chút).

Câu trả lời:


11

Đây bài viết OSX Daily có một số hướng dẫn chi tiết về cách làm việc. Nói tóm lại, bạn cần sửa đổi ~/.bash_profiletệp của mình và sửa đổi biến PS1.

Dưới đây là danh sách các biến có thể bạn có thể hiển thị:

  • \ d - Ngày hiện tại
  • \ t - Thời gian hiện tại
  • \ h - Tên máy chủ
  • # - Số lệnh
  • \ u - Tên người dùng
  • \ W - Thư mục làm việc hiện tại (ví dụ: Desktop /)
  • \ w - Thư mục làm việc hiện tại, đường dẫn đầy đủ (ví dụ: / Users / Admin / Desktop)

11

Bạn cần sửa đổi tệp .bashrc được tìm thấy trong thư mục chính của bạn .

Mở terminal và làm như sau:

  • cd ~
  • touch .bashrc
  • open .bashrc

Thêm dòng sau vào cuối tệp .bashrc của bạn

xuất PS1 = '\ t - \ W - \ u \ $'

  • Lưu tệp và đóng trình soạn thảo của bạn
  • Quay trở lại thiết bị đầu cuối và nhập lệnh sau:

    nguồn .bashrc

Bùng nổ! Bây giờ bạn sẽ có lời nhắc mong muốn của bạn! (Nếu lời nhắc mong muốn là ví dụ đã cho của bạn)


Khi tôi làm điều này, tôi đã nhận được như sau MBP-15:~ Daniel$ source .bashrc -bash: export: = ': không phải là định danh hợp lệ -bash: export:\t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$
Daniel Compton

@DanielCompton Cảm ơn bạn đã chỉ ra điều này, tôi đã cập nhật câu trả lời của mình để nó hoạt động. :)
macaco

4

Điều này được kiểm soát bởi biến shell $ PS1

Bạn có thể đặt biến này thành bất cứ điều gì bạn muốn, tạm thời hoặc lâu dài hơn với tập lệnh .login hoặc .profile tùy thuộc vào trình bao bạn sử dụng.

Hãy xem các đầu ra sau đây cho ví dụ:

Last login: Fri Oct 21 21:59:28 on ttys000

Dans-MacBook-Air:~ stuffe$ echo $PS1

\h:\W \u\$

Dans-MacBook-Air:~ stuffe$ PS1="Hello World $"

Hello World $PS1=`date`

Fri 21 Oct 2011 22:03:23 BSTsleep 60

Fri 21 Oct 2011 22:03:24 BSTPS1="`date +%H:%M` $"

22:04 $PS1="\h:\W \u\$"

Dans-MacBook-Air:~ stuffe$

Các khả năng là vô tận. Bạn cũng có thể làm được điều gì đó với PS2, nhưng tôi nghĩ rằng nó chỉ có hiệu lực nếu bạn root - chi tiết còn mơ hồ, Unix của tôi đã có từ lâu và dựa trên Solaris, không phải Mac OS X, nhưng các nguyên tắc cơ bản là như nhau.

Thông tin bổ sung: Như được đề xuất trong các trả lời khác, có các cờ tích hợp như \ h và \ W, v.v. bạn có thể sử dụng, nhưng bạn cũng có thể sử dụng đầu ra của hầu hết mọi lệnh, bằng cách sử dụng "dấu tích ngược" (trích dẫn đơn được sử dụng trong ví dụ ngày của tôi ở trên). Các lệnh bên trong tick trở lại được chạy và thay thế đầu ra, cho phép bạn bao gồm mọi thứ, ngay cả khi không có cờ tích hợp, ngay cả đối với những thứ dường như ngu ngốc, bất cứ điều gì bạn có thể nghĩ đến. Bạn muốn bao gồm thời gian của lần nhập cuối cùng vào một tệp nhật ký lỗi? Sử dụng một cái gì đó như:

PS1="`tail -1 $LOGFILE | awk '{print $1}'` $ "

(đọc dòng cuối cùng của tệp được tham chiếu bởi $ LOGFILE và in cột đầu tiên giả sử một dấu phân cách trường mặc định), v.v. Nếu bạn có thể thực thi nó, bạn có thể bao gồm nó.

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.