Byla vydána verze 1.96.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.
Společnosti IBM a Red Hat představily Project Lightwell s investicí 5 miliard dolarů. Jedná se o důvěryhodné clearingové centrum pro bezpečnost open source softwaru a zabezpečení dodavatelských řetězců s novým AI modelem a globální skupinou více než 20 000 softwarových inženýrů. Služby centra budou dostupné prostřednictvím komerčních předplatných. Project Lightwell staví na iniciativách jako Anthropic Glasswing nebo OpenAI Trust Access for Cyber.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 26.05. Podrobný přehled novinek v poznámkách k vydání.
Český stát by v budoucnu mohl provozovat vlastní alternativu ke komunikačním aplikacím typu WhatsApp, Signal, Telegram, Facebook Messenger a podobně. Cílem je zajistit bezpečnou datovou komunikaci pro stát a jeho důležité subjekty, jako jsou bezpečnostní složky, ministerstva a další organizace.
Už za týden, ve čtvrtek 4. června, se v Národní technické knihovně v pražských Dejvicích uskuteční další konference věnovaná tématům spojeným s IPv6 - Den IPv6. Program akce a registrační formulář jsou k dispozici na webu akce. Kapacita konference je omezená, proto organizátoři doporučují, aby se vážní zájemci přihlásili včas (k dnešnímu dni zbývá přibližně 30 volných míst). Konferenci Den IPv6 2026 organizují i letos společně sdružení CESNET, CZ.NIC a NIX.CZ.
Zařízení Steam Deck OLED bylo znovu naskladněno, ale vlivem rostoucích cen pamětí a úložišť má novou, vyšší cenovku. Steam Deck OLED 512 GB stojí nově 779 EUR (stál 569 EUR) a Steam Deck OLED 1 TB stojí 919 EUR (stál 679 EUR). Samotné zařízení se nijak nezměnilo a nové ceny tedy pouze odráží aktuální náklady na komponenty a další globální logistické výzvy, se kterými se potýká celá branže.
Český telekomunikační úřad zahajuje novou etapu využívání vysokofrekvenčního rádiového spektra v pásmu 26 GHz. Toto pásmo bude od 1. 7. 2026 otevřeno pro provoz moderních bezdrátových sítí, zejména sítí páté generace (5G), pevných bezdrátových přístupových sítí (FWA) a lokálních či průmyslových sítí určených například pro výrobní areály, logistická centra nebo technologické kampusy. Současně s otevřením pásma 26 GHz přistoupil ČTÚ ke zpřístupnění informací o využívání rádiových kmitočtů v tomto pásmu.
Logitech představil myš Signature Comfort Plus M850 L s polstrovanou opěrkou dlaně pro větší pohodlí a sadu s touto myší a klávesnicí s integrovanou opěrkou dlaní Signature Comfort Plus Combo MK880.
Gaël Duval se rozepsal o novinkách a plánech Murena a /e/OS. Počet uživatelů telefonů Murena a mobilního operačního systému /e/OS bez aplikací a služeb od Googlu se blíží 100 000. Ambicí je, aby se /e/OS stal třetí mobilní platformou v Evropě i na světě, s potenciálem dostat se i na PC. Blíží se vydání nové verze 4 s funkcemi zálohování a obnova, import e-mailů z Gmailu a rozpoznávání hlasu. Murena Workspace přinese videohovory, elektronický podpis a správu zařízení (MDM).
Dnes a zítra probíhá Ubuntu Summit 26.04. Na programu je řada zajímavých přednášek. Sledovat je lze na YouTube. Úvodní slovo měli Mark Shuttleworth a Jon Seager.
Řešení dotazu:
foo=$(ifconfig wlan0 | grep -m1 inet)ale muzes klidne pokracovat:
ifconfig wlan0 | grep -m1 inet | sed ..Btw. misto ifconfig by bylo vhodnejsi pouzit 'ip'.
grep ... | sed ..., když už stejně volám ten sed? Raději sed -ne '/inet/{p;q;}', před p možno nakládat s obsahem dle ctěné libosti.
Jinak bych taky zvážil, jestli porcovat vástup z ifconfig.
foo=`příkaz`Mimochodem na Linuxu
ifconfig nefunguje, pro věci kolem sítě se používá příkaz ip.
$ /sbin/ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
...
$ uname -srom
Linux 4.14.0 x86_64 GNU/Linux
Funguje úplně normálně. Na Linuxu.
Možná jste chtěl říci, na některých Linuxových distribucích... ip tam je taky, ale se nepoužívá, protože jsem si na něj do dnes nezvyk a ani nebyl důvod si zvykat.
~ # ip a s eth1
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:e0:4c:68:01:7f brd ff:ff:ff:ff:ff:ff
inet 192.168.0.134/24 brd 192.168.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet 192.168.0.214/24 scope global secondary eth1
valid_lft forever preferred_lft forever
inet6 fd91:e2f1:bcd0:0:2e0:4cff:fe68:17f/64 scope global mngtmpaddr dynamic
valid_lft forever preferred_lft forever
inet6 fe80::2e0:4cff:fe68:17f/64 scope link
valid_lft forever preferred_lft forever
~ # ifconfig eth1|grep 214
~ #
A to je WSL?Ne, to je aktuální Debian Sid a jádrem 4.9.
FungujeNefunguje, jak jsem právě ukázal. Nástroj na konfiguraci sítě, který nezobrazuje některé IP adresy, vymýšlí si neexistující síťová rozhraní a podobně prostě nefunguje.
Nefunguje to na Debianu.Nefunguje to ani na jiných distribucích, je to rozhraním kernelu.
Mně to na Linuxu (ne Debian) funguje.Nepravda. Můžeš si to zkusit sám, přiřadíš rozhraní dvě IP(v4) adresy a ifconfig ti jednu zatají:
ip a a 192.168.0.10/24 dev eth0 ip a a 192.168.0.11/24 dev eth0 ip a ifconfigObdobně si můžeš zkusit vytvořit ifconfigem nové rozhraní („alias“) a pak ho dát down - zjistíš, že sis shodil síť i na „ostrém“ rozhraní. Nebo můžeš přidat do iptables pravidlo s -i alias_rozhraní a zjistíš, že to nefunguje. Conclusion: ifconfig nezobrazuje některé adresy a vymýšlí si neexistující rozhraní.
Obdobně si můžeš zkusit vytvořit ifconfigem nové rozhraní („alias“) a pak ho dát down - zjistíš, že sis shodil síť i na „ostrém“ rozhraní.To nie je pravda. ifconfig eth0:0 down zrusi alias a eth0 zostane fungovat bez zmeny. Mimochodom, pridanie druhej IP adresy bez aliasu na odpojene rozhranie s DHCP rozbije NetworkManager. Po pripojeni kabla neposiela DHCP requesty.
# ifconfig
...
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.22 netmask 255.255.255.0 broadcast 192.168.1.255
...
# ifconfig wlan0:0 192.168.2.22 up
# ifconfig
...
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.22 netmask 255.255.255.0 broadcast 192.168.1.255
...
wlan0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.22 netmask 255.255.255.0 broadcast 192.168.2.255
...
# ifconfig wlan0:0 down
No a pořád si píšeme, tak jsem si nic neshodil. Pravda, jsem zvyklý aliasům dávat... no, aliasy.
Funguje a hlavně... používá se. Já ho používám. I kdybych byl sám, tak to stačí aby to byla pravda.
Debian je Linux: nepravda
Debian v množině Linux: pravda
Pravda, jsem zvyklý aliasům dávat... no, aliasy.
Pro vaši informaci: IP aliasing byl odstraněn z jádra s příchodem řady 2.2. To bylo v lednu 1999.
Ne, on chtěl skutečně říct (konstatovat známý fakt), že ifconfig na Linuxu nefunguje. Na žádné distribuci Linuxu. Je smutné, že si toho někteří nevšimli.
Ještě jednou a polopatě: Ten příkaz tam zůstal spíš omylem, kvůli kompatibilitě s 20 let starými skripty. Neumí správně konfigurovat a zobrazovat adresy rozhraní, IPv6 ani IPv4. Že shodou šťastných náhod pro několik málo BFU konfigurací zdánlivě funguje, to opravdu nic neznamená.
Na Linuxu se příkaz pro nastavení sítě jmenuje ip.
Nikdo nic nenamítá proti BFU, který chce (z nějakých iracionálních důvodů) v terminálu použít ifconfig. Dotaz byl spíš o psaní skriptu, který má parsovat síťovou konfiguraci. Takový skript se hodí napsat tak, aby nebyl založený na zastaralém programu udržovaném jen kvůli kompatibilitě.
ip není moc dobrý nápad. Bohužel strojově zpracovatelný formát výstupu (JSON - tj. pro shellové skripty pořád nic moc) se k jednotlivým příkazům z iproute2 teprve přidává.
ip nejraději neparsovala vůbec, ale jiná možnost zřejmě není. Snad jen napsat si vlastní program třeba v C, který ty IP adresy ze systému vytáhne.
Nezmar23 by určitě ocenil, kdyby se pro jeho účel dalo napsat např. tohle:
ip addr show wlan0 inet4 --limit=1Jenže to bych po té utilitě asi chtěl moc.
ip. Není to oneliner.
ifconfig fakticky funguje ve vetsine pripadu
Řekl byste o kalkulačce, která vám většinou dá správný výsledek (jen po ní prostě nesmíte chtít něco "složitějšího"), že funguje? Já ne.
pripady kdy nefunguje jsou takove co BFU (s BFU pozadavky) nepotka
Nemyslím si, že argumentaci BFU je v tomto případě relevantní. Ani ip, ani ifconfig nejsou nástoje určené k tomu, aby je používal BFU. BFU bude editovat ifcfg-* nebo používat něco ještě víc BFU-friendly (třeba YaST).
Ba co hůř, s nástupem nástrojů jako wicked nebo systemd-networkd se dostáváme do situace, kdy BFU nemusí mít vůbec nainstalované balíčky iproute2 ani net-tools a přesto si bude moci nastavit všechno, co bude potřebovat. (A to není nějaká hypotetická myšlenka, s nápadem, že iproute2 (a spousta dalších admin/debug nástrojů) nepatří do Minimal patternů, už jsem se setkal a svůj pokus to zvrátit prohrál; nakonec tam podle všeho přeci jen bude, ale jen proto, že kvůli tomu začaly failovat openQA testy.)
Řekl byste o kalkulačce, která vám většinou dá správný výsledek (jen po ní prostě nesmíte chtít něco "složitějšího"), že funguje? Já ne.Pokud, protože jsem prodavačka nebo BFU, mi stačí, že umí sčítat, odčítat, násobit, dělit a to vždy, tak ano. A že to nemá tenhle čudlík. Nebo ho to má, ale ten výsledek, kterému stejně nerozumím, mi může být jedno. Jak jsem psal. Jestli to je přes zpětně kompatibilní volání nebo ne, je mi jedno. Mně to, pro mé potřeby funguje. A minimálně já to používám a tím se to používá. Třeba taky proto, že nemusím tolik řešit, před kterým jako-U*X systémem zrovna sedím. Nebo ne tolik, syntaxe se trochu lišit bude, ale základní výpis ne.
To právě vůbec není pravda. Pominu-li, že tím, čemu říkáte "NonBFU", mohl být distribuční inicializační skript nebo jiný konfigurační nástroj, tak třeba už to, že ukazuje nějaká fiktivní rozhraní jako eth0:0, je špatně. Právě ten BFU (ve skutečnosti spíš nějaký mírně (chybně) poučený uživatel než skutečný BFU) se pak bude divit, proč nemůže použít "iptables ... -i eth0:0".
Stejně tak je špatně už sama koncepce, že rozhraní je přiřazena (jedna) IP adresa, která se nastavuje, na které je syntaxe příkazu ifconfig založena (ovšem jen pro IPv4, kde se pak dokonce místo odebrání adresy fiktivně "nastavuje na nulovou").
prom=$(ifconfig eth0 |grep -m1 inet)Co na tom chceš ještě osekávat? Osekej to rovnou v tomhle.
ip=$(ip addr show wlan0 | awk '/inet / { split($2, arr, "/"); print arr[1] }')
ifconfig měl dlouho docela záludný bug, že ořezával jména rozhraní na (IIRC) 9 znaků. Když se to opravilo, tak sice začal dlouhá jména ukazovat celá, ale zase se tím rozbily skripty, které výstup parsovaly tímto způsobem.
prom="$(ifconfig wlan0 | grep 'inet ad' | sed 's/.*dr://;s/ .*//')"(grepovat jen s 'ad' a ne 'adr', aby to slo na CZ (adr) i EN (addr) locale :)
LC_ALL=C ..." mi přijde spolehlivější a univerzálnější. :-)
Pár příkladů na toto téma:
variable="`grep "$USER" /etc/passwd`" variable="$(grep "$USER" /etc/passwd)" read variable < <(grep "$USER" /etc/passwd)
Připomínám ovšem, jak už tu bylo několikrát řečeno, že příkaz pro správu sítě na Linuxu se jmenuje ip, nikoliv ifconfig.
V tom triviálním příkladu asi nebude rozdíl. Ve složitějších situacích rozdíl bude.
Shodné oddělovače (``) znamenají zásadní omezení z hlediska gramatiky, protože se nedají „hnízdit“. Tohle funguje:
echo "$(echo "$(echo bla)")" echo $(echo $(echo bla))
Tohle „funguje“ hodně nečekaně a debuggovat něco takového bych nechtěl:
echo `echo `echo bla`` # nečekaný výsledek
Takhle je to samozřejmě pěst na oko, ale v delších příkazech se může přesně takový pattern nenápadně schovat a překvapit. Uvozovky tady nepomůžou a například toto nebude fungovat vůbec:
echo "`echo "`echo bla`"`" # chyba syntaxe
Shodné oddělovače (``) znamenají zásadní omezení z hlediska gramatiky, protože se nedají „hnízdit“.
Také jsem si to dlouho myslel. Ale dají:
mike@lion:~> ls -l $(echo -e "sk\x$(echo -en '\x32')ec") -rw-r--r-- 1 mike users 821 čec 10 2015 sk.c mike@lion:~> ls -l `echo -e "sk\x\`echo -en '\x32'\`ec"` -rw-r--r-- 1 mike users 821 čec 10 2015 sk.c
Ale pokud samotný pohled na ten příklad někomu nestačí, aby ho přesvědčil, že není dobrý nápad to používat jen proto, že to jde, pak mu asi není pomoci. :-)
echo $(echo \$HOME)
echo `echo \$HOME`
var=$(cmd) a read var < <(cmd) není to samé, ale na to snad přijdete, když zjistíte, že cmd vrací více řádků. Třeba USER je test a v /etc/passwd je test a tester a test123. Hlavně ale, když se vyhnete ifconfig, tak to není třeba řešit.
Předně, který shell je opravdický? Shell podle standardu totiž $(...) samozřejmě umí. V Dashi, o kterém se povídá, že má ke standardu blízko, funguje $(...) taky.
Je spousta silných vlastností Bashe, které ve standardu nejsou — třeba numerický typ, příkaz declare nebo (což chybí hodně citelně) pole — indexovaná i hashovací. Ale netřeba hned každou expanzi a substituci dávat do souvislosti s Bashem. 
Souhlas, pole se prostě hodí — a nejen jako cache. Taky hashovací tabulky (declare -A) jsou fajn.
Někdy se dá jako poor man’s pole použít iterace nad wildcardem názvů proměnných:
a_blah=3
a_zee=4
a_nonsense=5
for name in "${!a_@}"; do echo "${name}: ${!name}"; done
Jenže ukládat do tohoto^^^ je ošklivé, protože vygenerovat dynamicky identifikátor proměnné se těžko dá jinak než pomocí eval.
Radši pole.
Láryfáry. Kdo pole nechce používat, ať je nepoužívá. (Ale já pak s takovým člověkem zdvořile odmítnu pracovat.)
Ve skutečnosti jsou pole mimořádně užitečná, protože umožňují vyhnout se prasárnám kolem parsování stringů s mezerami/oddělovači i expanzím proměnných mimo uvozovky. Obojí je hnusný zlozvyk z dob před poli v Bashi, takže asi z 80. let.
ip církvi, toho zastřelit. Tolerance musí mít své meze.
set -- `ls` for i; do echo $i; done
Předně, který shell je opravdický?Výborná otázka. Myslím tím Bourne Shell, takový ten co najdete na "starších" Unixech. Třeba /bin/sh na Solaris 10 a dál, IIRC. Já bych se rozšoupnul a ty dva bajty tam za #! dal, stejně beztak většina myslela bash, tak proč něco předstírat. Jo GNU rozšíření jsou kolikrát príma, o tom žádná. Kdo byl někdy odkázán na standardně konformní příkazy jistě rád potvrdí.
No já když jsem zkoušel, kolik mých skriptů bude fungovat v Dashi, vzdal jsem to a zůstal u Bashe. A to ještě Dash není ani náhodou tak archivní materiál jako původní Bourne shell.
Na Solarisu pamatuju jenom zsh, protože jsem ho nikdy neviděl v původní proprietární Sun podobě, jenom jako OpenSolaris / OpenIndianu. (Tu open-source verzi jsem, pravda, viděl docela zblízka. Ale stejně jsem si tam zbaběle nainstaloval Bash.)
prom="$(hostname -I | cut -d\ -f1)"
hostname -I, protoze vic jak jednu ip nemaj ;D
Tiskni
Sdílej: