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í
×
    dnes 17:44 | Zajímavý článek

    Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.

    karkar | Komentářů: 0
    dnes 12:11 | Humor

    Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).

    Ladislav Hagara | Komentářů: 1
    dnes 10:44 | IT novinky

    Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.

    Ladislav Hagara | Komentářů: 21
    dnes 09:55 | IT novinky

    Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.

    Ladislav Hagara | Komentářů: 0
    dnes 09:33 | IT novinky

    Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.

    Ladislav Hagara | Komentářů: 0
    dnes 08:11 | Nová verze

    Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 2
    včera 15:44 | IT novinky Ladislav Hagara | Komentářů: 4
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (22%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 492 hlasů
     Komentářů: 19, poslední dnes 11:32
    Rozcestník

    ANSI řídící sekvence

    23.7.2008 08:26 | Přečteno: 1869× | 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: 21 | blog: tz
    Rozbalit Rozbalit vše Re: ANSI řídící sekvence
    Kromě tput-u lze také přímo použít pro nastavování setterm.

    Založit nové vláknoNahoru

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