Tag

, , , , , , , ,


Prompt shell ber kedap-kedip dan penuh warna??? Bisa ga sih???

Postingan ini adalah versi lanjutan dari Post sebelumnya. Pada Post sebelumnya saya telah menyampaikan tentang bagaimana cara merubah prompt shell Linux, khususnya prompt Bash (masalahnya belum tak uji coba di csh, ksh ato *sh-*sh lainnya).
Nah, kali ini saya akan mencoba membahas bagaimana cara memberikan warna pada Prompt shell. Penggantian warna prompt shell ini agak sedikit berbeda dengan penggantian teks prompt seperti pada Post sebelumnya. Karena, tidak ada jaminan penggantian warna ini dapat berjalan dengan baik di komputer temen2.

Untuk dapat melakukan perubahan warna ini, paling tidak library ncurses (libncurses.so.5) harus sudah terisntall dengan baik di komputer temen2 (kalo ga salah sih…. ^_^). Tapi jangan khawatir. Hampir semua distro Linux yang beredar di dunia persilatan Sistem Operasi saat ini telah menyertakan library ini. Hanya beberapa distro kecil atau distro Ja-Dul saja yang tidak menyertakan library ini.

Pewarnaan ini penanganannya agak sedikit berbeda dengan perubahan prompt yang lalu. Perintah untuk mengatur pewarnaan ini harus menggunakan ASCII escape-character dengan susuan seperti berikut:

\e[34;01m

Angka 34 dan 01 disini adalah angka yang menunjukkan warnanya. Sebagai catatan, warna yang digunakan disini masih terbatas hanya beberapa warna pokok saja. Akan tetapi, warna-warna ini dapat dikombinasikan satu dengan yang lainnya untuk mengatur gelap-terangnya warna serta penambahan animasi flip-flop, underline atau backbround.

Contoh penggunaanya (menggunakan echo):

[Media]# echo -e “\e[30;1m hitam”
hitam
[Media]# echo -e “\e[32;1m hijau”
hijau

Urutan angka dan kegunaanya yaitu (menurut hasil penelusuran sendiri, bisa jadi salah):

0	Reset ke standar/default (walaupun dikombinasikan dengan warna lain)
1	Efek warna agak terang (tipis)
2-3	Efek warna agak gelap (tipis)
4	Underline
5	Efek kedap-kedip (Flip-Flop)
6	Hasilnya sama seperti 2 dan 3
7	Warna dijadikan Background teks (warna teks hitam)
8-29	UNKNOWN
30	Hitam (tipis/gelap)
31	Merah (tipis/gelap)
32	Hijau (tipis/gelap)
33	Kuning (tipis/gelap)
34	Biru (tipis/gelap)
35	Ungu (tipis/gelap)
36	Biru muda/Aqua/cyan (tipis/gelap)
37	Putih (tipis/gelap)
38	Merah (tipis/gelap)
39	UNKNOWN
40-48	Urutan warna sama dengan 30-38, tetapi warna dijadikan
        background teks (yang tidak mengandung teks tidak di blok).
49-89	UNKNOWN
90-97	Urutan warna sama dengan 30-37 (tipis/terang)
100-107	Urutan warna sama dengan 30-37, warna dijadikan background
        line (yang tidak ada teksnya tetap diberikan background)terang.
108-~	still UNKNOWN

Atau silahkan jalankan shell script berikut untuk mengecek sendiri:

x=0
while [ $x -lt 110 ]
do
        echo -e "\e[0$x;1m unyil $x \e[0m"
        x=$(($x + 1))
done
Warna no 30 - 38

Warna no 30 - 38

Hal yang penting untuk diperhatikan disini yaitu: Setiap kali menggunakan suatu efek (flip-flop, underline dan background), maka efek tersebut akan tetap selalu digunakan walaupun dilakukan perubahan warna secara berulang-ulang. Untuk menanggulangi masalah ini, maka kita perlu me-reset kembali ke setingan standar yakni dengan menggunakan control escape charakter berikut:

\e[0m

Pada umumnya, kebanykan para programmer shell menggunakan format pewarnaan sebagai berikut:

\e[(warna);(efek)m

atau sebaliknya. Dan sering juga ditulis menjadi:

\o33[(warna);(efek)m     (kt: Slash Nol, Bukan slash o)

Terserah mau menggunakan yang mana. Semuanya bisa. Perubahan warna ini dapat temen2 tambahkan pada environment prompt shell pada PS1 (Prompt Shell, bukan Play Station). Akan tetapi jangan lupa untuk selalu menyertakan control escape character untuk me-reset ( \e[0m ) setelah menggunakan suatu efek. Perlu diingat!!! Selalu sertakan backslash karakter \[ setiap sebelum memulai penggunaan ASCII escape character ( \e atau \o33) dan akhiri dengan \] untuk menanam control pewarnaan dan efek tersebut pada prompt.

Contohnya jika disertakan pada environment PS1:

[~]# export PS1=”\[\e[32;5m\]\w >”
~ >cd ../Media/
/home/Media >

Contoh pada contoh ini, tidak ada control untuk mereset efek, jadi perintah-perintah yang diketikkan di prompt shell akan ikut ber kedap-kedip.

/home/Media >export PS1=”\[\e[94;5m\]\w \[\e[0m\]\[\e[31;1m\]> ”
/home/Media > echo “Perintah berwarna merah”
Perintah berwarna merah
/home/Media > ls

Warna biru terang untuk direktory aktif, dan merah untuk setelah tanda > termasuk perintah2 yang diketikkan serta hasil ekseksinya (jika jika hasil yangsung di prompt).

Nah, sekian dulu pembahasan mengenai Prompt shell Linux ini. Sebelumnya jangan lupa backup file konfigurasi sebelumnya jika ingin ditempatkan pada file konfigurasi seperti /etc/profile agar aman.