„Chodź pomaluj mój świat” – kolorujemy konsolę Linux
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.
Fajna sprawa! ^-^
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ł :]
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.
Extra! Jakoś mniej ponuro w terminalu ;)
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.
dzięki :)
super.kolorowo, na suse też działa.