Dle plánu dnes ve 13:00 proběhne veřejný test eDokladů. Jeho cílem je ověřit připravenost aplikace a související infrastruktury na vysokou souběžnou zátěž před podzimními komunálními volbami.
Byla vydána nová verze 3.47 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.13 souvisejícího programovacího jazyka Dart (Wikipedie).
Byla vydána nová verze 26.1 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Bian-May. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.
Na akci Made by Google 2026 (YouTube) byla oficiálně představena jedenáctá generace telefonů Pixel s novým čipem Google Tensor G6 a hodinky Pixel Watch 5.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) se spolu s partnery z dalších zemí připojil ke společnému upozornění (Joint Cybersecurity Advisory) týkajícímu se probíhající kybernetické kampaně skupiny LAUNDRY BEAR zaměřené na uživatele e-mailové platformy Zimbra Collaboration Suite (ZCS) nejméně od července 2025. NÚKIB doporučuje organizacím využívajícím Zimbra Collaboration Suite neprodleně ověřit, zda
… více »Intel vydal 42 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20260811 mikrokódů pro své procesory.
Sny o designu GNOME Shellu, článek s náhledy a videi, představuje dlouhodobou vizi týmu GNOME pro vylepšení uživatelského rozhraní GNOME Shellu. Zatímco nedávné verze přinášely spíše drobné úpravy, designéři nyní plánují zásadnější změny.
Byla vydána nová verze 10.5 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Nově vyžaduje podporu ECC (Elliptic Curve Cryptography) v libcrypto, včetně křivky NISTP521.
Byla vydána nová verze 10.6 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. S novými obrazy pro Orange Pi 4 Pro, Orange Pi Zero 3W a Odroid M1/M1S/M2. Přehled novinek v poznámkách k vydání.
Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů
… více »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.