Saya telah melihat di beberapa cuplikan layar (tidak ingat di mana di web) bahwa terminal dapat menampilkan [username@machine /]$
huruf tebal. Saya berharap untuk mendapatkan ini juga karena saya selalu menemukan diri saya menggulir output panjang untuk mencari tahu dengan kesulitan baris pertama setelah perintah saya.
Bagaimana saya bisa membuat nama pengguna dll. Tebal atau berwarna?
bash
prompt
escape-characters
Benjamin
sumber
sumber
Jawaban:
Anda harus dapat melakukan ini dengan mengatur
PS1
variabel prompt di~/.bashrc
file Anda seperti ini:Untuk membuatnya berwarna (dan mungkin tebal - ini tergantung pada apakah emulator terminal Anda telah mengaktifkannya), Anda perlu menambahkan kode warna escape:
Di sini, segala sesuatu yang tidak luput antara bagian
1;91m
dan0m
akan diwarnai dalam1;91
warna (merah tebal). Letakkan kode pelarian ini di sekitar bagian yang berbeda dari prompt untuk menggunakan warna yang berbeda, tapi ingat untuk mengatur ulang warna dengan0m
atau Anda akan memiliki keluaran terminal berwarna. Ingatlah untuk mencari file setelahnya untuk memperbarui shell saat ini:source ~/.bashrc
sumber
1;31
dan1;91
. Menggunakan bobot font normal, kisaran 90-97 memberikan warna yang lebih cerah daripada yang lain.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.CSI 1m
nyalakan huruf tebal danCSI 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 adalahtput
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
:Inilah yang akan terlihat seperti versi generik saya. Ini
0
adalah status keluar dari perintah terakhir.sumber
Ini adalah prompt default yang Anda dapatkan di cygwin bash shell:
Referensi:
man bash
dan periksaPROMPTING
bagian tersebut.sumber
Saya menggunakan fungsi shell ini untuk mendapatkan atribut teks di terminal:
Kemudian untuk menggunakannya:
Ini memberi saya di
[username@hostname]:cwd>
manausername@hostname
hijau tebal dancwd
biru tebal.sumber
~/.bashrc
?~/.bashrc
file saya dan menggunakannya untuk mengatur prompt saya. Saya bahkan mengubah warna tergantung pada sistem saya aktif.Agar terlihat seperti prompt Ubuntu default, tambahkan
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
di Anda
~/.bashrc
.Ini akan menghasilkan hijau yang terkenal
user@host
(tebal), diikuti oleh titik putih putih yang tidak tebal, diikuti oleh direktori kerja Anda dalam warna biru tebal, diikuti oleh$
tanda, spasi, dan perintah Anda dalam huruf putih tidak tebal:sumber