Temukan tempat Anda PS1
diatur di .bashrc
dan masukkan '\[\e[1m\]'
di awal dan \[\e[0m\]
di akhir.
\[
dan \]
diperlukan agar shell tahu kekacauan di dalamnya memakan 0 ruang di layar, yang mencegah beberapa perilaku kacau ketika melakukan pengeditan baris. Anda tidak perlu terlalu khawatir tentang hal itu.
\e[
dikenal sebagai CSI (pengontrol urutan pengantar). Anda akan melihatnya digunakan di sebagian besar kode yang tercantum pada halaman Wikipedia yang dirujuk. \e
berarti karakter pelarian.
- Jika Anda melihat pada tabel SGR pada halaman Wikipedia, Anda akan melihat 1 adalah angka untuk teks terang / tebal, dan 0 untuk reset. Dengan demikian
CSI 1m
nyalakan huruf tebal dan CSI 0m
atur ulang font sehingga sisa teks Anda normal.
Wikipedia memiliki daftar lengkap kode pelarian ANSI yang dapat Anda gunakan jika emulator terminal Anda mendukungnya.
Edit
Untuk portabilitas dan keterbacaan, Anda harus menggunakan tput
alih-alih kode melarikan diri hard-coding. Satu-satunya downside adalah tput
pendekatan tidak akan bekerja dengan terminal yang mendukung kode ANSI tetapi memiliki database terminfo rusak atau hilang, tetapi dalam kasus itu terminfo rusak adalah masalah yang lebih besar karena banyak aplikasi konsol Anda yang bergantung pada terminfo mungkin tidak berfungsi dengan baik.
Berikut ini contoh dari apa yang saya lakukan di .bashrc
:
# color names for readibility
reset=$(tput sgr0)
bold=$(tput bold)
black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
white=$(tput setaf 7)
user_color=$green
[ "$UID" -eq 0 ] && { user_color=$red; }
PS1="\[$reset\][\[$cyan\]\A\[$reset\]]\[$user_color\]\u@\h(\l)\
\[$white\]:\[$blue\]\W\[$reset\][\[$yellow\]\$?\[$reset\]]\[$white\]\
\\$\[$reset\] "
Inilah yang akan terlihat seperti versi generik saya. Ini 0
adalah status keluar dari perintah terakhir.