„Chodź pomaluj mój świat” – kolorujemy konsolę Linux

Wpis zamieszczony o 21:33:37, 03 lutego 2007 Trackback


W poprzednim wpisie przedstawiłem Wam garstkę narzędzi, które ułatwiają mi życie w czasie codziennej administracji systemu. Pominąłem świadomie jedną z ciekawszych (i praktyczniejszych) funkcji powłoki Bash – kolorowania wyjścia. Dziś zajmiemy się tym zagadnieniem. Postaram się krótko przybliżyć Wam sposoby kolorowania, metody kolorowania oraz ciekawostki związane z tym zagadnieniem. I jak zawsze – nie wyczerpię tematu – zmuszając Was do samodzielnego zainteresowania się tematem. No to hop! Zaznaczam, że przyda się Wam znajomość podstaw Bash’a – składnia poleceń, zmienne systemowe itp.



1. Pierwsze kroczki


Weźmy „na tapetę” najprostsze sprawy. Wpiszmy w konsolę taki oto ciąg znaków:
echo -e "\033[1;32mHello World"
Witaj świecie! :) Oto uzyskaliśmy pierwszy, kolorowy tekst w konsoli! Pobawmy się zatem – pozmieniajcie eksperymentalnie wartości liczbowe występujące w tym przykładzie. Nie bójcie się!

2. Chodzik? Nie dla mnie…


Po pierwszych krokach przejdźmy do ciekawszych spraw. Wpiszmy zatem do konsoli taki ciąg:

clear && echo -e "\032 \033[1;31m Ubuntu Linux\033[1;37m \032 \nJestes teraz w katalogu $PWD \nGdzie chcesz dzis pojsc?"

Był to pierwszy przykład wykorzystania koloru dla upiększenia naszej powłoki w sposób widoczny. Możemy dzięki temu we własnych skryptach zamieszczać komentarze opatrzone szarą czcionką, możemy kolorować błędy naszych programów. Pora przybliżyć składnię służącą do kolorowania:
\033[1;32m
Wystarczy ten ciąg znaków wstawić przed dowolny tekst a ulegnie on mocy koloru :). Nie będę przepisywać dostępnych w internecie tabel kolorów – podam zwyczajnie linka
Polecam eksperymenty w dziedzinie kolorów i opanowanie „ulubionego zestawu”. Przyda się to w dalszej pracy.

 

3. Pierwsze schody


Umiemy już kolorować wyjście konsoli. Świetnie! Zróbmy z tego w takim razie użytek! Wpiszmy w konsolę:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\][\t] \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[00;29m\]\w\[\033[00m\]\$ '
Prawda że ładne? :-) Kolory możecie dowolnie zmieniać – przecież już to ćwiczyliście!
Aby utrwalić zmiany dla naszego promptu musimy je zapisać:
nano -w ~/.bashrc
Komentujemy:

# set a fancy prompt (non-color, unless we know we "want" color)
#case "$TERM" in
#xterm-color)
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00
m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#    ;;
#*)
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#    ;;
#esac


Dodajemy w wolnej linijce naszą deklarację (w jednej linii):

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\][\t] \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[00;29m\]\w\[\033[00m\]\$ '

Mamy zatem za sobą pierwszy krok i pierwsze schody. Umiemy operować kolorowaniem tekstu w powłoce bash, potrafimy już sami stworzyć kolorowego prompta i edytować go zgodnie z naszym zamiarem. Coś jeszcze?

4. Garść linków


http://bashish.sourceforge.net/ Bashish – wariacja na temat promptu. Ciekawe…
http://networking.ringofsaturn.com/Unix/Bash-prompts.php
http://www-128.ibm.com/developerworks/linux/library/l-tip-prompt/
http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
I setki innych po wpisaniu w google „bash color”.

5. Ciekawostki


sudo apt-get install colorgcc ccze colordiff colormake
Nie wymaga chyba komentarza. Zaznaczam tylko, że korzystając z colormake//colorgcc spotkałem się z problemami kompilacji narzędzi bazującymi na binutils.

Komentarze do “„Chodź pomaluj mój świat” – kolorujemy konsolę Linux”


  1. Fajna sprawa! ^-^


  2. Wpis był troszkę "wymuszony" - muszę to przyznać. Wiele osób oglądając moje screeny pisało "o ja jak Ty to zrobiłeś że masz kolory?!". Nie jestem zadowolony z jego obecnej formy - nie da się jednak tego napisać inaczej. :/ ZU musi rozumieć. Tak czy inaczej - wpis powstał :]


  3. Elegancki tryb konsolowy - jedyna rzecz jakiej mi jeszcze brakuje do ułatwienia sobie pracy zwłaszcza jeśli jestem zmuszony do walki z systemem np. w nocy.


  4. Extra! Jakoś mniej ponuro w terminalu ;)


  5. Fajny poradnik. Ja bym jednak chciał wiedzieć gdzie w systemie jest plik ze zdefiniowanymi kolorami dla tekstu w konsoli. Np mandriva ładnie koloruje składnie, ale już debian nie. Chciałbym normalnie kożystać z kolorów. nie podająć musząc ręcznie wywoływać dodatkowych skryptów.


  6. dzięki :)


  7. super.kolorowo, na suse też działa.

Dodaj komentarz

Textile jest włączony. Zobacz składnię (wiki.jogger.pl)

code