V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).
MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.
Diskuse byla administrátory uzamčena.
$ sed -n '1p' < ./soubor
První řádek
$ sed -n '$p' < ./soubor
Poslední řádek
$ sed -n '1!p' < ./soubor
Druhý řádek
Třetí řádek
Poslední řádek
Chce ještě někdo zodpovědět nějaký konkrétní příklad?
#!/bin/bash
mv $1 $1.old
sed 's/ahoj/nazdar/' $1.old > $1
#rm $1.old
exit 0
$ find -type f | xargs -i ../skript.sh {}
$ cat soubor nazdarahojnazdarahojnazdarahojnazdar $ sed 's/ahoj/\n/g' < ./soubor nazdar nazdar nazdar nazdar $ sed 's/\(ahoj\)/\n\1\n/g' < ./soubor nazdar ahoj nazdar ahoj nazdar ahoj nazdar
$ cat soubor Řádek 1 Error 2 Řádek 3 Error 4 $ egrep -v '^Error.+$' < ./soubor Řádek 1 Řádek 3
Můžeš např. všechno kromě čísel a mezer smazat.
$ echo "1234 ahoj 4321" | sed -n 's/[^0-9 ]//gp' 1234 4321
Ale podle mě bude lepší zkontrolovat všechny argumenty a v případě, že uživatel v některém z nich zadá cokoliv jiného než číslo, zakřičí se na něj a program se ukončí.
for argument in $@; do
if [ $(echo $argument | grep '[^0-9]' | wc -l) -ne 0 ]; then
echo "Argument '$argument' není číslo!!!"
exit 1
fi
done
Rádi Ti pomůžeme, ale specifikuj prosím Tvůj problém jednoznačně, nejlepší bude když uvedeš konkrétní příklad, co máš a co z toho chceš dostat.
$ cat pocet_tagu.sh
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 file.xml"
exit
fi
echo -e "\n$1:"
tags_all=$(cat $1 |sed -n 's/[^>]*\(<[^ >]\+[ >]\)/\1\n/gp' |grep "^<[^\/]" |sort)
tags_uniq=$(echo $tags_all |sed 'y/ /\n/' |uniq)
for tag in $tags_uniq; do
count=$(echo $tags_all |sed 'y/ /\n/' |grep $tag |wc -l)
printf " %-20s %10i\n" $tag $count
done
$ find -type f -regex ".*\.xml" |xargs -i ./pocet_tagu.sh {}
./soubor02.xml:
<accelerator 2
<!DOCTYPE 1
<glade-interface> 1
<child> 236
<child 250
<packing> 206
<placeholder/> 2
<property 2521
<signal 36
<widget 258
<?xml 1
./soubor01.xml:
<kocka> 2
<pes> 2
<xml> 1
<zvire> 2
IFS="<";
set -- $(cat "$1");
for tag in "$@" ; do
IFS=" >";
set -- $tag;
echo "$1";
done | sort | uniq -c
IFS="<";
set -- $(cat "$1");
for tag in "$@" ; do echo "${tag%%[ >]*}"; done | sort | uniq -c
$ echo ~ /home/jozef $ echo a~ a~ $ echo a\ ~ a ~
$ ./configure --prefix=~/myprogs configure: error: expected an absolute directory name for --prefix: ~/myprogs $ ./configure --prefix=$HOME/myprogs checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes ... atd. (takhle mi to už funguje) ...P.S. Takhle kompiluju software pokud nechci spouštět
make install jako root. Prostě jsem si do .bash_profile přidal příkaz který přidal ~/myprogs/bin do PATH a můžu takhle zkompilovaný a nainstalovaný programy normálně spouštět jako kdyby byli kompilované instalované "normálním způsobem". Zatím mi všechny takhle kompilované a instalované programy fungovali bez problémů (mezi nimi jsou i takové fajnové vychytávky jako třeba mplayer). Dělám to tak, protože jsem poněkud paranoidní co se týče poskytování ROOT oprávnění neznámým skriptům a programům (čti: normální sysadmin).
Tiskni
Sdílej: