Ubuntu Česko Obarvení konzole

  • Edit
  • Diskuze
  • Info
  • Attachments

IconsPage/terminal.png Tento návod vyžaduje základní znalost práce v Terminálu.

Nebaví Vás už usplash či máte raději přehlednější start systému? Tento návod vám přetvoří nudný upslash a černobílou konsoli v elegantní start systému a krásný barevný textový režim.

Vypnutí usplash

IconsPage/info.png Usplash znamená takový ten "teploměr", který se zobrazuje při startu systému. Nyní ho vypnete, aby byl vidět textový režim, který potom budete dále zkrášlovat.

Vytvořte zálohu nastavení GRUBu příkazem:

sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_zaloha

Otevřete toto nastavení:

gksudo gedit /boot/grub/menu.lst

Najděte řádek s Vámi bootovaným kernelem ... Měl by vypadat nějak takto:

kernel        /boot/vmlinuz-2.6.15-23-386 root=/dev/sda2 ro quiet splash

A upravte ho na toto:

kernel        /boot/vmlinuz-2.6.15-23-386 root=/dev/sda2 ro quiet nosplash

Doporučení: nastavte si také Vyšší rozlišení na konzoli.

Nyní jste deaktivovali usplash.

Obarvení textových výpisů (modrá/zelená/červená)

IconsPage/art.png Místo uslash se teď tedy objevuje černobílý textový výpis startu systému. Nyní si ho můžete upravit.

Nejdřív zazálohujte nastavení:

sudo cp /etc/lsb-base-logging.sh /etc/lsb-base-logging.sh_zaloha

Poté si stáhněte z Ubuntuforums.org soubor. lsb-base-logging.sh

Rozbalte a nahraďte stávající:

sudo tar xvfj lsb-base-logging.sh.tar.bz2
sudo chown root:root lsb-base-logging.sh
sudo cp lsb-base-logging.sh /etc/lsb-base-logging.sh

Obarvení Promptu ( skeletonix@Kosmik-1:~$ )

Opět nejprve zazálohujte nastavení:

cp ~/.bashrc ~/.bashrc_zaloha

A editujte nastavení:

gedit ~/.bashrc

Najděte tuta čast:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Bash čte PS1 proměnou jako primární prompt, PS2 jako sekundarní prompt (používá se při psaní multi-line příkazů). Část mezi if a else se provádí, pokud je barevný prompt aktivován, část mezi else a fi pokud je barevný prompt neaktivní. Jak vidíte, barevný kód vypadá složitěji neboť je v něm něco jako \[\033[01;32m\]. Jedná se o ANSI kód barvy (konkrétně zelené). Naštěstí si můžeme definovat vlastní proměnné na barvy. Okopírujte kód níže a umístěte ho před if

# ANSI color codes
RS="\[\033[0m\]"    # reset
HC="\[\033[1m\]"    # hicolor
UL="\[\033[4m\]"    # underline
INV="\[\033[7m\]"   # inverse background and foreground
FBLK="\[\033[30m\]" # foreground black
FRED="\[\033[31m\]" # foreground red
FGRN="\[\033[32m\]" # foreground green
FYEL="\[\033[33m\]" # foreground yellow
FBLE="\[\033[34m\]" # foreground blue
FMAG="\[\033[35m\]" # foreground magenta
FCYN="\[\033[36m\]" # foreground cyan
FWHT="\[\033[37m\]" # foreground white
BBLK="\[\033[40m\]" # background black
BRED="\[\033[41m\]" # background red
BGRN="\[\033[42m\]" # background green
BYEL="\[\033[43m\]" # background yellow
BBLE="\[\033[44m\]" # background blue
BMAG="\[\033[45m\]" # background magenta
BCYN="\[\033[46m\]" # background cyan
BWHT="\[\033[47m\]" # background white

nyní nemusíme psát ANSI kódy barev, ale pouze proměné ($FGRN pro zelenou atd.).

Nastavení promptu, zatím bez barev

Tak jak jsem již psal, prompt nebarevný je mezi else a fi. Zakomentujte původní definici (před text dejte #) a napište:

PS1="[ ${debian_chroot:+($debian_chroot)}\u: \w ]\\$ "
PS2="> "

Sekundární prompt je jen znak >. Avšak primární je trošku složitější, obsahuje několik specialních znaků, které zastupují informace o aktualní relaci (jméno počítače, uživatele, ...). Hlavní pro jistotu uvedu:

\h
    Název počítače (od začátku k první tečce).
\H
    Celý název počítače.
\j
    Počet procesů na pozadí daného shellu.
\n
    Odřádkování.
\t
    Čas ve formátu HH:MM:SS.
\A
    Čas ve formátu HH:MM.
\u
    Uživatelské jméno.
\v a \V
    Verze Bashe (4.1 a 4.1.2).
\w
    Aktuální pracovní adresář. Název domovského adresáře (např. /home/dave) je zkrácen na tildu (~).
\W
    Vrchní adresář aktuálního pracovního adresáře (jste-li v /tmp/x/y, zobrazí y).
\$
    Je-li efektivní UID rovné 0, vloží znak „#“, jinak vloží znak „$“.
\\
    Zpětné lomítko. 

uplné info dostanete příkazem

man bash

jak tedy bude vypadat náš primární prompt? Nejspíš nějak takto [ zerog: ~ ]$ (v domovském adresáři) Nebádejte co znamená "${debian_chroot:+($debian_chroot)}" není to důležité, prostě to vložte vždy před "/u".

Nastavení promptu, konečně už barevného :)

První věc co musíte udělat, je najít řádek #force_color_prompt=yes a odkomentovat ho (smažte #). Nyní je preferovaná větev if - else. Opět zakomentujte původní řádek (před PS1 dejte znak #) a zkopírujte následující:

PS1="$HC$FYEL[ $FBLE${debian_chroot:+($debian_chroot)}\u$FYEL: $FBLE\w $FYEL]\\$ $RS"
PS2="$HC$FYEL> $RS"

Nyní bude prompt stejný jako předtím, ale krásně barevný. Použili jsme předdefinováné barvy, takže zápis není tak složitý. Primární prompt bude vypadat tedy takto : (žlutá)[(modrá) zerog(žlutá):(modrá) ~(žlutá) ]$(reset)

Pokud chcete vidět, jak se Váš barevný prompt rýsuje, prostě jen otevřete nový bash. Pokud chcete videt sekundární prompt, napište \ na konec řádku.

Navrácení změn do původního stavu

IconsPage/clear.png Spusťte tyto příkazy, které obnoví zálohy:

sudo cp /boot/grub/menu.lst_zaloha /boot/grub/menu.lst
sudo cp /etc/lsb-base-logging.sh_zaloha /etc/lsb-base-logging.sh
cp ~/.bashrc_zaloha ~/.bashrc

Odkazy

Aktualizace: Informace v tomto návodě jsou příliš zastaralé a potřebují aktualizaci pro současné poměry. Více...

Grafická úprava: Tento návod potřebuje důležité grafické a stylistické úpravy. Více...

ubuntu-cz: Obarvení konzole (last edited 2012-02-29 20:48:42 by VáclavBurda)