Làm thế nào để có đường dẫn thư mục đầy đủ luôn được hiển thị trong thiết bị đầu cuối mac (như thiết bị đầu cuối linux)


71

Trong thiết bị đầu cuối Ubuntu của tôi, tôi luôn luôn hiển thị thư mục hiện tại. Chỉ như thế này:

blabla @ blublu: ~ / âm nhạc / my_album / cổ điển / beethoven $

Nhưng trong thiết bị đầu cuối Mac (Mac OS X 10.6.5) của tôi không hiển thị đường dẫn đầy đủ và nó giống như thế này:

blabas-MacBook-Pro: beethoven cổ điển $

Có cách nào để tôi thay đổi hành vi của thiết bị đầu cuối mac để hoạt động như thiết bị đầu cuối linux không?


1
phải có một màn hình trong tùy chọn của Terminal App. mà bạn có thể thay đổi hành vi.

1
Thiết bị đầu cuối Linux không hiển thị đường dẫn đầy đủ; nó phụ thuộc vào cài đặt của bạn. Một số distro linux cấu hình mọi thứ để hiển thị đường dẫn đầy đủ theo mặc định, một số thì không. Tất cả phụ thuộc vào biến $ PS1. (Xem câu trả lời của Asmus.)
frabjous

Câu trả lời:


109

Để cho bash trả về "user @ hostname: path / to / thư mục $" làm lời nhắc của bạn, hãy thêm dòng sau vào ~ / .bash_profile:

export PS1='\u@\H:\w$'

hoặc là

export PS1='\u@\H:\w$ '

nếu bạn muốn có một khoảng trắng giữa $ và lệnh

để thay đổi có hiệu lực ngay lập tức, hãy chạy lệnh sau trong mỗi cửa sổ đang mở (hoặc khởi động lại Terminal):

source ~/.bash_profile

EDIT : Có thể tìm thấy danh sách các chuỗi có sẵn trong đoạn "KHUYẾN MÃI" trong trang man cho bash ( man bash):

KHUYẾN MÃI

  When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the secondary prompt PS2 when it needs more input to complete a command.  Bash allows these prompt strings  to  be  customized  by
   inserting a number of backslash-escaped special characters that are decoded as follows:
          \a     an ASCII bell character (07)
          \d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
          \D{format}
                 the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation.  The braces are required
          \e     an ASCII escape character (033)
          \h     the hostname up to the first `.'
          \H     the hostname
          \j     the number of jobs currently managed by the shell
          \l     the basename of the shell's terminal device name
          \n     newline
          \r     carriage return
          \s     the name of the shell, the basename of $0 (the portion following the final slash)
          \t     the current time in 24-hour HH:MM:SS format
          \T     the current time in 12-hour HH:MM:SS format
          \@     the current time in 12-hour am/pm format
          \A     the current time in 24-hour HH:MM format
          \u     the username of the current user
          \v     the version of bash (e.g., 2.00)
          \V     the release of bash, version + patch level (e.g., 2.00.0)
          \w     the current working directory, with $HOME abbreviated with a tilde
          \W     the basename of the current working directory, with $HOME abbreviated with a tilde
          \!     the history number of this command
          \#     the command number of this command
          \$     if the effective UID is 0, a #, otherwise a $
          \nnn   the character corresponding to the octal number nnn
          \\     a backslash
          \[     begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
          \]     end a sequence of non-printing characters

1
Hoặc chỉ cần nhập PS1nhiệm vụ đó trong mỗi cửa sổ mở. Nhân tiện, exportlà không cần thiết.
Dennis Williamson

6
Trên thực tế, nếu bạn không sử dụng xuất, bạn sẽ xác định biến shell chứ không phải biến môi trường, vì vậy PS1 sẽ không được truyền toàn cầu cho tất cả các quy trình.
Asmus

1
export com đang hoạt động như đề xuất và hiển thị đường dẫn đầy đủ, nhưng một khi tôi khởi động lại thiết bị đầu cuối thì nó chỉ hiển thị thư mục hiện tại (không phải đường dẫn đầy đủ). Làm thế nào tôi có thể giữ điều này mãi mãi.
JiteshW

1
nó sẽ có thể giải thích những gì PS1, \u@\H:\w$có nghĩa là gì?
Jas

4
@ Tôi đã cập nhật câu trả lời của mình cho phù hợp, không biết tại sao tôi không làm điều này từ nhiều năm trước ^^
Asmus


8

Tôi đã làm cho nó trông rất giống với thiết bị đầu cuối centOS trên máy Mac của tôi. Mở bash_profile, trên thiết bị đầu cuối

nano ~/.bash_profile

Thêm những điều sau

# Show always fullpath on terminal
export PS1='\u@\H [\w]$ '

Khởi động lại Terminal và sau đó nó sẽ trông như thế này

username@host.local [/Applications/MAMP/htdocs]$ 


1

Tôi chỉ thay đổi / w thành / W để tạo thư mục hiện tại

trong thiết bị đầu cuối màu

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

không có thiết bị đầu cuối màu

    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '

Tôi sử dụng Ubuntu 16.04 và thay đổi tệp trong ~ / .bashrc


0

Tôi đã sử dụng lệnh này. Nó làm việc cho tôi.

Đầu tiên,

vi ~/.bash_profile

Sau đó, thêm từ này trong một dòng mới.

`export PS1='\u@\H:\w$ '`

cuối cùng,

`source ~/.bash_profile`
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.