Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
ls neukazuje dole souhrn podobný DOSovskému dir.
Někdo může namítnout, že to dělá příkaz du, jenže ten se chová (pro můj vkus) dost podivně - vzhled výpisu je dost odlišný od ls atd. Nebudu to teď rozebírat, každý si du může vyzkoušet sám. Nakonec jsem po delší době skončil s docela šikovným skriptem, třeba se někomu taky bude hodit. Podotýkám, že programování v bashi nesnáším a moje vědomosti se v něm blíží nule (než jsem přišel na to, že uvnitř hranatých závorek podmínky "if" musí nutně být vlevo/vpravo mezery, to mi dalo zabrat). Skript se může nazvat jakkoli, já si ho hodil do ~/bin/, nazval jsem ho "dir" a mám v .bashrc alias se zkratkou "lu" (něco jako "list usage") kvůli kratšímu názvu
Tak tady je ta šílenost:
#!/bin/bash
# 2010-12-25 version 0.1
ls -oFX --color=auto --group-directories-first --time-style=long-iso;
echo ==========;
t=`du --human-readable --separate-dirs --one-file-system --summarize`;
# next line strips the dot at the end of the string
t=${t%\.}
f=0; for i in `find -maxdepth 1 -type f`; do let f++; done;
h=0; for i in `find -maxdepth 1 -type f -name ".*"`; do let h++; done;
if [ $f == 1 ] ; then
str1="FILE"
else
str1="FILES"
fi
if [ $h == 1 ] ; then
str2="FILE"
else
str2="FILES"
fi
echo "TOTAL SIZE $t IN $f $str1 ($h HIDDEN $str2)";
Jak si pozorný čtenář povšiml, přidal jsem i výpis počtu souborů a kolik je z toho skrytých souborů. Dále jsem "opravil" to, kvůli čemu by zasloužil Micro$oft nakopat do zadku: v DOSu se totiž vypisovalo(stále vypisuje?) "file(s)", místo aby se bralo v potaz jednotné a množné číslo. Ještě jednou upřesňuji, že se celkový součet všech velikostí týká pouze souborů v aktuálním adresáři.
Jakékoli nápady na zlepšení/zjednodušení uvítám.
P.S. Proč sem nejde vložit 8-bitové PNG??? Bere to jen 24-bitové.
Tiskni
Sdílej:
Slušeno by se k tomu ls přidat i parametr -h
ls -ll
mrkva@Destiny:~$ if [ 0 -eq 0 ]; then echo j; else echo n; fi j mrkva@Destiny:~$ if 0 -eq 0; then echo j; else echo n; fi bash: 0: příkaz nenalezen n(Jasně, je tu test).
if grep neco soubor > /dev/null then echo "neco je v souboru" fi
test stejně často bývá hardlink na [. A kdyby šlo o to porovnání, tak máme třeba ještě expr:
if expr $f '=' 1 > /dev/null then ... fiPamatuju si, na svůj první unixový předmět - přednášející nám říkal: "Za if je příkaz, když mi někdo bude u zkoušky tvrdit, že test nebo hranatá závorka, tak ho vyhodím."
if [ $f == 1 ] ; then jen odeberu závorky, tak to fungovat prostě nebude.
Za if je příkazBlbě, za if je jeden nebo více příkazů.
grep neco soubor && echo "neco je v souboru"? Nebo jeste neco jinyho?
Když už, takfor i in `find -maxdepth 1 -type f`; do let f++; done;
find -maxdepth 1 -type f | wc -l a určitě by to šlo ještě úsporněji.
Mimochodem, skutečně budou čísla sedět, když bude v aktuálním adresáři soubor, který bude mít v názvu nějaký znak z $IFS?
#!/bin/bash
# 2010-12-25 version 0.2
ls -oFX --color=auto --group-directories-first --time-style=long-iso
echo ==========
t=`du --human-readable --separate-dirs --one-file-system --summarize`
# next line strips the dot at the end of the string
t=${t%\.}
f=`find -maxdepth 1 -type f | wc -l`
h=`find -maxdepth 1 -type f -name ".*" | wc -l`
if [ $f -eq 1 ] ; then
str1="FILE"
else
str1="FILES"
fi
if [ $h -eq 1 ] ; then
str2="FILE"
else
str2="FILES"
fi
echo "TOTAL SIZE $t IN $f $str1 ($h HIDDEN $str2)"
Uz zbyva jen urychlit prvni spusteni (napr. v ~/ je to dost znat, domnivam se, ze to zpusobuje "du", ktery i pres parametr --summarize stejne leze do podadresaru a neco tam pocita). Vedel by nekdo, jak na to?
To prostě přečte proleze vše. Druhé spuštění je rychlé jen proto, že se to pak nakešovalo.
Tenhle skriptík je sice hezký, ale právě tenhle důvod bude jeden z těch proč to už v unixu takhle uděláno není.
ls a soucet bajtu me vetsinou nezajima. Tenhle skriptik se mi hodi jen obcas.
je to dost znatTak to toho máš v ~ ještě celkem málo, když je to „jenom“ dost znát:
78G . real 2m2.525s user 0m1.416s sys 0m7.132s
58G . real 4m32.711s user 0m0.280s sys 0m2.920s
No jo, ja taky cpu velka data na externi disk, takze se u me jedna jen asi o 4 sekundy.
Mimochodem jak zmeris ten cas, to jde jakym prikazem?
$ time du -s --si * 17k lost+found 15G marian 1,7M test real 0m21.347s user 0m0.830s sys 0m0.379s
ls zobrazit reálný součet bajtů? Když použiju
ls -l --block-size=1
tak dostanu zřejmě číslo, které vyjadřuje celkové zabrané místo na disku.
Upřesním:
total 32768 -rw-r--r-- 1 ghaad users 4615 Dec 7 11:12 file1.inc -rw-r--r-- 1 ghaad users 4666 Dec 7 10:52 file2.inc -rw-r--r-- 1 ghaad users 5447 Dec 7 11:02 file3.inc -rw-r--r-- 1 ghaad users 5267 Dec 7 11:06 file4.incNa disku soubory zabírají dohromady zřejmě 32768 bajtů, reálný součet je ale 19995 bajtů. Ten můj šílený skript přepisuju, jde to celé opravdu napsat o dost čistěji a bez použití
du, čímž eliminuju tu pomalost při prvním spuštění.
alias ll='ls -l' alias lh='ls -ld .*' alias xdu='du -hs *' alias xdh='du -hs .[^.]*'