Ubah \w
(huruf kecil) ke \W
(huruf besar):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
^^
this one waaaaaay over here ------------------------------------------------+
Lihatlah Bash Prompt HOWTO untuk banyak detail menyenangkan. contoh:
[email protected]:/usr/local/bin$ echo $PS1
${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$
[email protected]:/usr/local/bin$ export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\W\[\033[00m\]\$ '
[email protected]:bin$
PROMPT_COMMAND
variabel, jika disetel, adalah perintah yang dijalankan sebelum menampilkan prompt yang ditentukan dalam PS1
. Dalam kasus Anda, PROMPT_COMMAND
menjalankan echo
pernyataan dengan escape sequence ANSI tertentu yang memanipulasi bilah judul dari Xterm.
Jika Anda mencurigai PROMPT_COMMAND
Anda menimpa PS1
Anda prompt, Anda dapat unset
itu dan uji semuanya:
$ unset PROMPT_COMMAND
Terakhir, pastikan Anda mengubah PS1
definisi yang benar-benar akan digunakan. Lokasi umum adalah /etc/bash.bashrc
, /etc/profile
, ~/.bashrc
, ~/.bash_profile
, ~/.profile
. File sistem umumnya (namun tidak selalu) dijalankan sebelum file pengguna.
Perintah penggantian bash sederhana adalah
${VAR/pattern_to_find/pattern_to_replace}
Untuk menampilkan direktori terakhir Anda cukup melakukan ${PWD/*\//}
, yaitu menemukan sesuatu sebelum dan termasuk yang terakhir '/
' dan menggantinya dengan nol.
Di mesin ubuntu saya, saya menggunakan:
export PS1='$(whoami):${PWD/*\//}#'.
Solusi saya adalah menampilkan direktori tiga teratas dan terbawah 2 jika ada lebih dari 5
Jadi prompt saya (yang memiliki info lain juga) terlihat seperti:
08:38:42 durrantm U2017 /home/durrantm/Dropbox/_/rails/everquote
ketika pwd saya sebenarnya
/home/durrantm/Dropbox/93_2016/work/code/ruby__rails/rails/everquote
Permintaan PS1 saya diatur sebagai berikut:
HOST='\[\033[02;36m\]\h'; HOST=' '$HOST
TIME='\[\033[01;31m\]\t \[\033[01;32m\]'
LOCATION=' \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
git_branch
adalah fungsi yang menunjukkan cabang git saat ini, saya menyimpannya di file dot saya, yaitu:
git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}