abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    18.7. 14:22 | Nová verze

    HollowByte je zranitelnost typu Denial of Service (DoS) v kryptografické knihovně OpenSSL. Útočník může odesíláním škodlivého payloadu o velikosti pouhých 11 bajtů zaplnit paměť serveru. OpenSSL před ověřením dat vyhradí nepřiměřený blok paměti (až 131 KB). Server pak čeká na data, která nepřišla. Zranitelnost je opravena ve verzích OpenSSL 4.0.1, 3.6.3, 3.5.7, 3.4.6 a 3.0.21.

    Ladislav Hagara | Komentářů: 0
    18.7. 13:44 | Komunita

    Ve španělské A Coruñě probíhá GUADEC 2026, tj. letošní konference vývojářů a uživatelů desktopového prostředí GNOME. Videozáznamy přednášek jsou k dispozici na YouTube.

    Ladislav Hagara | Komentářů: 0
    18.7. 13:22 | Komunita

    Společnost Collabora ve spolupráci s Valve vyvíjí Holo Core, tj. port Arch Linuxu pro ARM64 procesory (AArch64), který bude pohánět VR headset Steam Frame. Pro testování Arch Linuxu pro AArch64 jsou k dispozici binární balíčky, zdrojové kódy i kontejner pro Docker nebo Podman.

    Ladislav Hagara | Komentářů: 1
    18.7. 13:00 | IT novinky

    Mikroprocesor Zilog Z80 byl oficiálně uveden na trh před 50 lety, tj. v červenci 1976. Výroba mikroprocesoru skončila v roce 2024.

    Ladislav Hagara | Komentářů: 0
    18.7. 02:55 | Bezpečnostní upozornění

    Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.

    Ladislav Hagara | Komentářů: 3
    17.7. 16:55 | Zajímavý software

    pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.

    Ladislav Hagara | Komentářů: 0
    17.7. 16:00 | IT novinky

    Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.

    … více »
    Ladislav Hagara | Komentářů: 0
    17.7. 04:55 | Komunita

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)

    Ladislav Hagara | Komentářů: 7
    17.7. 00:22 | Zajímavý software

    Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 3
    16.7. 19:55 | Nová verze

    Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2178 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Barevný a formátovaný text v terminálu

    4. 3. 2010 | David Watzke | Návody | 17708×

    V tomto článku se dozvíte, jak ovlivnit zobrazení výstupu programu na terminálu. Článek rozebírá především barvy a základní formátování.

    Obsah

    Většina un*xových emulátorů terminálu podporuje řídící (escape) sekvence ANSI, které slouží (mimo jiné) k formátování výstupu na textových terminálech.

    Nejdříve si povíme něco k teorii a pak si ukážeme ukázky kódu v různých programovacích jazycích. Tato záležitost není multiplatformní a na Windows je třeba postupovat trochu jinak než na Linuxu a jiných unixových systémech. Ne každý emulátor terminálu má implementovánu podporu všech standardizovaných vlastností a aby toho nebylo málo, některé vlastnosti dokonce v různých terminálech dělají různé věci. To vám doufám postačí jako pádný důvod k tomu, abyste v případě, že použijete formátování ve svém programu, nezapomněli i na možnost formátování úplně vypnout.

    Snad jsem vás ještě neodradil. V praxi to není až tak hrozné. Většinou budete chtít zřejmě používat jen základní možnosti formátování textu a s těmi není žádný problém na hojně používaných emulátorech terminálu.

    Takže jak na to? Escapovací sekvence se tomu neříká jen tak pro nic za nic, escape je totiž znak, který tyto řídící sekvence zahajuje. Tedy ještě spolu se znakem „[“, který jej musí následovat. Této sekvenci znaků se říká zkratkou CSI, a to znamená Control Sequence Introducer/Initiator – česky iniciátor řídící sekvence. Za touto sekvencí následuje samotný příkaz. My se v tomto článku budeme zabývat pouze příkazem ovlivňujícím zobrazení textu na terminálu. Jeho předpis vypadá takto:

    CSI a [;b] m
    

    Mezery jsou v předpisu pouze pro přehlednost a hranatá závorka značí volitelnost. A co to znamená? CSI je zmiňovaná zahajovací sekvence, tedy ESC+[. Písmena „a“ a „b“ jsou parametry, které nahradíme za čísla. Za jaká? To záleží na tom, co od příkazu očekáváte. Možnosti jsou vypsané v tabulce níže. Za parametry je třeba dát písmeno „m“ tak, jak je.

    A teď když konečně prozradím, jak napsat znak escape, tak si to budeme moci předvést. Máte tři možnosti, jak napsat escape, buď \033 (umístění znaku escape v ASCII tabulce zapsáno v osmičkové soustavě je 33), \x1b (umístění znaku v ASCII tabulce zapsáno v šestnáctkové soustavě je 1B) nebo \e (styl jazyka C), což je nestandardní (a někde nepodporovaný), ale poměrně rozšířený zápis (dostupný nejen v C).

    \033[31mAhoj barevný světe!\033[0m
         ^^                         ^- vypne formátování
          `- zahájí výpis v červené barvě
    

    Jak je vidět, v tomto případě používáme pouze parametr „a“ (z předpisu výše). Když použijeme zároveň i parametr „b“, můžeme nastavit dvě atributy najednou stylem „a;b“, takže to pak celé vypadá takto: \033[a;bm, přičemž za „a“ a „b“ dosadíme číselné hodnoty. Následuje výběr ze seznamu možných hodnot parametrů:

    • 0 – vypne všechny atributy
    • 1 – tučný text
    • 4 – jednoduché podtržení
    • 5 – blikající text
    • 7 – prohodí barvy popředí a pozadí
    • 39 – nastaví výchozí barvu popředí
    • 49 – nastaví výchozí barvu pozadí
    • 30 až 37, 90 až 99 – nastavuje barvu popředí (jako proměnná „a“)
    • 40 až 47, 100 až 109 – nastavuje barvu pozadí (jako proměnná „a“)

    U výše zmíněných rozsahů hodnot není jasné, která hodnota náleží které barvě. Proto následuje tabulka barev:

    číslo 0 1 2 3 4 5 6 7
    barva   černá  červená zelená  žlutá  modrá  purpurová tyrkysová  bílá 

    Přidám ještě několik ukázkových parametrů, abyste si mohli ověřit, že to celé chápete správně:

    • 101 je světle červené pozadí (10 = světlé pozadí, 1 = červená)
    • 34 je modré popředí (3 = popředí, 4 = modrá)
    • 93 je světle žlutá

    Ukázkové sekvence s oběma parametry:

    • \033[31;42m – červený text (31) na zeleném pozadí (42)
    • \033[42;31m – totéž
    • \x1b[32;1m – tučný (1) zelený text (32)
    • \x1b[34;4m – podtržený (4) modrý text (34)
    • \e[101;34m – světle červené pozadí (101), modrý text (34)
    • \e[44;1m – modré pozadí (44), tučný text (1)

    Poznámka: Nikdy nezapomínejte ukončovat formátování pomocí \033[0m.

    Nyní přejdeme k ukázkám z praxe.

    Bash

    link

    V Bashi lze barevný text vypisovat pomocí příkazu echo s přepínačem -e.

    echo -e "\033[31mAhoj barevný světe!\033[0m"
    
    for((i = 0; i <= 7; i++))
    do
    	echo -e "(3$i) \033[3${i}mBarevný text\033[0m a (4${i}) \033[4${i}mbarevné pozadí…\033[0m"
    done
    

    barvy konsole barvy xterm

    Python

    link

    V Pythonu můžete použít funkci print().

    print("\033[32mZelený text\033[0m")
    
    YELLOW = '\033[93m'
    END = '\033[0m'
    
    print(YELLOW + "Žlutý text!" + END)
    

    Perl

    link

    V Perlu lze také použít funkci print().

    my @colors = ("cerna", "cervena", "zelena", "zluta",
    	      "modra", "purpurova", "tyrkysova", "bila");
    
    do {
    	my $number = 37 – $#colors;
    	my $color = shift @colors;
    	print "\033[${number}m${color}, \033[1mtucna ${color}\033[0m\n";
    } while (@colors);
    

    PuTTY na Symbianu je ukázkou toho, že ne všude všechny atributy fungují. (Tučný text se zobrazí jako normální.)

    barvy putty symbian

    C/C++

    link

    Lze použít funkce printf() z C nebo std::cout z C++.

    /* C nebo C++ */
    #include <stdio.h>
    void vypis_tucne(const char* text)
    {
    	printf("\x1b[1m%s\x1b[0m\n", text);
    }
    
    /* C++ */
    #include <iostream>
    void vypis_tucne_cpp(std::string text)
    {
    	std::cout << "\e[1m" << text << "\e[0m\n";
    }
    
           

    Hodnocení: 85 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    4.3.2010 07:52 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V Konsoli je 8 - rudá, která je na černé lépe vidět. Škoda že není i v xterm.
    4.3.2010 08:06 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V jake konkretne?

    Svetla/Bold cervena "\033[1;31m" je IMHO videt vsude dobre.

    http://www.abclinuxu.cz/blog/idea/2008/7/ansi-ridici-sekvence
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    4.3.2010 08:32 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V KDE Konsoli. Tučná je samozřejmě vidět lépe, ale já mluvil o standardní červené.
    4.3.2010 08:37 xurfa
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    KDE? tu sračku ještě někdo používá?
    4.3.2010 08:51 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Samozřejmě (nemluvím samozřejmě o experimentální 4ce ale o poslední stabilní verzi). Kwin dohromady s Kickerem je minimálně stejně dobrý než řada jiných DE/WM.
    4.3.2010 10:21 Zopper | skóre: 15
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    KDE 4 mi jako experimentální už nepřijde. S 4.4 jsem se k němu zase vrátil, ač jsem s příchodem 4.0 odešel ke Gnome.
    "Dlouho ještě chcete soudit proti právu, stranit svévolníkům?" Ž 82,2
    4.3.2010 12:56 Xjmeno363
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    nápodobně!

    Jinak nechápu proč se někdo snaží konzoli obarvit a vylepšit -> čeho chcete dosáhnout, chcete z toho udělat GUI v GUI?
    4.3.2010 13:31 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pretože to niekomu tak môže vyhovovať? Skús napr. kontrolovať diff (alebo skôr veľa diff-ov) a uvidíš, k čomu sú farby dobré (a určite veľa ľudí má pre farby aj iné použitie a to, že ich ty nepotrebuješ, im je úplne jedno).
    5.3.2010 10:49 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Proč si myslíte že právě a jen GUI by mělo být barevné? Vždyť je to proti přírodě. I text a písmenka mají právo být barevné, nejen vobrázky a vomalovánky! Nejste vy nakonec rasista? :D
    pavlix avatar 5.3.2010 12:29 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Tahle možnost je tu pro lidi, kteří chápou :).

    Ne pro ty, co považují konzoli/terminál za sprosté slovo.

    A ani proty, co považují černobílou konzoli za výraz nadřazenosti nad uživateli barevného gui.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Roman Horník avatar 10.3.2010 06:59 Roman Horník | skóre: 8 | Seč
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Že by např. kvůli přehlednosti?

    Mimochodem- nejseš ty náhodou *bunťák?
    I'm only wearing black until they make something darker | Debian-Linux.cz | Debian fórum
    4.3.2010 10:26 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Jaka verze KDE?
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    5.3.2010 10:47 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Funguje to v 3.5.10, asi i starších, a předpokládám že i v KDE4, ale zkoušet se mi to nechce.
    5.3.2010 11:53 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V KDE4 to prave nefunguje, proto jsem se ptal :)
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    9.3.2010 07:27 miREC
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    V kde 4.3.2 to funguje no problem
    9.3.2010 08:19 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Příloha:
    Asi jsem neco nepochopil.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    Marián Kyral avatar 9.3.2010 09:59 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Příloha:
    Teď jsem to zkoušel v 4.4.1 a funguje. Bohužel poslední KDE 4.3.5 jsem upgradoval o víkendu, takže to už nevyzkouším. Možná to bude nějaká regrese. V 4.3.4 a 4.3.5 jich bylo několik. A i díky tomu jsem upgradoval.
    9.3.2010 12:41 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Eh? Ale vzdyt ti to dela uplne to same. 8 proste neni barva, takze to udela bilou.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    Marián Kyral avatar 9.3.2010 12:53 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Aha, já se v tom ztratil. Stačilo mi, že to byla jiná bílá ;-)
    4.3.2010 08:19 Radek
    Rozbalit Rozbalit vše Nedělejte to
    Ty jo, to je ale retro. Jistě zajímavá perlička, ale prosím prosím, opravdu to takhle nikdy v programech nedělejte. Vyrobíte úplně nepřenositelný program plný divokých nečitelných sekvencí. To si chytří lidé uvědomili už před více než 30 lety, když vytvořili věci jako termcap, terminfo a postupně řadu knihoven nad tím. Takže pokud chcete objevovat dávnou slávu textových terminálů zejména na Unixu, začal bych někde tam. Můžete třeba zkusit zadat na svém Linuxu echo $TERM a zamyslet se, co to asi znamená :-)
    4.3.2010 08:21 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Nedělejte to
    Jistě zajímavá perlička, ale prosím prosím, opravdu to takhle nikdy v programech nedělejte.
    Uzasny nazor. Protoze to nekde nefunguje, tak to nebudu vubec pouzivat :-)
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    4.3.2010 09:19 flaxa
    Rozbalit Rozbalit vše Re: Nedělejte to
    ja jsem autora prispevku pochopil jinak. Dokonce bych rekl, ze autor je takovy don Quijote v oblasti vypocetni techniky jehoz vetrne mlyny jsou nestrukturovane programy vytvorene dnes generaci Excel-Word.

    Dokonce jsem presvedcen, ze v jeho programech jsou nejen ty terminfo/termcap sequence , nybrz , ze je ma schovane ve funkcich, ktere nenesou nazev 'udelej_cervene' ale 'zvyrazni_stupen_1'.
    4.3.2010 12:01 Jindřich Makovička | skóre: 17
    Rozbalit Rozbalit vše Re: Nedělejte to
    Používat funkce za tímhle účelem jsem v shellu neviděl nikdy, ale běžně se ANSI sekvence na začátku naládují do vhodně pojmenovaných proměnných ($BLUE, $BOLD $UL, $ERROR, atd.). Což je vhodné i v případě, že pohrdnete tput a napíšete tam ty sekvence natvrdo.
    4.3.2010 13:00 Ivan
    Rozbalit Rozbalit vše Re: Nedělejte to
    Kline to pouzivejte, ale pouzivejte to to "spravnym" zpusobem. To vam treba neni divne, ze vystup z prikazu ls je barevny, ale pokud ho presmerujete do less-u, tak barvicky zmizi? Jakto, ze less nezobrazi ani barvicky ani escape sekvence?
    4.3.2010 13:32 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Nedělejte to
    V niekoľkých mojich skriptoch používam na ofarbovanie escape sekvencie a pri presmerovaní do súboru sa nepoužijú (pretože nie je problém urobiť funkciu, prípadne nastaviť premenné podľa toho, či je výstup niekam presmerovaný).
    4.3.2010 13:37 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Nedělejte to
    LOL, tak to je snad jasne, ze nebudu tlacit escape sekvence jinam nez na terminal.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    Fill avatar 4.3.2010 14:32 Fill | skóre: 19 | blog: Fill | Třebíč
    Rozbalit Rozbalit vše Re: Nedělejte to
    less se dá donutit, aby barvičky zachoval: less -R
    pavlix avatar 5.3.2010 12:31 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Nedělejte to
    Pak musíš ještě vstupní aplikaci donutit, aby barvičky používala (ls --color).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    4.3.2010 13:02 zulu
    Rozbalit Rozbalit vše Re: Nedělejte to
    Uzasna neschopnost pochopit psane slovo. Upozornil bych predevsim na _takhle_. Ale samozrejme si klidne natvrdo dratuj sekvence do kodu, uz jsme neco z tve produkce videli, takze nas dalsi cunarna neprekvapi.
    4.3.2010 13:45 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: Nedělejte to
    Jenomze _TAKHLE_ se to dela z urciteho duvodu a to prave proto aby clovek nemusel pouzivat sadu knihoven.
    Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
    4.3.2010 08:49 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Nedělejte to
    Ano, sekvene jako \E[0;1;4;5;7;8m^N by používal jen blázen, když tu jsou nové a lepší terminfo \E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,. Jen žertuji :)

    Nevím ale když je v shellu něco jako "Ahoj ${cred}lidi${cnorm}" tak mi to až tak "plné divokých nečitelných sekvencí" nepřipadá.
    4.3.2010 09:03 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Nedělejte to
    Souhlasim, taky jsem si rikal, kdyz jsem to cetl. Ovsem nikdy jsem to nedotahl do praxe, tj.jak neco podobneho napsat prenositelne -- krom toho, ze by se podle schopnosti terminalu (ktere mi poskytne terminfo) pak kod kosate vetvil s ruznymi excape sekvencemi.

    Predstavoval bychsi neco jako termcap_set_attr(TERMCAP_RED | TERMCAP_BOLD); /*...*/ termcap_set_attr(TERMCAP_PLAIN);. Existuje to?
    4.3.2010 13:20 zulu
    Rozbalit Rozbalit vše Re: Nedělejte to
    To sam termcap neumi, ale nad nim jsou treba curses (taky nekdy na pos.ani), kde na to mas has_colors(); init_pair(num, fg, bg); attron(COLOR_PAIR(num));
    4.3.2010 13:35 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Nedělejte to
    Knižnica curses je dostupná úplne všade?
    Josef Kufner avatar 4.3.2010 18:47 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Nedělejte to
    Ne, na mikrovlnce ji bohužel nemám... není totiž kompatibilní s otočným knoflíkem.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 4.3.2010 09:13 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Nedělejte to
    Jojo, sice to celkem funguje, ale kdo ví na jakých terminálech to poběží a zda ten terminál vůbec bude umět barvičky. Chtělo by to ještě druhý díl o tom, jak to dělat správně (ncurses, tput, terminfo,…).
    Hello world ! Segmentation fault (core dumped)
    4.3.2010 08:28 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Chjo nejak mi to nejde...

    Chtěl bych toto echo -e '\033[32;40m' ale tučným písmem...
    Jsem mimořádně obtížný případ
    4.3.2010 08:35 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Tučná není vždy tučná, často je "jen" světlá. Prostě zvýraznění (něco jako v html emphasis).
    David Watzke avatar 4.3.2010 18:53 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Tohle je ono?
    echo -e '\033[32;40m\033[1mXXX\033[0m'
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    4.3.2010 08:30 pet
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Více v "man console_codes".

    Zde popsané je v části "ECMA-48 Set Graphics Rendition", jinak je tam spousta jiných zajímavých a užitečných sekvencí.
    Věroš avatar 4.3.2010 13:19 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    ... což je ovšem pouze návod k Linuxové konzoli a nikoliv k obecnému terminálu.

    Že se ty sekvence mezi nějakými terminály náhodou shodují, to je věc jiná.

    PS: Včera jsem uklízel a našel jsem fotku sériového terminálu z 80 let. Tam červená fakt nefungovala a dělala nepořádek. Byl totiž černobílý....
    Školím Ansible
    4.3.2010 11:06 Karel Zak
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pouzivat primo Esc sekvence neni moc chytre a psat je primo do C (apod.) programu je pak vylozeni blbe.
      man tput
      man terminfo
    
    napriklad:
       echo "$(tput setaf 1) Red Text $(tput sgr0)"
    
    Jinak barev muze byt daleko vice, napriklad xterm nema problem s 256 barvama,
       export TERM=xterm-256color
    
    nebo
      xterm -tn xterm-256color
    
    vlastikroot avatar 4.3.2010 17:57 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Jak to udělat přes telnet? Rád bych to pokud možno zakomponoval do toho mýho chat serveru.
    We will destroys the Christian's legion ... and the cross, will be inverted
    4.3.2010 11:08 TM
    Rozbalit Rozbalit vše praxe
    Autore, zkuste si třeba v Konsoli, xtermu apod...:
    tput setb 1;tput setf 7;tput cup 10 10 ...
    Uvidíte, že je zbytečné se trápit s Escape sekvencemi a ještě se starat, zda terminál danou možnost podporuje. Databáze Terminfa a příslušná knihovna to udělá za vás ;-)
    vogo avatar 4.3.2010 11:15 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Nevím proč se všichni rozčilují, že umisťování sekvencí přímo do kódu je hnus, proč to má tedy třeba ls z coreutils také sekvence natvrdo v kódu? Mimochodem pacman-color je také vystavěn nad těmito barevnými sekvencemi. Jinak neuškodí detekce, zda stream, do kterého se zapisuje sekvence je opravu terminál... jinak potom přesměrování výstupu dopadá špatně...
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    4.3.2010 11:33 TM
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Protože na daném terminálu nemusí naše sekvence dělat přesně to co jsme zamýšleli, zatímco u nás doma to bylo OK. A také proto, že bychom měli používat nástroje, které nám systém nabízí a ne je obcházet. To že jsou k dispozici má svůj důvod.
    Vůbec se nerozčiluji a autor doufám taky ne. Prostě se mu snažím předat svoji zkušenost.
    David Watzke avatar 4.3.2010 11:38 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Vůbec se nerozčiluji a autor doufám taky ne. Prostě se mu snažím předat svoji zkušenost.
    Tak to má bejt; diskuse má být o tom, co jsem zapomněl, atp. Pak je užitečná.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    4.3.2010 11:53 JS
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Je nekde nejaky standardni referencni popis vsech tech escape sekvenci? Neco jako RFC treba.
    David Watzke avatar 4.3.2010 12:24 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Na wiki je stránka ANSI escape code. Jinak hledej standard ISO/IEC 6429 (link ukazuje na preview).
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    7.3.2010 08:28 ivan
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    www.vt100.net
    4.3.2010 13:24 maertien(neprihlasen)
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    pekny clanek, thx
    Marián Kyral avatar 4.3.2010 22:25 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Ono když se jednotlivé barvy nadefinují jako proměnné, tak se s tím hned pracuje mnohem lépe.

    Barevný prompt:
    
    
    $ cat bin/prompt 
    #!/bin/bash                                        
    
    ##########
    # prompt #
    ##########
    # prompt is a template-like program designed to simplify the process of colourizing one's prompt.
    # By analyzing the variables, it is easy to identify what ANSI colour sequences match up with which colour.
    # Thus, modifying one's bash prompt is a simple matter of going through the variables and inserting the colour of choice.
    #                                                                                                                        
    # When the script is modified to your liking, you should place it a useful place (like ~/bin/).                          
    # Then replace PS1="..." in your bootup file (~/.bashrc or ~/.bash_profile) with PS1=`~/bin/prompt` (those are backticks!)
    #                                                                                                                         
    # Only known to work as expected with bash                                                                                
    #                                                                                                                         
    # No licensing or copyright is placed on this script. Do with it as you wish.                                             
    
    ################################################
    # THERE SHOULD BE NO NEED TO EDIT THIS SECTION #
    ################################################
    
    #$normal will reset the colour to the default, use it to stop using a certain colour (see "prompt parts")
    normal="\[\e[0m\]"                                                                                       
    
    # # # # # # #
    #BACKGROUNDS
    # # # # # # #
    blackbg=";40m\]"
    redbg=";41m\]"
    greenbg=";42m\]"
    brownbg=";43m\]"
    bluebg=";44m\]"
    purplebg=";45m\]"
    cyanbg=";46m\]"
    greybg=";47m\]"
    
    ############################################################################################
    # THERE SHOULD BE NO NEED TO EDIT THIS SECTION (UNLESS YOU DO NOT WANT A BLACK BACKGROUND) #
    ############################################################################################
    # # # # # # #
    #FOREGROUNDS
    # # # # # # #
    black="\[\e[0;30$blackbg"
    redfaint="\[\e[0;31$blackbg"
    greenfaint="\[\e[0;32$blackbg"
    brownfaint="\[\e[0;33$blackbg"
    bluefaint="\[\e[0;34$blackbg"
    purplefaint="\[\e[0;35$blackbg"
    cyanfaint="\[\e[0;36$blackbg"
    greyfaint="\[\e[0;37$blackbg"
    
    grey="\[\e[1;30$blackbg"
    red="\[\e[1;31$blackbg"
    green="\[\e[1;32$blackbg"
    yellow="\[\e[1;33$blackbg"
    blue="\[\e[1;34$blackbg"
    pink="\[\e[1;35$blackbg"
    cyan="\[\e[1;36$blackbg"
    white="\[\e[1;37$blackbg"
    
    ##################################
    # EDIT THIS STUFF TO YOUR LIKING #
    ##################################
    # # # # # # #
    #PROMPT PARTS
    # # # # # # #
    prompt_opening_brace="$yellow[$normal"
    prompt_closing_brace="$yellow]$normal"
    
    prompt_date="\d"
    prompt_hostname_short="$blue\h$normal"
    prompt_hostname_long="\H"
    prompt_jobs="\j"
    prompt_terminal="\l"
    prompt_shellname="\s"
    prompt_time_24="\t"
    prompt_time_12="\T"
    prompt_time_12_am_pm="\@"
    prompt_username="$green\u$normal"
    prompt_version="\v"
    prompt_version_patchlevel="\V"
    prompt_pwd_long="\w"
    prompt_pwd_short="$red\W$normal"
    prompt_history_number="\!"
    prompt_session_number="\#"
    prompt_usertype_sign="\\$"
    prompt_git_branch="$white\$(__git_ps1)$normal"
    
    # # # # # # # #
    #FINAL PROMPT
    # # # # # # # #
    echo -n "$prompt_opening_brace$prompt_time_24 $prompt_username@$prompt_hostname_short $prompt_pwd_short$prompt_git_branch$prompt_closing_brace$prompt_usertype_sign "
    
    Amarok avatar 9.3.2010 18:31 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Co kdyz nechci pozadi cerne (blackbg), ale pruhledne? Kdyz timhle skriptem nastavim prompt, tak ho mam na cernem pozadi, coz vypada spatne, jelikoz vsechen vystup mam jinak pruhledny (na pozadi urxvt terminalu mam grafiku).
    GNUniverse - May the source be with you...
    Marián Kyral avatar 9.3.2010 20:34 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Zkus si tam přidat tento řádek a následně změnit $blackbg za $transparentbg
    transparentbg="m\]"
    Amarok avatar 17.3.2010 19:12 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Jde to, dik.
    GNUniverse - May the source be with you...
    Amarok avatar 5.3.2010 18:12 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pekny strucny prehled/uvod. Nebylo by ale od veci zminit, ze je mozno v nekterych terminalech pouzivat i 256 barev + nejake priklady.
    GNUniverse - May the source be with you...
    Gilhad avatar 6.3.2010 01:14 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Máte dvě možnosti, jak napsat escape, buď \033 (umístění znaku escape v ASCII tabulce zapsáno v osmičkové soustavě je 33), \x1b (umístění znaku v ASCII tabulce zapsáno v šestnáctkové soustavě je 1B) nebo \e .....

    Máme dvě možnosti: a, b nebo c ... :)
    David Watzke avatar 6.3.2010 15:03 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    :-) to je tak, když něco měním po napsání
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    6.3.2010 18:18 aceman | skóre: 27
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Pokial viem tak minimalne v bashi sa toto formatovanie da zadavat v tvare ESC[ [i];a[;b]m , kde A (30-37) a B (40-47) su farby popredia a pozadia tak ako popisuje clanok. Intenzita farby I (0-8) sa zapisuje ako prvy nepovinny parameter. Clanok ale uvadza, ze hodnoty 0-8 by mohli byt zapisane do parametra A. Resp. ak sa do A zapise intenzita a potom do B farba popredia, clanok nespomina moznost tretieho parametra kam sa zada farba pozadia. Ako to teda je?
    David Watzke avatar 9.3.2010 15:35 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Když chceš tři věci najednou, musíš to udělat takhle:
    \e[A;Bm\e[Cm   tradáá   \e[0m
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    9.3.2010 20:34 aceman | skóre: 27
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Vsimnite si, ze aj predchadzajuci prispevok s vypisom kodu skriptu prompt jma definicie v tvare \e[A;B;Cm , kde A a B su povinne, C nepovinne. A = intenzita, B=popredie, C=pozadie. A ide o bash. Zeby to teda bolo v roznych programoch rozdielne?
    David Watzke avatar 9.3.2010 21:15 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    Hm, to nevím, ale funguje mi to. O tom jsem ani nevěděl, abych pravdu řek. Ono to ale není že A, B, C má nějaký pořadí, můžeš to tam nacpat jak chceš.
    # 3x to samý
    \e[1;33;43m
    \x1b[33;1;43m
    \033[43;1;33m
    Evidentně tam lze zadat libovolný množství parametrů.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    15.3.2010 20:40 aceman | skóre: 27
    Rozbalit Rozbalit vše Re: Barevný a formátovaný text v terminálu
    To by davalo zmysel. Mozno preto su jednotlive hodnoty z roznych intervalov a potom su jednoznacne bez ohladu na poradie.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.