GNU/Linux >> Belajar Linux >  >> Linux

Warna berbeda untuk perintah dan output

Anda dapat meneruskan hasilnya ke program yang melakukan pewarnaan. Misalnya, ada program seperti pycolor :

pycolor module.py

Untuk membangun milik Anda sendiri:

red="$(tput setaf 1)"
reset="$(tput sgr0)"
echo $'foo\nbar' | sed -e "s/\(bar\)/$red\1$reset/"

Lebih lanjut tentang keluaran warna.


Tidak terlalu; warna keluaran program tertentu dikontrol oleh perintah, bukan oleh terminal.

Yang mengatakan, dengan asumsi terminal Anda memahami kode escape ANSI untuk warna (kebanyakan), Anda dapat menggunakan kode escape untuk mengatur warna prompt yang Anda inginkan di awal prompt, dan warna keluaran yang Anda inginkan di akhir; ini akan menghasilkan baris perintah Anda juga dalam warna apa pun yang Anda atur untuk keluaran, tetapi itu mungkin sedekat mungkin dengan apa yang Anda cari. Misalnya, berikut ini:

$ export PS1='\[\033[00;35m\]\u\[\033[00m\]@\[\033[00;35m\]\H\[\033[00m\]:\[\033[00;33m\]\W\[\033[00m\] \$\[\033[00;34m '

akan memberi Anda prompt yang terlihat seperti:

[email protected]:wd $ _

dengan 'user' dan 'host' dalam warna ungu, 'wd' (cwd Anda) dalam warna coklat (kuning tua), dan semuanya setelah '$ ' dalam apa pun yang digunakan terminal Anda untuk biru muda. (Xterm default akan merender ini dalam cyan; gnome-terminal tampaknya default ke warna biru cornflower yang agak bagus.)

Kode warna sebenarnya, sebagaimana ditentukan dalam format yang diperlukan untuk bash, misalnya, \[\033[00;35m\] , di mana 00;35 adalah spesifikasi warna sebenarnya; 00 terkemuka jarang berubah, tetapi dapat menghasilkan efek IIRC bold (01), underline (??), dan reverse video (??), sedangkan trailing '35' adalah warna sebenarnya, yang dalam hal ini berwarna ungu.

Sangat sulit untuk menemukan daftar kode warna ANSI yang layak, tetapi warna latar depan berkisar dari 30 hingga 37, dan latar belakang dari 40 hingga 47, sebagai berikut:

color        fg  bg
black        30  40
red          31  41
green        32  42
yellow       33  43
blue         34  44
purple       35  45
cyan         36  46
gray/white   37  47

Perlu diingat bahwa, karena Anda menyetel warna default untuk semua yang mengikuti prompt Anda, program yang Anda jalankan yang tidak menyetel warnanya sendiri melalui kode pelarian akan menggunakan warna itu -- misalnya, jika Anda menjalankan pager, Anda cenderung melihat keluarannya dengan warna yang sama dengan yang Anda tetapkan untuk perintah lain. Sedangkan perintah yang lakukan mengatur warna mereka sendiri melalui kode pelarian akan mengabaikan upaya Anda sepenuhnya.


Ya, saya membuatnya berfungsi untuk bash, setidaknya di linux dan mac OS.

Pertama, atur beberapa variabel atribut, dan prompt PS1 untuk meninggalkan set terminal dengan atribut baris perintah yang diinginkan, misalnya:

bold="\[$(tput bold)\]"
none="$(tput sgr0)"
export PS1="\$ $bold"

Kemudian, gunakan jebakan bash DEBUG, yang dijalankan tepat sebelum setiap perintah, untuk mengubah atribut teks untuk keluaran perintah:

trap 'echo -ne "${none}"' DEBUG

Linux
  1. 10 tutorial perintah Linux untuk pemula dan ahli

  2. Tutorial Perintah Linux pinky untuk Pemula (8 Contoh)

  3. $_ Vs !$. Argumen Terakhir Dari Perintah Sebelumnya Dan Pengalihan Output?

  1. Melihat output penuh dari perintah PS

  2. Ubah output menjadi string

  3. docker:PID berbeda untuk `top` dan `ps`

  1. Output perintah dialihkan ke file dan terminal

  2. Bagaimana saya bisa mendapatkan tanggal dan waktu saat ini di terminal dan mengatur perintah khusus di terminal untuk itu?

  3. Mengapa perintah dan dmidecode gratis menunjukkan nilai yang berbeda untuk RAM?