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
obarvení_konzole [2013/06/17 13:02]
Jakub Vaněk
obarvení_konzole [2019/02/25 18:21] (aktuální)
Řá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}}