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 00:11 | Nová verze

    Byla vydána prosincová aktualizace aneb nová verze 1.108 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | IT novinky

    Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 2
    včera 16:33 | Zajímavý projekt

    Patchouli je open source implementace EMR grafického tabletu (polohovací zařízení). Projekt je hostován na GitLabu.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | IT novinky

    Český Nejvyšší soud potvrdil, že česká právní úprava plošného uchování dat o elektronické komunikaci porušuje právo Evropské unie. Pravomocným rozsudkem zamítl dovolání ministerstva průmyslu a obchodu. To se teď musí omluvit novináři Českého rozhlasu Janu Cibulkovi za zásah do práv na ochranu soukromí a osobních údajů. Ve sporu jde o povinnost provozovatelů sítí uchovávat údaje, ze kterých lze odvodit, kdo, s kým a odkud komunikoval.

    Ladislav Hagara | Komentářů: 4
    včera 02:11 | Komunita

    Google bude vydávat zdrojové kódy Androidu pouze dvakrát ročně. Ve 2. a 4. čtvrtletí.

    Ladislav Hagara | Komentářů: 0
    7.1. 17:22 | Zajímavý článek

    Bezpečnostní specialista Graham Helton z Low Orbit Security si všímá podezřelých anomálií v BGP, zaznamenaných krátce před vstupem ozbrojených sil USA na území Venezuely, které tam během bleskové speciální vojenské operace úspěšně zatkly venezuelského diktátora Madura za narkoterorismus. BGP (Border Gateway Protocol) je 'dynamický směrovací protokol, který umožňuje routerům automaticky reagovat na změny topologie počítačové sítě' a je v bezpečnostních kruzích znám jako 'notoricky nezabezpečený'.

    NUKE GAZA! 🎆 | Komentářů: 8
    7.1. 06:11 | Nová verze

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,58 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,32 %. Procesor AMD používá 67,43 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 3
    7.1. 05:55 | IT novinky

    V Las Vegas probíhá veletrh CES (Consumer Electronics Show, Wikipedie). Firmy představují své novinky. Například LEGO představilo systém LEGO SMART Play: chytré kostky SMART Brick, dlaždičky SMART Tagy a SMART minifigurky. Kostka SMART Brick dokáže rozpoznat přítomnost SMART Tagů a SMART minifigurek, které se nacházejí v její blízkosti. Ty kostku SMART Brick aktivují a určí, co má dělat.

    Ladislav Hagara | Komentářů: 0
    6.1. 18:33 | Bezpečnostní upozornění

    Vládní CERT (GovCERT.CZ) upozorňuje (𝕏) na kritickou zranitelnost v jsPDF, CVE-2025-68428. Tato zranitelnost umožňuje neautentizovaným vzdáleným útočníkům číst libovolné soubory z lokálního souborového systému serveru při použití jsPDF v prostředí Node.js. Problém vzniká kvůli nedostatečné validaci vstupu u cest k souborům předávaných několika metodám jsPDF. Útočník může zneužít tuto chybu k exfiltraci citlivých

    … více »
    Ladislav Hagara | Komentářů: 6
    6.1. 16:22 | Komunita

    V úterý 13. ledna 2025 se v pražské kanceláři SUSE v Karlíně uskuteční 5. Mobile Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj a související infrastrukturu. Akci pořádá David Heidelberg.

    … více »
    lkocman | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (1%)
     (4%)
     (0%)
     (10%)
     (22%)
     (4%)
     (5%)
     (3%)
     (11%)
     (54%)
    Celkem 297 hlasů
     Komentářů: 7, poslední včera 15:35
    Rozcestník

    Dotaz: python script - pridanie fixného riadku v terminaly

    30.10.2012 09:07 Peter S.
    python script - pridanie fixného riadku v terminaly
    Přečteno: 307×
    Ahojte,

    moja otázka: Mám python skript (neinteraktivny), ktorý môže bežať relatívne dlho a produkuje dosť veľa výstupu, takže človek nevie čo sa práve robi. No a ja by som chcel pridať na vrch (alebo spodok, to je jedno) stabilný riadok, ktorý by informoval v akom kroku sa skript nachádza.

    Takže v určitom okamžiku by sa v skripte nachádzal príkaz "Vytvor riadok s textom", niekoľko krát by tam bol prikaz "updatuje text na" a na záver by bol príkaz "zruš riadok" - teda to píšem v ľudskej reči.

    Pozeral som sa už na knihovnu ncurses, kedže asi ta je najvhodnejšia, ale nechcem sa stať odborníkom na ncurses potrebujem len túto jednu vec. Neporadil by mi niekto? Som ochotný si niečo naštudovať ale ako som písal, nie celé ncurses od nuly.

    Ďakujem

    Odpovědi

    30.10.2012 09:37 chrono
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    30.10.2012 11:20 Peter S.
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    debian lenny to nemá v repozitároch, určite by som to nainštaloval, ale chcel by som niečo "mainstreamové", kedže daný skript bude bežať na rôznych strojoch...
    30.10.2012 11:40 chrono
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Celá knižnica je jediný súbor __init__.py (v adresári blessings). Takže buď sa skopíruje k tomu skriptu celý adresár blessings, alebo sa tam pridá len súbor __init__.py, ktorý sa premenuje na blessings.py a bude to bez problémov fungovať.
    30.10.2012 12:49 Peter S.
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    OK, tak som si to stiahol, ale nespráva sa to ako chcem, vid tento kod:
    import sys
    import time
    from blessings import Terminal
    term = Terminal()
    with term.location(0, term.height - 4):
        print 'Here is the bottom.'
    for x in range(0,100):
    	print x
    Ono to vypíše "Here is the bottom" ale následne sa to posúva hore.... ja chcem niečo ako subkonzolu, teda aby sa iba časť terminalu spravala ako terminal....
    30.10.2012 10:59 sss
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Ja na takovehle veci pouzivam trik s \r (return carriage) a nepouzitim \n (new line):
    import sys
    import time
    for i in xrange(0,10):
      sys.stdout.write("\r Processing "+str(i))
      time.sleep(1)
      sys.stdout.flush()
    
    30.10.2012 11:14 Peter S.
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    predstav si tento kod:
    for x in range(0,100):
            print x
            time.sleep(1)
    a nad nim je horny nemený riadok s textom "pocítam"... dá sa to s tvojim kodom?
    30.10.2012 11:46 DK
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    ano
    30.10.2012 12:09 Peter S.
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    nevidím ako na to....

    možno to počítanie by sa dalo nejako urobiť, ale predstav si že v okne beží kompilácia programu....
    30.10.2012 12:16 chrono
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Ak nevyhovuje tá knižnica blessings, tak je v tom návode aj ukážka ako sa vypisuje text na spodok obrazovky len s použitím curses. Síce sa tam ten text aj podčiarkne, ale nie je problém tých pár zbytočných riadkov vymazať a bude to vypisovať len ten text na spodok obrazovky.
    rADOn avatar 30.10.2012 17:37 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    To co chces je dost anti-unix – michas dohromady interaktivni a neinteraktivni vystup. (cokoliv hybe kurzorem terminalu je z principu "interaktivni"). Dalo by se to zaridit, ale pak nepujde dobre takovy vystup dale zpracovavat. Cili ho tam vubec nemusis mit. Takze reseni je psat "status" nekam jinam, coz se da udelat na milion zpusobu.

    Asi nejcistsi by bylo psat na stderr. stdout s nezajimavym logem si presmerujes nekam do logu nebo /dev/null. Nemusis se matlat s ovladanim terminalu, tvuj "status" bude proste rolovat jako log ale nebude se do nej nic michat. Kdyz si neco rozmyslis, porad muzes cokoliv pajpovat a grepovat jak se na unixovy program slusi.

    Kdyz uz by bylo opravdu nutne do toho cpat curses a podobne vylomeniny ktere hybou kurzorem, tak je aspon slusnost si predem zjistit jestli jsi vubec na terminalu. V pythonu ma na to file objekt metodu isatty().

    Vetsina linuxovych utilit ktere si hraji na hezky vystup kombinuje oboji – statove info se bleje na stderr, pokud je tento na terminal tak se pomoci "\r" hacku delaji progressbary, tocaky a podobne volovinky. V pythonu je to par radek kodu – 0% curses, 100% funkce :-)
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    30.10.2012 18:56 l4m4
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    +1, hlavně ta první část.
    30.10.2012 19:55 chrono
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Možno je to naozaj anti-unix ale určite to nie je anti Linux. Pred pár rokmi bolo totiž pomerne moderné mať v termináli zobrazené nejaké ascii logo, ktoré bolo hore a nikam sa neposúvalo. Nechce sa mi hľadať návod ako sa to robilo (a aká escape sekvencia sa tam na to vlastne používala). :)
    30.10.2012 20:04 l4m4
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Nic takového nebylo v posledních patnácti linuxových letech natolik ‚moderního‘, abych o tom alespoň slyšel. Pokud nemyslíš logo při bootu, což byla fíčurka framebufferu, tj. vyžadovala podporu jádra. Nicméně dopsat si pro danou vychytávku podporu do jádra není špatný návrh, tazatele to jistě na několik let dobře zabaví...
    30.10.2012 20:51 chrono
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Chápem, že pri vývoji Linuxového jadra mohla niekomu ujsť taká vec ako je napr. program linux_logo. Predpokladám, že každý, kto ten program niekedy vyskúšal, použil aj príkaz priamo z FAQ toho programu, ktorý spôsobí, že to logo ostane stále na obrazovke a výstup sa vypisuje len do spodnej časti. ;)
    30.10.2012 21:16 Peter S.
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    OK, vďaka za všetky reakcie. Chápem že technicky to asi nejde. Nie je to žiadna tragedia, aspon som si preveril aj tuto možnosť...

    Mimochodom - najnovšia moja myšlienka je zneužiť na tento účel názov (title) terminálu, čo by tiež nebolo zle:)

    Ešte raz vďaka

    30.10.2012 22:16 DK
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    jenom se podivejte na htop, nano, vi, vsude to jde, takze to urcite technicky jde :)
    31.10.2012 11:08 Peter S.
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Pri niečom čo sa refreshuje 1x za sekundu a ked je vopred známy text ktorý sa bude v terminály posúvať/vypisovať - si to viem predstavať. Ale ja to potrebujem na kompiláciu, kde sa generuje veľké množstvo textu...
    rADOn avatar 31.10.2012 01:08 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Title terminalu se ovlada v podstate stejne jako kurzor, specialnimi sekvencemi znaku. Navic narozdil od vetsiny jinych takovych funkci je to celkem standartni takze nepotrebujes zadny curses. Jinak plati totez jako jsem psal predtim - zkontroluj si jestli jsi na tty, kdyz ne tak to nedelej. Pokud nejsi v xtermu, tak to nedelej. Cili neco zhruba takovyho:
    if sys.stderr.istatty() and os.environ["TERM"] in ("xterm", "xterm-color", "rxvt"):
        logger = lambda s: sys.stderr.write("\x1b]2;"+ s +"\x07")
    else:
        logger = lambda s: sys.stderr.write(s + "\n")
    
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    Josef Kufner avatar 31.10.2012 12:01 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    V podstatě to lze docílit relativně jednoduše pomocí ncurses a obalujícího programu.

    Aby jsi nerozbil scrollback buffer, je dobré využít spodní řádek obrazovky, který před dalším výpisem odstraníš a po výpisu vypíšeš. Ale dej si pozor, abys moc nezpomaloval výpis.

    Druhou možností, která však scrollback buffer rozbije, je použití ncurses window. To je vlastně takový malý subterminál, ale je emulovaný ncurses knihovnou. Výhodou je, že stavový řádek nebude problikávat a může být kdekoliv. Není to nic složitého, stačí ukázkový program z dokumentace a spravně napsaný cyklus se select() čtoucí z stdout a stderr spuštěných programů (to je popsané u fork()).

    Tak jako tak potřebuješ odchytávat stdout a stderr spuštěných příkazů a kreslit ho na obrazovku ručně, v druhém případé právě pomocí knihovny ncurses.

    Ve všech případech si ale zjisti, zda jsi opravdu na terminálu pomocí isatty().

    Pokud jsi líný něco programovat, spusť si screen, rozděl terminál na dva a v druhém si pusť "watch cat ~/soubor-se-stavem".

    Další možností je použít zenity a zobrazit si okýnko s grafickým progressbarem.
    Hello world ! Segmentation fault (core dumped)
    31.10.2012 13:00 Peter S.
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    nie, žiadne manuálne odchytavanie výstupu a sekanie a vypisovanie na terminál nechcem. Toho textu bude veľa a bude sa sypať rýchlo. Ako som písal vyššie, bez problémov sa obídem bez tejto funkcionality....
    Josef Kufner avatar 31.10.2012 15:37 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: python script - pridanie fixného riadku v terminaly
    Pokud nechceš omezovat rychlost výpisu, pošli to do souboru a pak spusť monitorovací program, např:
    (nejaky-ten-script 2>&1 >output.log ; killall watch) &
    watch "cat soubor-se-statistikama ; tail -n 20 output.log"
    Přičemž si tam budeš do soubor-se-statistikama poznamenávat nějaký info o postupu (co pár sekund). Sice výpis bude jen takový cukaný náhled, ale pojede to hodně rychle.
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

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

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