Aku dapat mengubah warna melalui preferensi , tapi bagaimana saya bisa mengubah warna latar belakang dan warna teks dari terminal melalui command line?
Tertentu pada XTerm/ANSI-terminal yang kompatibel (seperti xterm
dan gnome-terminal
), anda dapat mengatur warna menggunakan palet yang lebih besar maka default 8/16-warna palet (misalnya menggunakan 88-warna, 256-warna atau 16777216-warna (RGB) palet; kedua xterm
dan gnome-terminal
mendukung 256-warna dan 16777216-warna (RGB) palet); pikiran bahwa shell yang mungkin menimpa ini (ini adalah kasus misalnya untuk zsh
).
Berikut ini's script untuk menampilkan warna-warna dalam palet 256-warna bersama dengan mereka ANSI kode warna dalam XTerm/ANSI-terminal yang kompatibel dengan 256-warna palet dukungan:
#!/bin/bash
for((i=16; i<256; i++)); do
printf "\e[48;5;${i}m%03d" $i;
printf '\e[0m';
[ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done
Tergantung pada apakah anda ingin menerapkan warna untuk latar depan atau latar belakang, menggunakan <fg_bg>
nilai 38
atau 48
(masing-masing) dalam perintah berikut:
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
Misalnya, untuk mengatur warna latar depan (<fg_bg>
=38
) merah (<ANSI_color_code>
=196
) dan warna latar belakang (<fg_bg>
=48
) hitam (<ANSI_color_code>
=0
):
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
It's diperlukan untuk redraw prompt menggunakan printf '\e[K'
dalam rangka untuk warna latar belakang untuk berlaku untuk seluruh baris dan dalam rangka untuk warna foreground untuk menerapkan untuk kursor:
Hal yang sama dapat dicapai dengan menggunakan nilai RGB bukan ANSI kode warna di terminal yang kompatibel; tergantung pada apakah anda ingin menerapkan warna untuk latar depan atau latar belakang, menggunakan <fg_bg>
nilai 38
atau 48
(masing-masing) dalam perintah berikut:
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
Misalnya, untuk mengatur warna latar depan (<fg_bg>
=38
) merah (<R>
=255
, <G>
=0
, <B>
=0
) dan warna latar belakang (<fg_bg>
=48
) hitam (<R>
=0
, <G>
=0
, <B>
=0
):
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'
Sekali lagi, itu's diperlukan untuk redraw prompt menggunakan printf '\e[K'
dalam rangka untuk warna latar belakang untuk berlaku untuk seluruh baris dan dalam rangka untuk warna foreground untuk menerapkan untuk kursor:
Baik menggunakan metode ini, anda dapat menggunakan printf '\e[0m'
untuk me-reset semua atribut:
Informasi seperti yang ditemukan di halaman ini, termasuk preview kolom:
Urutan terdiri dari karakter Escape (yang sering diwakili oleh "^[
" atau "<Esc>
") diikuti oleh beberapa karakter lain: "^[FCm
" (di mana FC
adalah salah satu dari angka-angka dalam daftar poin di bawah ini).
Di bash
, Spasi kode dapat salah satu dari berikut:
\e
\033
(oktal)\x1B
(heksadesimal)Note 1: "\e[0m
" urutan menghilangkan semua atribut (format dan warna). Hal ini dapat menjadi ide yang baik untuk menambahkannya pada akhir dari masing-masing teks berwarna.
Note 2: Latar depan dan warna latar belakang dapat bervariasi, tergantung pada terminal's konfigurasi dan tidak semua warna yang didukung.
0
: Reset/menghapus semua modifier, latar depan dan latar belakang atribut: echo -e "\e[0mNormal Text"
1
: Bold/Terang: echo -e "Normal \e[1mBold"
2
: Dim: echo -e "Normal \e[2mDim"
4
: Digarisbawahi: echo -e "Normal \e[4mUnderlined"
5
: Blink (doesn't bekerja di sebagian besar terminal kecuali XTerm): echo -e "Normal \e[5mBlink"
7
: Mundur/Invert: echo -e "Normal \e[7minverted"
8
: Tersembunyi (berguna untuk sensitif info): echo -e "Normal \e[8mHidden Input"
21
: Reset/Menghapus bold/terang: echo -e "Normal \e[1mBold \e[21mNormal"
22
: Reset/Menghapus dim: echo -e "Normal \e[2mDim \e[22mNormal"
24
: Reset/Menghapus menggarisbawahi: echo -e "Normal \e[4mUnderlined \e[24mNormal"
25
: Reset/Menghapus blink: echo -e "Normal \e[5mBlink \e[25mNormal"
27
: Reset/Menghapus mundur/invert: echo -e "Normal \e[7minverted \e[27mNormal"
28
: Reset/Menghapus tersembunyi: echo -e "Normal \e[8mHidden \e[28mNormal"
39
: Default (biasanya berwarna hijau, putih atau abu-abu terang): echo -e "Default \e[39mDefault"
30
: Hitam: echo -e "Default \e[30mBlack"
(terbaik dikombinasikan dengan warna latar belakang: echo -e "Default \e[30;107mBlack putih"
)31
: Merah (don't digunakan dengan latar belakang hijau)32
: Hijau33
: Kuning34
: Biru35
: Jingga/Ungu36
: Cyan37
: Abu-Abu Terang90
: Abu-Abu Gelap91
: Lampu Merah92
: Lampu Hijau93
: Cahaya Kuning94
: Cahaya Biru95
: Light Magenta/Pink96
: Light Cyan97
: Putih49
: Default warna latar belakang (biasanya hitam atau biru)40
: Hitam41
: Merah42
: Hijau43
: Kuning44
: Biru45
: Jingga/Ungu46
: Cyan47
: abu-Abu Terang (don't menggunakan putih dengan latar depan)100
: abu-Abu Gelap (don't digunakan dengan latar hitam)101
: Lampu Merah102
: Cahaya Hijau (don't menggunakan putih dengan latar depan)103
: Cahaya Kuning (don't menggunakan putih dengan latar depan)104
: Biru muda (don't digunakan dengan cahaya kuning latar depan)105
: Light Magenta/Pink (don't digunakan dengan cahaya latar depan)106
: Light Cyan (don't menggunakan putih dengan latar depan)107
: Putih (don't digunakan dengan cahaya latar depan)Untuk mengatur latar depan dan latar belakang warna sekaligus, gunakan ther bentuk echo -e "\e[S;FG;BGm"
. Misalnya: echo -e "\e[1;97;41m"
(bold foreground putih pada latar belakang merah)
Untuk 256 pilihan warna, melihat sumber halaman.
Jika hal ini dimaksudkan untuk mengubah warna pada insidental dasar:
Anda dapat menggunakan setterm perintah:
setterm -term linux -back <background_colour> -fore <text_color> -clear
dari warna, anda dapat memilih dari (baik kedepan dan latar belakang):
black|blue|green|cyan|red|magenta|yellow|white|default
untuk opsi lebih lanjut:
setterm -help
Di 14.04, saya didn't menemukan pilihan untuk menggunakan dconf
untuk mengatur warna atau terminal. Namun anda dapat menggunakan gconftool
gconftool-2 --dapatkan /apps/gnome-terminal/global/profile_list
gconftool-2 --set "/apps/gnome-terminal/profil/
misalnya untuk mengatur warna teks putih
Yang sama dengan warna latar belakang:
gconftool-2 --set "/apps/gnome-terminal/profil/
misalnya untuk mengatur warna latar belakang hitam
Selain itu, untuk menetapkan nama warna(s), anda hanya dapat menggunakan putih
atau hijau
, dari palet yang sama sebagai setterm perintah, misalnya:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black
Berbagai kode warna yang digunakan untuk memperoleh berwarna output juga bisa digunakan untuk mendapatkan latar belakang berwarna:
40 black
41 red
42 green
43 yellow
44 blue
45 magenta
46 cyan
47 white
Oleh karena itu, perintah berikut ini ternyata latar belakang saya merah:
$ echo -e '\e[0;41m'
Tergantung pada shell, terminal emulator, dll., anda mungkin tidak perlu -e
.
Lihat kos's jawaban untuk beralih latar depan atau latar belakang tertentu warna dari palet, atau bahkan langsung warna RGB di beberapa terminal. Efek dari urutan seperti itu berlangsung sampai warna yang berbeda yang dipilih (atau's dikembalikan ke default).
Pendekatan lain, yang didukung oleh beberapa terminal emulator, adalah untuk redefine yang tepat nilai RGB dari terminal's default latar depan dan warna latar belakang menggunakan OSC 10 / 11 escape sequences:
echo -ne '\e]10;#123456\e\\' # set default foreground to #123456
echo -ne '\e]11;#abcdef\e\\' # set default background to #abcdef
Ini adalah kemungkinan untuk bertahan lebih lama (sampai diganti oleh yang lain OSC 10 / 11 atau reset melalui OSC 110 / 111), tapi tidak seperti dconf pendekatan ini masih mempengaruhi terminal saat ini hanya.