Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.
Virtualizační software Xen (Wikipedie) byl vydán v nové verzi 4.21. Podrobnosti v poznámkách k vydání a přehledu nových vlastností.
Evropská komise schválila český plán na poskytnutí státní pomoci v objemu 450 milionů eur (téměř 11 miliard Kč) na rozšíření výroby amerického producenta polovodičů onsemi v Rožnově pod Radhoštěm. Komise o tom informovala v dnešní tiskové zprávě. Společnost onsemi by podle ní do nového závodu v Rožnově pod Radhoštěm měla investovat 1,64 miliardy eur (téměř 40 miliard Kč).
Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.
První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.
Google oznámil, že Quick Share na Androidu funguje s AirDropem na iOS. Zatím na telefonech Pixel 10. Uživatelé tak mohou snadno přenášet soubory z telefonů s Androidem na iPhony a obráceně.
Byla vydána nová verze 8.5 (8.5.0) skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Přináší řadu novinek a vylepšení (URI Extension, Pipe Operator, Clone With, …). Vydána byla také příručka pro přechod z předchozích verzí.
Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu
… více »Společnost Meta Platforms vyhrála ostře sledovaný spor o akvizici sítě pro sdílení fotografií Instagram a komunikační aplikace WhatsApp. Podle amerického soudu firma jejich převzetím neporušila antimonopolní zákon, protože si tak nemonopolizovala trh sociálních sítí. Žalobu na Metu podala před pěti lety americká Federální obchodní komise (FTC). FTC argumentovala, že Meta, tehdy známá jako Facebook, koupila tyto dvě společnosti v letech 2012 a 2014 proto, aby s nimi nemusela soutěžit.
Home Assistant včera představil svůj nejnovější oficiální hardware: Home Assistant Connect ZBT-2 pro připojení zařízení na sítích Zigbee nebo Thread.
Standardní vstup (neboli stdin) je místo, ze kterého programy berou data a standardní výstup (stdout) je místo, kam je vypisují. Příkaz cat bez parametrů nedělá nic jiného, než že čte data ze standardního vstupu a vypisuje je na standardní výstup. Zkuste v konzoli napsat cat a stisknout enter. Poté napište jakoukoliv větu a po stisku enteru se vám zobrazí na obrazovce. Ukončíte stiskem Ctrl+D.
$cat Standardní vstup je připojen na klávesnici Standardní vstup je připojen na klávesnici Standardní výstup je připojen na monitor Standardní výstup je připojen na monitorNa výpisu programu vidíte, že standardním vstupem je vaše klávesnice a standardním výstupem je obrazovka monitoru. Ale ne vždy tomu tak musí být. Programy, které se takto chovají, nazýváme filtry, protože nejčastěji slouží k úpravám a filtracím textů.
Mimo tyto dva existuje ještě chybový výstup (stderr), do něhož jsou vypisovány chybová hlášení. I on je standardně vypisován na monitor. Smysl jeho existence je ve snadném oddělení užitečného výstupu programu od chybových hlášení, či varování.
Ne vždy musí být standartním vstupem klávesnice a výstupem obrazovka – to díky přesměrování. Předpokládejme, že máme soubor foo a v něm nějaký text. Příkaz cat nečte jen ze standardního vstupu, ale dokáže přečíst vstupní soubor(y) a ty pak zobrazit na standardní výstup.
$ cat foo stdin stdout stderr $ cat foo > barPočkat, když jsme napsali
> bar, tak se nic nezobrazilo! A to proto, že znak > říká shellu, aby standardní výstup nevytiskl na monitor, ale zapsal do souboru. Jinými slovy jej přesměroval. Když napíšete cat bar, zobrazí se stejný obsah, jako je v souboru foo.
Znak > (respektive 1>) přesměruje standardní výstup do souboru. Znak 2> přesměruje standardní chybový výstup do souboru a &> přesměruje oba dva proudy do stejného souboru. Podobně < umožňuje přesměrovat obsah souboru na standardní vstup. Dvojité >> pak místo přepsání souboru přídává data na jeho konec.
Shell neumožňuje rovnou přesměrovat oba výstupní proudy na konec jednoho souboru - v takovém případě je nutné pomoci si následujícím trikem: přesměrujeme standardní chybový výstup do standardního výstupu a ten poté připojíme na konec souboru - tedy (všimněte si ampersandu před připojením na standardní výstup - bez něj by byl vytvořen soubor se jménem 1):
$ příkaz >>výstupní-soubor 2>&1
Posledním typem přesměrování je přesměrování <<ZNACKA, pomocí kterého shellu řekneme, že standardní vstup má očekávat v těle skriptu - ihned za uvedeným příkazem; a má jej číst dokud nenarazí na řádek obsahující pouze slovo ZNACKA. Myslím, že příklad vše vyjasní:
#!/bin/bash
# neco se provadi
cat - <<EOF_ZPRAVA
Gratuluji, skript probehl uspesne.
Pokud chcete videt podrobnejsi vypis jeho cinnosti,
podivejte se do souboru ${PWD}/zaznam.log
EOF_ZPRAVA
Všimněte si, že v textu, který posíláme na standardní vstup je prováděna expanze proměnných - pokud bychom ji chtěli potlačit, stačí uvést příslušnou značku do uvozovek. Pokud se zdá, že výše uvedený příkaz by byl stejně přehledný pomocí několika volání echo, tak to je správně, ale pokud by šlo o delší text (např. nápověda k použití), je úspora času a práce výrazná.
Toto přesměrování využijeme především ve skriptech, protože nám vlastně umožňuje mít text více souborů v jediném skriptu. Pokud např. skript generuje jiný skript (což je v na *nix systémech poměrně běžná (a dokonce i tradiční) záležitost) nebo konfigurační soubor, můžeme generovaný soubor vytvářet právě pomocí tohoto přesměrování, takže (mimo jiné) nemusíme kontrolovat, jestli opravdu soubor se šablonou, do které bychom data vkládali, existuje a navíc máme všechna data pěkně pohromadě.
Zatímco teď jsme přesměrovávali výstup do souboru, roury přesměrovávají výstup na standardní vstup jiného programu. Roury způsobují, že je používání shellu tak mocné, protože umožňují kombinovat více filtrů do jedné kolony. Dejme tomu, že máme seznam jmen v souboru lide.txt, který chceme setřídit podle abecedy, vyřadit duplicity a zobrazit prvních 10 lidí.
$ sort -u lide.txt | headProgram
sort setřídí seznam lidí a s parametrem -u také data zbaví duplicit. Sort předá data dál a příkaz head vytiskne prvních deset řádků. Někteří lidé to přirovnávají k lidské řeči. Máme spoustu slov (příkazů), které samy o sobě označují (vykonávají) pouze jednu činnost. Ale díky tomu, že je můžeme kombinovat do vět (kolon), můžeme pomocí těch jednoduchých slov (příkazů) vyjádřit složitější myšlenky (provádět složitější činnost).
Např. máme soubor se seznamem slov (co slovo, to řádek) a chceme zjistit nejčetnější slovo (a jeho četnost) - pomocí roury je vyřešení (byť jednoduchého) problému velmi snadné:
$ sort slova.txt | uniq -c | sort -n -r | head -n 1
Vysvětlení: slova nejdříve setřídíme a programem uniq vyházíme stejná slova, parametr -c zajistí, že program připíše, kolikrát se které slovo ve vstupu vyskytovalo (proto musíme slova setřídit, protože uniq si pamatuje pouze zpracovávanou a minulou řádku). Takto získaná data znovu setřídíme - tentokrát ale sestupně (-r) a jako čísla (-n), protože uniq přidává počet na začátek řádku. A programem head vypíšeme pouze první řádku (-n 1).
A je to!
Možná jste už slyšeli o adresáři /dev. Pokud ne, tak vězte, že v tomto adresáři se schovávají různá reálná (/dev/hda) i nereálná (/dev/random) zařízení (přesněji, jejich souborové reprezentace). Ty, které se používají k přesměrování si popíšeme:
/dev/null – je to taková malá černá díra, cokoliv tam pošleme, tak se ztratí. Používá se například k filtrování hlášení, která nás nezajímají (cat zadny_soubor 2> /dev/null - pokud soubour neexistuje, cat vypíše chybu, ale tím že jsme ji přesměrovali do /dev/null ji neuvidíme)/dev/stdin - reprezentuje standardní vstup. Používáme v případě, když program nečte ze standardního vstupu, ale pouze ze souboru, příkladem je echo "Žluťoučký kůň" | iconv -f iso-8859-2 -t utf-8 /dev/stdin. Tím můžeme programy používat v koloně i v případě, že s tím autoři nepočítali./dev/stdout - standardní výstup, pokud chcete v koloně zpracovat i chybový výstup, napíšete cat zadny_soubor 2> /dev/stdout/dev/stderr - standardní chybový výstup, příkaz echo posílá vstup na stdout, ale můžeme to přesměrovat echo "chyba" > /dev/stderr, což je správný způsob vypisování chybových hlášení.Dokument vytvořil: vladka, 29.8.2005 12:01 | Poslední úprava: Robert Krátký, 31.1.2008 19:37 | Další přispěvatelé: Vojtěch Horký, David Watzke | Historie změn | Zobrazeno: 48277×
Tiskni
Sdílej: