obarvení_konzole

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
obarvení_konzole [2012/12/20 22:37] – Aktualizace informací pro verzi 12.04 w.smithobarvení_konzole [2019/02/25 18:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +====== Obarvení konzole ======
  
 +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 konzoli v elegantní start systému a krásný barevný textový režim.
 +
 +====== Vypnutí usplash ======
 +{{.: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í [[GRUB|GRUBu]] příkazem:
 +<code>
 +sudo cp /etc/default/grub /etc/default/grub_zaloha
 +</code>
 +Otevřete toto nastavení Vámi oblíbeným editorem s právy roota
 +<code>
 +sudo vim /etc/default/grub
 +</code>
 +Najděte řádek s:
 +<code>
 +GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
 +</code>
 +A upravte ho na toto:
 +
 +<code>
 +GRUB_CMDLINE_LINUX_DEFAULT=""
 +</code>Doporučení: nastavte si také [[vyšší rozlišení|Vyšší rozlišení na konzoli]].
 +
 +Pokud chcete vyvolat GRUB menu při startu, tak zakomentujte řádek na: 
 +<code>
 +#GRUB_HIDDEN_TIMEOUT=0
 +</code>
 +
 +Jestliže si ale rádi spuštíte GUI sami, tak místo prázdného řetezce vložte
 +<code>
 +GRUB_CMDLINE_LINUX_DEFAULT="text"
 +</code>
 +
 +Změny utvrdíte aktualizací grubu:
 +<code>
 +sudo update-grub
 +</code>
 +Nyní jste deaktivovali usplash.
 +
 +====== Obarvení textových výpisů (modrá/zelená/červená) ======
 +{{.: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í:
 +<code>
 +sudo cp /etc/lsb-base-logging.sh /etc/lsb-base-logging.sh_zaloha
 +</code>
 +Poté si stáhněte z Ubuntuforums.org soubor. [[http://www.ubuntuforums.org/attachment.php?attachmentid=10932&stc=1&d=1149829830|lsb-base-logging.sh]]
 +
 +Rozbalte a nahraďte stávající:
 +
 +<code>
 +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
 +</code>
 +====== Obarvení Promptu ( skeletonix@Kosmik-1:~$ ) ======
 +Opět nejprve zazálohujte nastavení:
 +<code>
 +cp ~/.bashrc ~/.bashrc_zaloha
 +</code>A editujte nastavení:
 +<code>
 +gedit ~/.bashrc
 +</code>Najděte tuta čast:
 +<code>
 +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
 +</code>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
 +
 +<code>
 +# 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
 +</code>
 +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:
 +
 +<code>
 +PS1="[ ${debian_chroot:+($debian_chroot)}\u: \w ]\\$ "
 +PS2="> "
 +</code>
 +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:
 +
 +<code>
 +\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.
 +</code>
 +uplné info dostanete příkazem
 +
 +<code>
 +man bash
 +</code>
 +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í:
 +
 +
 +<code>
 +PS1="$HC$FYEL[ $FBLE${debian_chroot:+($debian_chroot)}\u$FYEL: $FBLE\w $FYEL]\\$ $RS"
 +PS2="$HC$FYEL> $RS"
 +</code>
 +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)
 +
 +A nebo poněkud tradičnější řešení uspořádání obarveného promptu nabízí script:
 +<code>
 +PS1="$HC$FYEL$FBLE${debian_chroot:+($debian_chroot)}\u$FRED@$FYEL\h$FRED:$FBLE\w $FYEL\\$ $RS"
 +PS2="$HC$FYEL> $RS"
 +</code> 
 +
 +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 ======
 +
 +{{.:clear.png}} Spusťte tyto příkazy, které obnoví zálohy:
 +<code>
 +sudo cp /etc/default/grub_zaloha /etc/default/grub
 +sudo cp /etc/lsb-base-logging.sh_zaloha /etc/lsb-base-logging.sh
 +cp ~/.bashrc_zaloha ~/.bashrc
 +</code>
 +
 +====== Odkazy ======
 +  * původní návod na českém Ubuntu fóru: [[http://forum.ubuntu.cz/index.php/topic,1936.0.html]]
 +  * původní návod na ubuntuforums.org: [[http://ubuntuforums.org/showthread.php?t=192675]]
 +
 +
 +{{page>úpravy/grafika}}