Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.
Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Byla vydána verze 1.94.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Zveřejněny byly výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2025 State of Rust Survey Results.
Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.
Byla vydána únorová aktualizace aneb nová verze 1.110 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.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.
Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).
Popis příkazů nebudu rozebírat do podrobností, od toho máme manuálové stránky. Jen stručně nastíním k čemu jednotlivé příkazy slouží. Abyste věděli, pod kterým příkazem se skrývá vámi požadovaná činnost, a měli jste se na začátku čeho chytit.
cp - kopíruje souboryrm - ruší souborymkdir - vytváří adresářermdir - ruší prázdné adresářeln - vytvoří odkazy na souborychmod - změní přístupová práva k souborůmls, dir, vdir - vypíše obsah adresářůfind - vyhledávání souborůwhich - zobrazí absolutní cestu k programudf - vypisuje informace o připojených FSps - informace o spuštěných procesechcat, less - výpis souboru na obrazovkuxargs - spustí zadaný příkaz a zbylé argumenty čte ze standardního vstupugrep - tiskne řádky, které odpovídají zadanému vzoruwc - vypíše počet písmen, slov a řádkůsort - setřídí řádkyPříklad použití archivačního programu tar (je to standardní nástroj, takže ho naleznete snad v každé distribuci).
$ tar zcvf archiv.tgz ./adresar
|
Mimo archivace tar použije i kompresi z - gzip, j - bzip2. Volba x - rozbalí archív, c - vytvoří archív, v - vypisuje informace.
Příkazy dostávájí opravdovou moc teprve díky rourám a přesměrováním.
Roura (značí se pomocí operátoru |) připojuje výstup
jednoho procesu na vstup druhého procesu.
Operátory přesměrování.
> - přesměrování standardního výstupu do souboru, jestliže soubor existuje bude přepsán>> - jako předchozí, ale data přídá na konec souboru< - přesměrování standardního vstupu do souboru<<text - jako předchozí, ale při výskytu řetězce text zašle znak konce souboruChcete-li zabránit přepsání souboru při přesměrování, můžete toto implicitní nastavení změnit následujícím příkazem.
$ set -o noclobber
|
Před operátorem přesměrování můžeme použít deskriptor souboru.
0 standardní vstup1 standardní výstup2 standardní chybový výstupDvě ukázky přesměrovaní standardního výstupu a standardního
chybového výstupu do stejného souboru. Jako soubor použijeme
/dev/null (o všechno, co do tohoto speciálního
souboru přesměrujeme, přijdeme). Zkuste si příklad upravit tak,
aby se vám na obrazovku vypisoval jen standardní chybový výstup
a pak jen standardní výstup. Před zkoušením si nastavte jako
aktuální adresář nějaký, který obsahuje podadresáře a soubory.
$ find | xargs cat &> /dev/null
|
První příklad použití programu tar by šel zapsat i následujícím způsobem za použití roury a přesměrování do souboru.
$ tar cv ./adresar/ | gzip > archiv.tgz
|
Potřebujeme vytvořit kontrolní součet všech souborů v aktuálním
adresáři a jeho podadresářích za pomocí md5sum a uložit do souboru
md5sum.txt (u tohoho souboru nebudeme provádět kontrolní
součet).
Ukáži vám dvě řešení. To druhé jsem vytvořil, než jsem se v konferenci
dozvěděl o příkazu xargs.
$ find . \! -path './md5sum.txt' -type f | xargs -i md5sum {} > md5sum.txt
|
Program find předá programu xargs cestu
ke všem souborům (na každém řádku je cesta k jednomu souboru), ten
vezme řádek, dá ho do uvozovek a předá jako argument programu
md5sum, načte další řádek... Dokud nezpracuje celý
vstup. Standardní výstup programu md5sum se přesměruje
do souboru md5sum.txt.
find
\! - neguje následující podmínku-path './md5sum.txt' - najde soubory, jejichž jména odpovídají './md5sum.txt'-type f - jsou nalezeny běžné souboryxargs
-i - všechny výskyty dvojice znaků {} jsou nahrazeny cestou k souboru ze standardního vstupu, mezery neuzavřené v uvozovkách nejsou považovány za ukončení argumentuJe zbytečné psát takhle dlouhý příkaz, když ho budeme často používat.
Proto si do souboru ~/.bashrc přídáme alias.
alias md5sumr='find . \! -path './md5sum.txt' -type f | xargs -i md5sum {} > md5sum.txt'
|
Po dalším spustění BASHE stačí, když zadáte jen md5sumr.
Druhé řešení je vytvoření skriptu md5sumr.sh. Je to jen
pro ukázku, aby bylo vidět, že to jde udělat i mnohem složitějším
způsobem.
#!/bin/bash
koren=$(pwd)
vystup="md5sum.txt"
cesta="./"
Md5sum() {
local tmp
for soubor in *; do
if [ "$soubor" == "*" ]; then
break
fi
if [ -d "$soubor" ]; then
cd "./$soubor"
tmp="$cesta"
cesta="$cesta$soubor/"
Md5sum
cd "../"
cesta="$tmp"
else
if [ "$soubor" != "$vystup" ] || [ "$cesta" != "./" ]; then
pwd=$(pwd)
cd "$koren"
md5sum "$cesta$soubor" >> "./$vystup"
cd "$pwd"
fi
fi
done
}
Md5sum |
Na příště si připravte svůj oblíbený editor. Jestli žádný takový ještě nemáte, určitě vyzkoušejte Emacs a vi a jeden z nich si vyberte, časem určitě oceníte jejich kvality. Výše uvedený kód jsem úmyslně nekomentoval. Až dočtete tento seriál, měli byste ho pochopit.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
V případě mnoha malých souborů bude toto řešení samozřejmě
mnohem rychlejší, ale čím větší bude velikost souborů tím menší
bude rozdíl v rychlosti. A navíc u rychlejšího řešení nastává
níže uvedený problém.
bash: /usr/bin/md5sum: Příliš dlouhý seznam argumentů
To je hlavní nevýhoda rychlého řešení, takže rychleji neznamená
vždy nejlépe
)
for soubor in .* *; do echo "$soubor"; doneviz.
[work]# touch wd\ kuk\$.aj\* [work]# ls wd kuk$.aj* [work]# for soubor in *; do echo "$soubor"; done wd kuk$.aj*
touch \*\ \*\ \*\ pokusa pak třeba
for i in `ls`;do echo "$i";donea pak pro změnu třeba
for i in `ls`;do echo $i;doneExpanze je sfiňa
V prvním případě to jednou expanduje v příkazu for a v druhém projistoru ještě jednou v příkazu echo a jestli tam dáš ls, nebo ls -1 na tom nic nezmění. Trochu overkill řešení zadání mě napadlo:ls|tee /dev/null
. Ale myslim, ze v puvodnim dotazu byl vypis jmena souboru pouze jako priklad.
touch \*\ \*\ \*\ pokus touch \*\ \*\ \*\ pokus\ \* for i in "`ls`";do echo "$i";donebye :)
Ale ja chtel uvezt priklad, ktery tu jeste nebyl - a resi
problemy mezer, koncu radku, hvezdicek a jinych zhovadilosti v nazvech souboru:
find . -exec sh -c 'echo "$0" ' {} \;
Enjoy
find
jak se da udelat kdyz mam př:
strace příkaz 2>&1
a potřebuji aby se ten příkaz měnil podle zadaní argumentu pri spousteni skriptu. Mam například skript ./ahoj.sh FUNKCE ls, takze bych potreboval aby se ten strace vypisoval jako strace ls.