abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Navštivte Abc obchůdek se samolepkami a přívěsky!
Rozšířené hledání
×
včera 22:45 | IT novinky
NASA, která společně s Rackspace stála u zrodu projektu OpenStack, se již nadále nebude podílet na dalším vývoji této "infrastructure-as-a-service" platformy. V NASA totiž došli k závěru, že vzhledem k podpoře OpenStacku ze strany společností jako Red Hat, AT&T a HP lze jejich práci považovat za dokončenou. Posléze se NASA plánuje stáhnout i z vývoje další platformy pro cloud computing jménem Nebula.
Migilenik | Komentářů: 0
včera 22:45 | Upozornění
Blíží se svátek IPv6 a s ním i konference IPv6 Day. Na návštěvníky této akce čeká nejen bohatý program, ale také jedna speciální nabídka – v průběhu setkání bude možné získat se slevou 66 procent třetí vydání knihy IPv6 vysokoškolského pedagoga a publicisty Pavla Satrapy, tedy za 105 korun. … více »
Vilem Sladek | Komentářů: 3
včera 16:14 | Pozvánky

Přijďte si zasprintovat na Djangu, jiném Python open-source projektu, nebo jen potkat ostatní vývojáře!

… více »
Whit | Komentářů: 0
včera 10:20 | Nová verze
Na zrcadlech a torrentech jsou již k dispozici ISO obrazy distribuce Mageia 2. Poznámky k vydání čtěte zde.
Liborek | Komentářů: 14
23.5. 13:47 | Pozvánky

Letos v říjnu se v Praze uskuteční hned několik konferencí. Odehraje se zde nově vzniklá konference LinuxDays. K ní se přidá čtvrtý ročník openSUSE Conference, dvanáctý ročník SUSE Labs conference a aby to nebylo málo, přidá se i první ročník Gentoo miniconf. A to vše ve stejné dny a na stejném místě.

… více »
Miška | Komentářů: 7
23.5. 13:27 | Zajímavý projekt
Printerd je název nového projektu tiskového démona, který bude využívat PolicyKit a D-Bus. Projekt je zatím na úplném začátku, takže nejde o nic vhodného k produkčnímu nasazení. Mimo jiné aktuálně akceptuje jako vstup jen PDF dokumenty.
Luboš Doležel (Doli) | Komentářů: 54
23.5. 13:25 | Zajímavý software
Tři vývojáři ze společnosti Engine Yard přecházejí po dohodě mezi firmami do Red Hatu. Jde o vývojáře zabývající se rozvojem projektu JRuby. To ukazuje, že Red Hat má zájem o podporu alternativních jazyků nad OpenJDK.
Luboš Doležel (Doli) | Komentářů: 1
23.5. 13:20 | Zajímavý software
Fedora přejde na knihovnu libusbx, což je fork původní knihovny libusb. Důvodem pro fork byl zjevný nedostatek času nebo zájmu ze strany správce projektu. libusbx už teď nabízí užitečné funkce navrch.
Luboš Doležel (Doli) | Komentářů: 3
23.5. 10:29 | Nová verze
Vyšlo LLVM 3.1. Vylepšení se dotýkají podpory C++ 11 nebo architektur ARM a MIPS. Dále se můžete těšit z Python bindings nebo nástroje AddressSanitizer pro detekci chyb při práci s pamětí.
Luboš Doležel (Doli) | Komentářů: 0
23.5. 00:01 | Nová verze
Vyšla nová verze open source služby pro sdílení a synchronizaci souborů ownCloud 4. Mezi hlavní novinky patří verzování, šifrování dat, vestavěný prohlížeč ODF souborů, nové API a další - podrobnější popis novinek a vylepšení zde.
Dirka | Komentářů: 1
Pokud by se prohlížeč Opera stal svobodným:
 (9%)
 (31%)
 (1%)
 (59%)
Celkem 222 hlasů
 Komentářů: 26, poslední dnes 14:44
    Rozcestník
    Reklama
    Autoškola testy online Levný benzín

    ANSI řídící sekvence

    23.7.2008 08:26 | Přečteno: 1255× | Linux

    Pokud chcete do konzole vypisovat barevný text máte v podstatě dvě možnosti. Můžete na to jít od lesa a použít nějakou knihovnu (například ncurses nebo slang). Nebo použít ANSI Escape sekvence, které jsou s námi již více než 30 let.

    Escape sekvence jsou kombinace znaků uvozené znakem escape (ASCII 27 [nebo také 033 a 0x1b]). Terminál by neměl tyto sekvence vypisovat, ale interpretovat. Pomocí escape sekvencí můžeme měnit základní parametry terminálu - barva popředí, barva pozadí nebo pozice kurzoru. Můžeme také vykonávat základní operace jako smazání obrazovky, řádku, nebo dokonce zjišťovat parametry terminálu.

    Tento blogpost vychází z článku který vyšel na mém webu, kde najdete také jednoduchou knihovnu v Céčku. Kdyby mi něco na webu nefungovalo dejte mi vědět, nedávno jsem přešel na Drupal (o RSS vím).

    Barvičky a atributy textu

    Barvy a atributy textu se nastavují pomocí escape sekvence ESC[x;x;xm kde se na místech x uvádí jednotlivé atributy.

    Barvy jsou číslovány následovně: Černá (0), Červená (1), Zelená (2), Žlutá (3), Modrá (4), Fialová (5), Azurová (6) a Bílá (7). Číslo 9 reprezentuje defaultní barvu. Pokud se barva používá, přičítá se k ní 30 pro barvu popředí, nebo 40 pro barvu pozadí.

    Narozdíl od barev není podpora atributů textu moc dobrá. Terminály obvykle znají všechny atributy, nicméně vizuální podoba se výrazně liší terminál od terminálu.

    Základní podporované atributy textu jsou: Světlý (1), Tmavý (2), Podtržený (4), Blikající (5), Inverzní (7) a Skrytý (8). Nula reprezentuje reset atributů.

    Pokud by jste chtěli například nastavit prompt terminálu tak, aby zobrazoval váš login podtrženým fialovým písmem na azurovém pozadí za kterým by následovala blikající pravá hranatá závorka v červené barvě na bílem pozadí, udělali by jste to nějak tahle:

    export PS1="\033[4;35;46m`whoami`\033[0m\033[5;31;47m]\033[0m"

    Reset atributů uprostřed příkazu je potřebný kvůli podtržení. Bez něj by byla hranatá závorka nejenom blikající, ale i podtržená.

    Ostatní funkce

    Pomocí sekvence ESC[2J můžeme vymazat celou obrazovku a pomocí ESC[x;yf můžeme přesunout kurzor na řádek x a sloupec y. Obrazovku je možné také mazat relativně od kurzoru nebo pouze na řádku kde je kurzor. S kurzorem je zase možné hýbat relativně vůči aktuální pozici (pro detaily mrkněte do článku nebo na wikipedii).

           

    Hodnocení: 86 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    23.7.2008 09:55 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    Zmínil bych man console_codes, je to poměrně přehledné i kompletní. Curses je hnusný kód s neuvěřitelně ošklivým API.
    Táto, ty de byl? V práci, já debil.
    23.7.2008 13:02 R
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    Riadiace kody ma kazdy terminal ine. Curses funguje na vsetkych terminaloch. Nie je to az take hrozne, jednoduche UI som v tom robil.
    23.7.2008 13:49 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    To neni tak uplne pravda. ANSI kody by meli fungovat vsude (i kdyz bohuzel nektere funguji ruzne na ruznych terminalech).
    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.
    23.7.2008 14:59 MJ | Tady a teď
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    To žel není pravda. Podívejte se do databáze od terminfa a uvidíte, kolik existuje obskurních terminálů.
    23.7.2008 15:30 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    Jo, napsal jsem to trochu spatne. Myslel jsem to tak ze kazdy terminal ma obvykle svoje vlastni ridici sekvence, nicmene ANSI funguje vicemene globalne, ale ano podivnych terminalu je spousta.
    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.
    23.7.2008 14:32 CEST
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    Navic IMHO je na ANSI ESCAPE sekvence hezky prave to, ze se to da pouzivat jako obycejny echo/print z cehokoliv i z bashe a perlu. Pokud se nepletu, tak ncurses je knihovna pro C. Samozrejme, urcite existujou moduly do perlu a ruzny dalsi rozsireni do shellu, ale to hezky je prave pouziti ANSI ESCAPE sekvenci je prave ta jednoduchost. Blby pak ovsem je, kdyz si takovej skript clovek spusti v terminalu, kterej ty sekvence neumi:-(
    23.7.2008 15:00 MJ | Tady a teď
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    V shellu můžete používat příkaz `tput', který si umí najít řídící sekvence v terminfu.

    Pro Perl existují docela příjemné bindingy na curses (modul Curses). Nic úžasného, ale určitě příjemnější než sekvence bastlit ručně.
    24.7.2008 08:41 Tom.š Ze.le.in | skóre: 20 | blog: tz
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    Kromě tput-u lze také přímo použít pro nastavování setterm.
    If this is not what you expected, please alter your expectations - Erik Naggum, R.I.P.

    Založit nové vláknoNahoru

    ISSN 1214-1267   Powered by Hosting 90 Server hosting
    © 1999-2012 Argonit s. r. o. Všechna práva vyhrazena.