Ada sejumlah tutorial / posting online (mis. Http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/ ) tentang cara menyesuaikan permintaan Anda di bash dengan menetapkan PS1
. Apakah ada cara untuk menyesuaikan warna / huruf tebal dari perintah yang saya ketik?
Dengan kata lain, sebagai contoh katakanlah saya ingin prompt hijau, perintah biru tebal, dan kemudian output dalam warna apa pun yang akan default. Dalam contoh di bawah ini, saya sudah tahu bagaimana membuat " joe>
" tampilan hijau, biru, tebal, apa pun dengan pengaturan PS1
. Tapi apakah ada cara saya bisa membuat git status
pertunjukan berani misalnya?
joe> git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
...
preexec() { printf '\e[0m' }
Jawaban:
Anda harus meninggalkan warna tertinggal setelah PS1 (mulai setelah
>
dalam contoh Anda), dan kemudian gunakan bashDEBUG
trap untuk menghapus warna sebelum perintah Anda dijalankan (tetapi setelah Anda menekan enter di shell Anda. Coba sesuatu seperti ini :sumber
ls --color=always
diwarnai)?^[(B^[[m
). Itu terjadi hanya pada beberapa sistem, meskipun: Saya menguji ini pada dua sistem, keduanya menjalankan Ubuntu 12,04 LTS, dan hanya satu dari mereka yang memiliki gangguan.Untuk kelengkapan, berikut cara mengatur warna prompt dan warna input baris perintah di bash. Masukkan baris ini di
.bashrc
.Perangkap DEBUG, seperti yang disarankan oleh Chris Down , digunakan untuk mengatur ulang atribut teks. Ini dimaksudkan untuk debugging, tetapi juga berguna untuk mengeksekusi kode sebelum mengeksekusi perintah yang diketik oleh pengguna .
Dalam pengaturan prompt:
\[…\]
digunakan di sekitar sekuens escape untuk memberitahu bash bahwa mereka tidak menggunakan real estat layar apa pun (tanpa mereka, layar akan menjadi kacau ketika bash perlu menggambar ulang prompt).\e[…m
di mana…
angka, atau lebih umum urutan angka yang dipisahkan oleh titik koma, adalah urutan melarikan diri yang dikirim ke terminal untuk mempengaruhi warna dan atribut lain dari teks berikut. Misalnya,1;34
atur tebal biru;0;32
me-reset semua atribut kemudian beralih warna menjadi hijau. Sesuaikan dengan selera.\w\$
cetak direktori saat ini dan$
atau#
. Tentu saja Anda dapat mengubah ini menjadi apa pun yang Anda suka, dan menyisipkan perubahan atribut teks di antaranya jika Anda mau.sumber
Saya baru belajar tentang perintah BASH dan saya telah duduk di sini bermain dengan perintah warna dalam versi saya. Saya menemukan solusi ini:
Menggunakan perintah ini:
Dekonstruksi: PS1 =: memulai perintah PS1
'': berisi perintah dalam tanda kutip tunggal (jadi BASH tidak berpikir itu adalah perintah untuk itu)
\: setiap perintah individu dimulai dengan ini
[]: berisi setiap perintah
\ e (bisa juga \ 033 karakter pelarian ASCII): memulai perintah warna
Perintah warna mendahului hal itu berlaku.
[\ e [0; 36m]: cyan
\ h: nama host
'>': dicetak setelah nama host
[\ e [0; 31m]: merah
Rupanya, perintah merah di akhir membuat input menjadi merah. Ubah saja warna sesuai keinginan Anda dan itulah yang Anda cari.
Juga, situs ini membantu saya sedikit:
https://www.linuxnix.com/linuxunix-shell-ps1-prompt-explained-in-detail/
Versi Saya: GNU bash, v. 4.2.46
Hati hati,
Musang
sumber