Bagaimana agar path direktori lengkap selalu ditampilkan di terminal mac (seperti terminal linux)

71

Di terminal ubuntu saya, saya selalu direktori saat ini ditampilkan sepenuhnya. Seperti ini:

blabla @ blublu: ~ / music / my_album / classic / beethoven $

Tetapi di terminal Mac (Mac OS X 10.6.5) saya tidak menunjukkan path lengkap dan seperti ini:

blabas-MacBook-Pro: Beethoven klasik $

Apakah ada cara saya mengubah perilaku terminal mac untuk bertindak seperti terminal linux?

Der Hochstapler
sumber
1
harus ada layar di preferensi Terminal App. yang dapat Anda ubah perilaku.
1
Terminal Linux tidak secara ajaib menunjukkan path lengkap; itu tergantung pada pengaturan Anda. Beberapa distro linux mengkonfigurasi hal-hal untuk menunjukkan path lengkap secara default, beberapa tidak. Itu semua tergantung pada variabel $ PS1. (Lihat jawaban Asmus.)
frabjous

Jawaban:

109

Untuk membiarkan bash mengembalikan "user @ hostname: path / ke / direktori $" sebagai prompt Anda, tambahkan baris berikut ke ~ / .bash_profile Anda:

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

atau

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

jika Anda suka memiliki ruang antara $ dan perintah

untuk membuat perubahan segera berlaku, jalankan perintah berikut di setiap jendela yang terbuka (atau restart Terminal):

source ~/.bash_profile

EDIT : Daftar string yang tersedia dapat ditemukan di paragraf "PROMPTING" di halaman manual untuk bash ( man bash):

DORONGAN

  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
Asmus
sumber
1
Atau cukup masukkan PS1tugas itu di setiap jendela yang terbuka. By the way, exportitu tidak perlu.
Dennis Williamson
6
Sebenarnya, jika Anda tidak menggunakan ekspor, Anda akan mendefinisikan variabel shell, bukan variabel lingkungan, jadi PS1 tidak akan diteruskan secara global ke semua proses.
Asmus
1
export com berfungsi seperti yang disarankan dan memperlihatkan path lengkap, tetapi begitu saya me-restart terminal itu hanya menampilkan direktori sekarang (bukan path lengkap). Bagaimana saya bisa menyimpan ini selamanya.
JiteshW
1
akan mungkin untuk menjelaskan apa PS1, \u@\H:\w$artinya?
Jas
4
@Jas saya sudah memperbarui jawaban saya, tidak tahu mengapa saya tidak melakukan ini tahun lalu ^^
Asmus
10

Saya tidak yakin tentang Mac, tapi di Ubuntu saya sudah berubah prompt Gnome Terminal dengan

PS1="\a\n\n\e[31;1m\u@\h on \d at \@\n\e[33;1m\w\e[0m\n$ "
BZ1
sumber
8

Saya membuatnya terlihat sangat mirip dengan terminal centOS di Mac saya. Buka bash_profile, di terminal

nano ~/.bash_profile

Tambahkan yang berikut ini

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

Mulai ulang Terminal dan kemudian akan terlihat seperti ini

[email protected] [/Applications/MAMP/htdocs]$ 
Andres Ramos
sumber
1

Saya hanya mengubah / w ke / W untuk membuat folder saat ini

di terminal berwarna

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

tidak ada terminal warna

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

Saya menggunakan ubuntu 16.04 dan mengubah file di ~ / .bashrc

Afrijal Dzuhri
sumber
0

Saya menggunakan perintah ini. Ini bekerja untuk saya.

pertama,

vi ~/.bash_profile

lalu, tambahkan kata-kata ini di baris baru.

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

akhirnya,

`source ~/.bash_profile`
Fank Zhou
sumber