Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - singularis

Stran: [1]
1
Měl/a jsem problém, že některé virtuální počítače ve VirtualBoxu se mi pomalu spouštěly; zjistil/a jsem, že to není vyloženě problém virtualizovaného systému, protože to dlouho trvalo i systému z instalačního ISO, zatímco na jiném virtuálním počítači systém z téhož ISO obrazu naběhl rychleji.

Nakonec jsem zjistil/a, že příčinou byla složitá konstrukce ze snapshotů a propojených klonů v kombinaci s tím, že ten virtuální počítač prošel přes mnoho verzí VirtualBoxu. Samotné vytvoření plného klonu nepomohlo, protože už definiční soubor s příponou „.vbox“ byl nějak zaneřáděný. Nakonec pomohl následující postup:
  • Vytvořit plný klon problematického virtuálního počítače.
  • V Nastavení plného klonu na „kartě“ Úložiště najít pevný disk (s příponou „.vdi“), kliknout na něj pravým tlačítkem a Odebrat připojení.
  • Vytvořit nový virtuální počítač a zvolit přitom „Nepřidávat virtuální pevný disk“.
  • Otevřít Správce virtuálních médií (z nabídky „Soubor“), najít v něm právě odpojený virtuální pevný disk a příkazem „Move“ ho přesunout do adresáře nového virtuálního počítače (a odpovídajícím způsobem přejmenovat).
  • V Nastavení nového virtuálního počítače na „kartě“ Úložiště kliknout na řadič SATA a kliknout na ikonu vpravo („Přidat pevný disk“) a použít virtuální pevný disk z předchozího kroku.
  • Pokud problematický virtuální počítač ke správnému běhu vyžadoval nějaká zvláštní nastavení (např. přístup ke grafické akceleraci), je nyní potřeba tato nastavení ručně přenést do nastavení nového virtuálního počítače.
  • Spustit nový virtuální počítač a přeinstalovat v něm přídavky pro hosta, pokud byly původně nainstalované. Restartovat ho.
  • Odstranit plný klon se všemi soubory a případně i původní problematický virtuální počítač. (úklid)

2
Nějakou dobu jsem si myslel/a, že „sudo“ je k provádění administrátorských činností bezpečnější než „su“ (používané např. na Debianu). Ale když jsem se už asi potřetí doslechl/a o tom, jak někdo objevil bezpečnostní díru v sudo (a pokaždé to bylo v zadávání hesla), začal/a jsem to blíž zkoumat a už si to nemyslím a začínám pomalu uvažovat, že si tento příkaz ze systému odinstaluji, protože kromě vysoké pravděpodobnosti přítomnosti dalších bezpečnostních děr má tento příkaz několik nedostatků už v tom, jak běžně funguje:
  • První chybu návrhu vidím v tom, že program „sudo“ může spustit kterýkoliv uživatel v systému. Protože za normálních okolností ho využijí jen root a členové skupiny sudo, považoval/a bych za mnohem logičtější, aby měl program „sudo“ nastavenu skupinu „sudo“ a mód 4754, takže uživatelé mimo skupinu sudo by prostě dostali „access denied“ a nemohli by žádných bezpečnostních děr v „sudo“ využít, ani kdyby o nich věděli.
  • Druhou chybu návrhu vidím v tom, že „sudo“ se tváří, že příkazy, které zadáte bez sudo, nedostanou oprávnění superuživatele. Jenže to není pravda — „keš“ příkazu „sudo“ je vázaná na terminál, ale už ne na konkrétní interpret. Takže když bezprostředně po použití „sudo“ spustíte skript, který sám volá také „sudo“, už znovu heslo zadávat nemusíte a příkaz ze skriptu dostane oprávnění superuživatele rovnou. Stačí jen, když si řekne.
Ke zneužití druhé zmíněné chyby návrhu stačí jen trocha sociálního inženýrství; přesvědčit uživatele, aby si „sudo apt install něco“ a vzápětí na stejném terminálu spustil náš skript v domnění, že ten skript oprávnění superuživatele nedostane, není příliš těžké. Pokud to uživatel spouští v „su“, alespoň ví, že ten skript oprávnění superuživatele dostane.

Nedostatek „su“, že v případě, že od počítače odejdete, zůstane trvale otevřený terminál s oprávněním superuživatele, lze odstranit nastavením proměnné TMOUT v souboru „.bashrc“; terminál s oprávněním superuživatele se pak po určité době nečinnosti automaticky zavře.

Nedostatek „su“, že oprávnění superuživatele dostávají i příkazy, které ho nepotřebují, pak můžete snadno vyřešit tak, že si otevřete paralelně dva terminály; jeden se „su“ pro privilegované příkazy a druhý obyčejný pro neprivilegované. Toto řešení je potřeba i pro „sudo“, jak je zřejmé z výše uvedené druhé chyby návrhu.

Další věc, která mě naštvala natolik, že jsem ji ze svého systému již odstranil/a, je FUSE. Myšlenka je dobrá — tento subsystém má umožnit neprivilegovaným uživatelům připojování virtuálních souborových systémů. Jenže tvůrcům FUSE se nelíbilo linuxové pojetí přístupových práv, tak takto připojené souborové systémy fungují se dvěma odchylkami:
  • Uživatel, který FUSE-systém připojil, v něm má právo čtení i zápisu u všech souborů a adresářů, dokonce i u těch, kde si ho sám odebere. Takže odebrání práva zápisu k nějakému „cennému“ souboru a k adresáři, ve kterém se nachází, ve FUSE nijak nezabrání vašim dalším programům, aby ho přepsaly či smazaly. Hm...
  • Ostatní uživatelé (zejména root) nejen že k takto připojenému souborovému systému nemají přístup, ale dokonce jim selže volání „stat“ na adresář, do kterého je připojen, takže některé příkazy jako „lsof“ či „ls“ pak vypisují chybová hlášení nebo se chovají podivně.
Oficiální zdůvodnění, proč nemá root přístup do FUSE-systémů, je, že má jít o zabezpečení uživatelských dat před systémovým správcem (data totiž mohou být šifrovaná nebo přístupná přes vzdálené připojení). Problém je, že to není pravda — root může snadno zjistit, který uživatel daný souborový systém připojil, a pak pomocí „sudo -u uživatel bash“ spustit interpret s právy daného uživatele (uživatelovo heslo znát nepotřebuje) a daný souborový systém „proslídit“, jak uzná za vhodné. Zabezpečení nulové a místo toho toto opatření rozbíjí činnost nástrojů jako „lsof“. Přitom by bylo mnohem rozumnější, kdyby takto připojený souborový systém zůstal viditelný jen příslušnému uživateli a ostatní uživatelé by viděli původní prázdný adresář, jako by na něj nic připojené nebylo.

Vidíte to také tak?

3
Zjistil/a jsem, že v balíčku „elementary-icon-theme“ je bug, který způsobuje, že když je tento balíček nainstalovaný, některé ikony z motivů začínajících slovem „Elementary“ se v Xubuntu 20.04 zobrazují chybně.

Příčinou je adresář „/usr/share/icons/elementary/status/48/untitled folder“, který zřejmě v balíčku neplní žádnou úlohu, ale v Xubuntu 20.04 rozbíjí tvorbu keší ikon (cesty k ikonám nesmějí obsahovat mezery), takže při instalaci balíčku se vypisuje:
Kód: [Vybrat]
Setting up elementary-icon-theme (2.7.1-0ubuntu7) ...
gtk-update-icon-cache: The generated cache was invalid.
WARNING: icon cache generation failed for /usr/share/icons/elementary

Pokud se vás to týká, možná řešení jsou dvě: buď balíček „elementary-icon-theme“ odinstalujete, nebo se chybného adresáře zbavíte takto:
Kód: [Vybrat]
for x in gnome-netstatus-0-24.svg gnome-netstatus-25-49.svg gnome-netstatus-50-74.svg gnome-netstatus-75-100.svg network-wireless-connected-00.svg network-wireless-connected-100.svg network-wireless-connected-25.svg network-wireless-connected-50.svg network-wireless-connected-75.svg network-wireless.svg network-wireless-0.svg network-wireless-00.svg network-wireless-100.svg network-wireless-25.svg network-wireless-50.svg network-wireless-75.svg wifi-00.svg wifi-100.svg wifi-20.svg wifi-40.svg wifi-60.svg wifi-80.svg
do sudo dpkg-divert --local --rename --divert /usr/share/doc/elementary-icon-theme/$x /usr/share/icons/elementary/status/48/untitled\ folder/$x; done
sudo rm -Rfv /usr/share/icons/elementary/status/48/untitled\ folder
sudo update-icon-caches /usr/share/icons/*

4
Připadne mi mnohem praktičtější mít namísto prvků výzvy v terminálu obarvené příkazy, které jsem zadal/a. Následujícím trikem toho lze docílit:

Kód: [Vybrat]
PS0=$(tput sgr0)
PS1="\\[$(tput sgr0)\\]\\u@\\h:\\w\\$ \\[$(tput setaf 2; tput bold)\\]"
PS2="\\[$(tput sgr0)\\]> \\[$(tput setaf 2; tput bold)\\]"

Případně pokud chcete jen obarvit příkazy bez změny stávající výzvy:

Kód: [Vybrat]
PS0=$(tput sgr0)
PS1="\\[$(tput sgr0)\\]${PS1}\\[$(tput setaf 2; tput bold)\\]"
PS2="\\[$(tput sgr0)\\]${PS2}\\[$(tput setaf 2; tput bold)\\]"

Řešení je založené na výzvě $PS0, kterou bash vypisuje před spuštěním zadaného příkazu, a tedy je možné ji využít ke zrušení barvení.

5
Peppermint OS je distribuce odvozená z Ubuntu, která vyniká mimo jiné podstatnými vylepšeními v oblasti vzhledu. Líbila se mi, a teď jsem přišel/a na to, jak z ní vzhled rámečků oken snadno přenést do Xubuntu (resp. do jakékoliv distribuce, která používá Xfwm4 jako správce oken), aniž by se systém zaneřádil desítkami či stovkami megabajtů dalších souborů, které s nimi nesouvisí.

Podobný postup jde použít i k přenesení motivu xfwm4 z jakékoliv jiné distribuce.

Postup je následující:
Kód: [Vybrat]
# 1. Stáhnout si balíček, ve kterém je příslušná xfwm4 theme.
wget 'http://ppa.launchpad.net/peppermintos/p10-release/ubuntu/pool/main/p/peppermint-artwork/peppermint-artwork_10.0.1_all.deb'

# 2. Ověřit, že jsme stáhli správný soubor (volitelný krok, ale doporučuji to udělat).
sha256sum -c - <<<'a9efcc42978384f32f9db01d1afdae4fc2ae5e158a5ab6fc991078be8e576340 *peppermint-artwork_10.0.1_all.deb'

# 3. Rozbalit data (tento příkaz může chvíli trvat).
dpkg-deb -x peppermint-artwork_10.0.1_all.deb pep

# 4. Vyjmout z dat to, co nás zajímá.
mv -v pep/usr/share/themes/Peppermint-xfwm4 .

# 5. Ověřit, že to neobsahuje žádné spustitelné soubory (volitelný krok).
find Peppermint-xfwm4 -type f -executable -print

# 6. Umožnit měnit zarovnání titulku okna (také volitelný krok, jinak bude titulek vynuceně na střed).
sed -iE '/^title_alignment=/d' Peppermint-xfwm4/xfwm4/themerc

# 7. A začínáme instalovat.
sudo chown -R root:root Peppermint-xfwm4
sudo mv -iv Peppermint-xfwm4 /usr/share/themes/Peppermint-xfwm4

# 8. Smazat po sobě zbytky (volitelný krok).
rm -R pep peppermint-artwork_10.0.1_all.deb

Jakmile máme motiv v systému, hned můžeme otevřít nastavení „Správce oken“ (popř. příkazem „xfwm4-settings“) a ze seznamu motivů vybrat „Peppermint-xfwm4“.

Pokud si budete chtít upravit barvy, můžete. Všechny soubory najdete v adresáři „/usr/share/themes/Peppermint-xfwm4/xfwm4“. Některé vlastnosti (mimo jiné barvu textu titulku) najdete v souboru „themerc“, barvy ostatních prvků můžete upravit přímo v souborech xpm – jsou to zdrojové kódy, kde jsou nejprve znakům přiřazeny barvy a pak je z těchto znaků vystavěn obrázek; k jejich editaci stačí obyčejný textový editor a znalost, jak barvy zapsat ve formátu #RRGGBB. Nahradit jednu barvu jinou je tam tedy velice snadné.

6
Hardware / Zkušenosti s 4K monitorem
« kdy: 05 Červenec 2020, 20:41:54 »
Rozhodl/a jsem se, že by se mi k práci občas hodil 4K monitor, tak jsem si koupil/a Samsung U32H850 a zažil/a jsem několik týdnů bojů, aby všechno fungovalo alespoň přijatelně. Nyní už asi nepotřebuji žádnou konkrétní radu, ale chtěl/a bych tu poskytnout svoje zkušenosti pro další uživatele, kteří se rozhodnou pro podobný krok jako já. Nebo mi možná poradíte, co jsem udělal/a špatně nebo jak na ten zbytek problémů, které ještě přetrvávají. (Zvlášť ti, kdo sami 4K monitor mají.) Nebo mě také můžete opravit či doplnit, pokud máte zkušenosti jiné.

Předem uvádím, že používám Ubuntu Studio 18.04 a neměnil/a jsem ani výchozí prostředí (Xfce) ani kompozitor ani řadu jádra (4.15.0).

Když jsem monitor poprvé připojil/a HDMI kabelem ke své staré grafické kartě AMD, ukázalo se, že ta nepodporuje 4K rozlišení vůbec (takže nějakou dobu jsem byl/a odkázaný/á na Full HD rozlišení, které vypadá na 4K monitoru hůř něž na Full HD monitoru – rozmazaně.)

Grafická karta na mém notebooku kupodivu 4K rozlišení zvládla, ale jen s obnovovací frekvencí 30 Hz, což je vynikající pro prohlížení statických obrázků, ale už ne pro video, animace či hry. Teprve pak jsem se dozvěděl/a, že VGA a DVI vůbec 4K rozlišení neumožňují a HDMI 1.4 ho kvůli omezenému datovému toku umožňuje maximálně při frekvenci 30 Hz. Plnou podporu 4K rozlišení má pouze HDMI 2.0 (které ovšem musí podporovat jak grafická karta, tak monitor, a dokonce zřejmě i kabel) a DisplayPort.

Tak jsem si pořídil/a novou grafickou kartu MSI VGA NVIDIA GeForce GT 1030, protože jsem ani při zoufalém hledání nenašel/a žádnou s čipem AMD, podporou 4K rozlišení, více než jedním výstupním portem a stoprocentně pasivním chlazením (i větráku na CPU bych se chtěl/a časem zbavit a opravdu nechci, aby mi pod stolem hučela ještě grafická karta).

Do HDMI portu grafické karty jsem připojil/a svůj hlavní (stávající, Full HD) monitor; 4K monitor jsem připojil/a na DisplayPort.

První zásadní problém byl vytížený procesor a mizerný výkon grafiky. Zkusil/a jsem novější jádro (HWE); výkon se trochu zlepšil, ale na video to stále nebylo. Tak jsem se vrátil/a k původnímu jádru a nainstaloval/a proprietární ovladače NVIDIA. Ty pak problémy s výkonem vyřešily.

Zůstaly však jiné problémy:
  • Grafická karta při startu zobrazuje výpisy jen na DisplayPort; HDMI ignoruje, dokud nenaběhne X-server, což je poměrně nepříjemné, když je 4K monitor postavený na bok jako u mě.
  • Když jsem 4K monitor vypnul/a, počítač se choval, jako bych ho odpojil/a, takže rozházel panely a okna (ikony na ploše naštěstí nemám). Je prý záměrná součást specifikace DisplayPortu, aby se vypnutý monitor choval jako odpojený! To je pro mě dost nepřijatelné, nejen kvůli rozházení plochy, ale také proto, že si občas nahrávám dění na ploše screencasterem a video pak projdu, abych věděl/a, co se dělo v době mé nepřítomnosti. Nevidím důvod mít při tom zapnutý monitor a považuji za nedostatek X-serveru, že mu nemohu říct, aby se choval, jako že na daném portu grafické karty je připojený určitý monitor, a ignoroval, že ve skutečnosti tam není nebo je tam jiný.
  • Při přehrávání videa se opět objevil tearing, který už jsem u čipu AMD měl/a vyřešený.

První dva problémy jsem vyřešil/a tak, že jsem zapojil/a hlavní Full HD monitor DVI kabelem a přes redukci do DisplayPortu (tím pádem se k němu grafická karta chová jako k hlavnímu a díky DVI se nedozví, když monitor vypnu, takže nemá důvod rozházet panely nebo rušit screencasting) a 4K monitor jsem připojil/a kabelem HDMI 2.0. Nastavení u něj sice uvádí obnovovací frekvenci 30 Hz, ale je v té nabídce dvakrát a pocitově mi připadá, že ve skutečnosti to je 60 Hz, takže jsem spokojený/á. Tearing jsem částečně vyřešil/a potlačením kompozitoru v celoobrazovkovém režimu (volba „Použít přímé zobrazování v režimu celá obrazovka“ ve Vyladění správce oken na poslední kartě) a použitím SMPlayeru místo VLC (ačkoliv u VLC by to asi šlo také, kdybych si opravdu hodně dlouho vybíral/a výstupní metodu videa). Nicméně na tearing na 4K monitoru jsem pak narazil/a i při zkoušení Ubuntu MATE 20.04, takže to asi nebude jen vina Xfce; kdo ví, zda to nedělají ty proprietární ovladače...

Přetrvávající problémy jsou následující:
  • 4K monitor má ovládání joystickem, takže ho nelze vypnout, když nemá signál, protože se vypíná přes nabídku a bez signálu uživatele do té nabídky nepustí. Tato situace naštěstí nenastává často a řeším to „po mužsku“ vytažením ze zásuvky.
  • V Xfce nelze vyhradit místo na rozhraní mezi displeji, aby do něj nezasahovala okna maximalizovaná na jeden z displejů. Vyhrazené místo musí být na okraji virtuální plochy.
  • 4K rozlišení je na úhlopříčku 33" příliš vysoké; text, pokud se nezvětší, je na něm velmi špatně čitelný.
  • 4K monitor má podstatně větší spotřebu než Full HD monitor; naměřil/a jsem při provozu 36 W (na stránce prodejce se dokonce uvádí 61 W), zatímco u Full HD monitoru jsem naměřil/a za provozu pouhých 6 W. Je tedy výhodnější mít zapnuté tři Full HD monitory než jeden 4K.

Kdybych byl/a věděl/a, co mě čeká, raději bych si do původní grafické karty zapojil/a další dva Full HD monitory a myslím, že by to pro můj způsob použití bylo lepší než 4K monitor (i když by mi mohla shořet, protože už předtím se dost přehřívala), stejně je i na YouTube 4K videí zatím docela málo a VLC má interaktivní zoom, kterým si mohu z 4K videa vyříznout určitou část a vidět ji v plných detailech.

7
Zajímalo by mě, proč se doporučuje, aby uživatelé ukládali svoje data do svých domovských adresářů.

Já, když nemusím, se tomu snažím vyhnout, protože domovský adresář je zaplevelený spoustou (naštěstí většinou skrytých) konfiguračních souborů, keší, podadresářů apod. Řada programů se k němu chová, jako by byl jejich vlastní, a vytváří tam uživateli další podadresáře nebo ukládá různá data (aniž by o tom uživatel věděl). Tím pak vzniká zmatek, protože uživatel neustále naráží na soubory a adresáře, které nevytvořil, nestojí o ně a možná ani neví, proč tam jsou. Nemůže si ani udělat zálohu, protože když si třeba fotografie uloží do adresáře Obrázky, screenshooter mu je pomíchá se snímky obrazovky a VLC k tomu přidá obrázky vystřižené z videa, nemluvě o nepořádku, který mu tam zůstane po dalších programech, třeba těch na konverzi RAW snímků na JPEGy.

Proto jsem si zvykl/a na svoje data vytvářet samostatné adresáře mimo /home, kde mohu mít skutečný přehled, co tam je, a pro rychlý přístup k těmto adresářům používám aliasy, symbolické odkazy a další prostředky. Proč bych měl/a svoje data dávat do domovského adresáře?

Vlastnictví a přístupová práva problém nejsou; vlastníkem se vždy stává uživatel, který soubor či adresář vytvořil, a to platí stejně v domovském adresáři i mimo něj. A jiný důvod mě nenapadá...

8
Tipy a triky pro Linux / CherryTree v Ubuntu 20.04
« kdy: 26 Duben 2020, 13:40:58 »
Z Ubuntu 20.04 kvůli chybějícím knihovnám vypadl oblíbený program CherryTree. Oficiální způsob, jak ho na nové instalaci provozovat, je nyní přes snap. Pokud ale snap nesnášíte podobně jako já, může se vám hodit následující návod, jak vypuštěné knihovny doinstalovat z repozitářů předchozí verze (Eoan Ermine). Návod vyžaduje nainstalované „wget“ a „gdebi“.
Kód: [Vybrat]
wget 'http://cz.archive.ubuntu.com/ubuntu/pool/universe/p/pyenchant/python-enchant_2.0.0-1_all.deb'
wget 'http://cz.archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-6_amd64.deb'
wget 'http://cz.archive.ubuntu.com/ubuntu/pool/universe/p/pygtksourceview/python-gtksourceview2_2.10.1-3_amd64.deb'
printf 'd03a3fa848a1c1829dc8018f88b654a2f4cdaf78d12f126149eece117a8308ac  python-enchant_2.0.0-1_all.deb\n37ff35972a03ab63cdf1dc2cc28aff344585b65047cca6049bf29fb0cf9df07b  python-gtksourceview2_2.10.1-3_amd64.deb\n99efe128583941807a667a16d5dcf49b652ae83b03ada620b68d20a8cff90dcd  python-gtk2_2.24.0-6_amd64.deb\n' | sha256sum -c -
sudo gdebi python-enchant_2.0.0-1_all.deb
sudo gdebi python-gtk2_2.24.0-6_amd64.deb
sudo gdebi python-gtksourceview2_2.10.1-3_amd64.deb

A pak už by CherryTree mělo jít nainstalovat z příslušného „deb“ balíčku (pomocí gdebi). (Zkoušel/a jsem to na verzi 0.39.2 od původního autora a na verzi 0.37.6 z repozitáře Ubuntu.)

9
Myslím, že většina výchozích nastavení v Ubuntu je zvolená dobře. Pak jsou tu ale taková, nad kterými mi rozum zůstává stát a měním je skoro po každé instalaci. Zde z nich vybírám deset (dle mého názoru) nejužitečnějších možností, co si můžete změnit (podle mého názoru) k lepšímu:

1. Vypnout černání displeje ve Správě napájení, popř. i zamykání obrazovky

Zatímco zamykání obrazovky je užitečné bezpečnostní opatření a úplné vypínání displeje může mírně snížit příkon, a ušetřit tak trochu elektřiny, jeho pouhé automatické zčernání je dobré jedině pro naštvání uživatele, který právě kopíruje velké množství souborů na flash disk a najednou nevidí, jak je kopírování daleko, nebo mu při sledování filmu nebo jiného videa zhasíná displej každých 5 minut, protože používá přehravač, který to zhasínání neumí potlačit. Zhasínání displeje z uživatelů (podle mého mínění) dělá neurotiky s potřebou neustálé aktivity, nemluvě o tom, jak člověka naštve, když přepíná mezi čtyřmi virtuálními počítači a v každém musí kliknout, případně dokonce zadat heslo, protože se mu tam mezitím operační systém zamknul.

2. Vypnout expanzi historie v .bashrc

Expanze historie je funkce bashe, která v interaktvním režimu nahrazuje výrazy začínající znakem „!“ odpovídajícími příkazy z historie. Ačkoliv jsem ji dlouho používal/a, zjistil/a jsem, že bash nabízí jiné, praktičtější a bezpečnější způsoby přístupu do historie. (Expanze historie opravdu moc bezpečná není − stačí zadat !rm na jiném terminálu, než chcete, a nemůžete si být jistí, co vám to smaže...) Horší však je, že přítomnost této expanze vás nutí escapovat znaky „!“, a to dokonce i ve dvojitých uvozovkách! Přitom ve skriptech (tzn. mimo interaktivní režim) je tato expanze ve výchozím stavu vypnutá, a díky tomu tam můžete znak „!“ používat jako obyčejný znak − bez nutnosti ho jakkoliv escapovat. Vypnutí expanze historie vám umožní totéž i v interaktivním režimu, a pokud expanzi historie používáte (jako dosud já), můžete si pro jednorázovou expanzi nadefinovat funkci „h“.

Expanzi historie v konkrétní instanci bashe vypnete příkazem:
Kód: [Vybrat]
set +HPro trvalé nastavení tento příkaz přidejte na konec vašeho „~/.bashrc“.

Funkce „h“ umožňující jednorázové použití expanze i po vypnutí vypadá takto:
Kód: [Vybrat]
function h() { $(history -p "$@"); }
Příklady použití funkce h:
Kód: [Vybrat]
h !1046
h echo !1046

3. Zvětšit velikost bufferu emulátoru terminálu

V Terminatoru je výchozí nastavení 500 řádků, v Konsoli 1000, další emulátory jsem nezkoumal/a. Ale dle mého názoru jsou tyto hodnoty pro řadu případů nedostatečné, vždyť nestačí ani jen na seznam již nainstalovaných balíčků (kterých je v minimální instalaci cca 1500 a v běžných instalacích i přes 3000). Doporučuji tuto hodnotu nastavit na 8192 řádků; vychází to na zhruba půl mebibajtu RAM na každý pseudoterminál, což je při dnešních gigabajtových pamětech zanedbatelné (jen Firefox běžně zabere třeba 300 MiB), a nové nastavení se vám odvděčí tím, že nebudete tak často přicházet o důležité části výpisu.

4. Vypnout volbu jádra „quiet“, možná i „splash“

Ubuntu je po instalaci nastaveno tak, aby nestrašilo začátečníky výpisy, kterým nerozumí. To je pro distribuci určenou začínajícím uživatelům v podstatě dobré rozhodnutí, ale toto nastavení také může skrýt informace o systému, které budou důležité v případě, že se něco pokazí, a pak je nejspíš budete proklínat.

Změnu nastavení provedete v souboru /etc/default/grub, kde najdete řádek začínající „GRUB_CMDLINE_LINUX_DEFAULT=“ a z uvozovek odstraníte volbu „quiet“ (potlačuje řadu výpisů), popř. i „splash“ (skrývá výpisy obrázkem).

5. Změnit výchozí výzvu bashe

Výchozí výzva bashe obsahuje uživatelské jméno, název počítače a aktuální adresář. Uživatelské jméno a název počítače jsou údaje užitečné především v případě, kdy se (např. přes SSH) přihlašujete na mnoho různých serverů a přecházíte z jednoho terminálu na druhý. Většina dnešních uživatelů ale pracuje především na lokálním počítači a přes SSH se na vzdálené servery připojuje jen občas (pokud vůbec), takže jim nedělá potíže udržet si přehled o tom, pod jakým uživatelským jménem a na jakém počítači pracují. (Drtivá většina desktopových a notebookových instalací Linuxu má v systému pouze jeden obyčejný uživatelský účet.) Jsou informace, které by ve výzvě byly mnohem, mnohem užitečnější − např. návratový kód předchozího příkazu, abyste věděli, zda uspěl, nebo selhal. (Opravdu nechci po každém příkazu vypisovat ještě echo $? .) Užitečný je také aktuální čas a mně osobně se tam líbí označení terminálu, protože mi to umožňuje pohodlně přesměrovat výstup programu z jednoho terminálového okna do druhého. Dokonce mohu nechat vypisovat standardní výstup do jednoho okna a standardní chybový výstup do druhého.

Výzvu bashe byste si měli přizpůsobit sami, aby vám vyhovovala; určitá vodítka, jak na to, můžete najít např. na https://singularis-mzf.github.io/v1/barvy-a-titulek.htm nebo v manuálové stránce bashe.

Návratový kód posledního příkazu (to, co tam nejvíc chybí) si můžete do výzvy provizorně přidat takto:
Kód: [Vybrat]
PROMPT_COMMAND='retval=$?' PS1="\$retval $PS1"
6. Umístit dočasné soubory na ramdisk

Adresář /tmp se ve výchozím nastavení nachází na diskovém oddílu se systémem, což znamená, že všechny dočasné soubory se dříve nebo později zapisují na disk a později je systém zase maže. To je problém zejména v případě, že systémový oddíl se nachází na SSD disku (což je dnes dost běžné), protože tak vzniká velké množství zbytečných zápisů. Mnohem rozumnější mi připadá umísťovat dočasné soubory do paměti RAM, kde je ani nebude potřeba mazat. Stačí jen do souboru /etc/fstab přidat následující řádku:

Kód: [Vybrat]
tmpfs   /tmp    tmpfs   size=10G,rw,nodev,nosuid,mode=1777      0       0
Velikost oddílu by měla být minimálně 4 GiB, optimálně 8 až 10, protože ačkoliv drtivá většina dočasných souborů je drobná, maximálně kilobajtová, některé aplikace jsou schopny si „dočasně uložit“ i gigabajty. Třeba pokud vypalujete dvouvrstvé DVD, vypalovací program si dost pravděpodobně uloží do /tmp celý jeho obraz. Není však problém, pokud bude zvolená velikost větší než fyzická RAM − „tmpfs“ umí využít také odkládací prostor a vždy alokuje jen tolik paměti, kolik opravdu potřebuje, takže při běžném používání zůstane vše v RAM.

7. Vypnout přesunování oken se stisknutou klávesou Alt

Toto se týká především Xfce, ale i některých dalších okenních prostředí. Ve skutečnosti totiž můžete okno vždy přesouvat tažením za titulkovou lištu a většina uživatelů (zvlášť těch přišedších z Windows) to tak dělá. Využití tažení myši se stisknutým Alt pro správce oken navíc koliduje s ovládáním některých programů, např. editoru Inkscape, proto je rozhodně lepší je vypnout.

V Xfce se tato změna provede ve Správci nastavení ve „Vyladění správce oken“ na kartě „Přístupnost“, kde nastavíte „Klávesa pro uchopení a přesun oken“ na „None“.

8. Odinstalovat memtest86+

Ačkoliv je tento malý balíček užitečný (dovede důkladně otestovat paměť RAM), ve skutečnosti hlavně zdržuje − při každém updatu GRUBu (tzn. minimálně jednou po každém upgradu jádra) se zkoumá spolu s další operačními systémy v počítači. Situace je o to horší, že v UEFI režimu tento balíček vůbec nefunguje, takže vás zdržuje při každém upgradu jádra či změně nastavení GRUBu a nic užitečného za to nedostáváte. Odinstalací navíc o možnost otestovat paměť nepřijdete − memtest86+ můžete v legacy-BIOS režimu stále spustit z live DVD, což je dle mého názoru to pravé místo, kam memtest86+ patří.

Kód: [Vybrat]
sudo apt-get purge memtest86+
9. Vypnout či odinstalovat indexační služby

Z nějakého důvodu existuje pro Linux spousta služeb a nástrojů, které skrytě a automaticky procházejí disk a shromažďují údaje o souborech, aby pak uživatel mohl najít soubory kdekoliv na disku. To zní užitečně, jenže problém je, že tyto nástroje zpravidla fungují skrytě a vytvářejí si obrovské (i gigabajtové) databáze na disku. Pokud si k počítači necháte připojené diskové pole s miliardami souborů a necháte ho zapnutý přes noc, je dost možné, že zítra ráno najdete svůj systémový disk beznadějně zaplněný skrytými databázovými soubory, které si vytvořila indexační služba, o které jste dosud ani nevěděli, že ji v počítači máte.

Proto doporučuji odinstalovat „mlocate“ (přestane fungovat standardní linuxový příkaz „locate“) a vypnout Baloo, pokud ho máte nainstalované (sudo balooctl disable ; přestane fungovat vyhledávání v Dolphinu, protože ten na Baloo spoléhá).

Přitom, aby tyto nástroje byly pro uživatele jako já rozumně použitelné, by stačilo tak málo − dát jim příjemné grafické rozhraní a nechat uživatele svobodně nastavit, co a kdy se bude indexovat, a rozdělit databázi na různé segmenty podle uživatelových zájmů a aktivit (nemíchat zdrojové kódy s nainstalovanými programy apod.).

10. Vypnout otravnou výzvu Firefoxu po dlouhodobém nepoužívání

Jedna z otravných věcí ve Firefoxu je, že když spustíte starý virtuální počítač a v něm otevřete Firefox, vyzve vás k resetu profilu, který by odstranil vaše pracně promyšlené nastavení a doplňky a nahradil je výchozím nastavením od Mozilly. Této výzvy se ještě i ve Firefoxu 72 můžete preventivně zbavit, když do souboru „user.js“ v adresáři profilu Firefoxu (kam se obvykle dostanete příkazem „cd ~/.mozilla/firefox/*.default“) přidáte následující řádek:

Kód: [Vybrat]
user_pref("browser.disableResetPrompt", true);
(Poznámka: Zmíněný soubor ve výchozím nastavení neexistuje, pokud ho tedy ještě nemáte, musíte ho vytvořit.)

Do verze 71 šlo tuto volbu přidat i přes grafické rozhraní, ale od verze 72 to graficky možné není (a je otázka, jak dlouho bude vůbec fungovat...).



To je vše. Zajímají mě další takové tipy, takže pokud znáte nějaké jiné výchozí nastavení, které nemůžete vystát, určitě je sem napište. Je to věc názoru, takže vůbec nevadí, když se v něčem neshodneme.

Úprava 21. února 2020: V tipu 6 jsem u ramdisku změnil/a „noexec“ na „nodev“. Narazil/a jsem totiž při upgradu nějakého balíčku na to, že se nějaký skript snažil něco v /tmp spouštět, takže to asi tak úplně vyloučené není a noexec pro /tmp není vhodný.

10
Pracovní prostředí / Druhé grafické sezení
« kdy: 25 Leden 2020, 12:20:21 »
Zdar,

chtěl/a bych si nakonfigurovat systém (Xubuntu 18.04), aby mi spouštěl dvě grafická sezení − jedno výchozí (vt7, DISPLAY=:0.0) a druhé na vt8 s DISPLAY=:1.0. Na obou X-serverech by se měl ukázat lightdm a umožnit přihlásit se na každé virtuální konzoli jako jiný uživatel s jiným okenním prostředím (na výchozím sezení budu chtít vždy Xfce a na druhém by to bylo zatím Xfce a později i KDE nebo MATE).

Zkoušel/a jsem nastavit lightdm podle tohoto návodu: https://askubuntu.com/questions/505120/how-to-enable-second-x-session-on-tty8-in-14-04, ale nefungovalo to. Myslím, že je potřeba nějak nastavit systemd, aby spouštěl dva X-servery, ale příliš dobře se v tom nevyznám.

Nevěděl by někdo z vás, jak na to? Stačilo by, kdyby ten postup fungoval i jen pro lightdm (ačkoliv by asi mělo jít i mít na jednom X-serveru lightdm a na druhém SDDM).

11
Tipy a triky pro Linux / Opravit Ristretto v Xubuntu 18.04
« kdy: 18 Leden 2020, 19:34:49 »
V Xubuntu 18.04 Ristretto nevytváří náhledy obrázků v adresáři, takže pokud ty náhledy ještě nevytvořil jiný program, zobrazuje se místo nich jen nevzhledná ikona chybějícího náhledu.

Tuto situaci jsem úspěšně vyřešil/a „transplantováním“ dvou balíčků z verze Disco Dingo, kde je uvedená chyba již opravená. Na svůj počítač můžete tuto opravu uplatnit následovně:

Kód: [Vybrat]
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/r/ristretto/ristretto_0.8.4-0ubuntu1_amd64.deb'
wget 'http://archive.ubuntu.com/ubuntu/pool/universe/x/xfconf/libxfconf-0-3_4.13.5-1_amd64.deb'
sha256sum *.deb

Nyní ověřite autenticitu stažených balíčků. Musí mít tyto součty:
Kód: [Vybrat]
277ec2d1845a36031c7f1b47b0345291ee1fd67b6ffda54d84f03ed911410252  libxfconf-0-3_4.13.5-1_amd64.deb
d56d681bfa742acd689ab3a425dc04f1ab612c177ccc5c93e6f7b52abe376fbc  ristretto_0.8.4-0ubuntu1_amd64.deb

Balíčky pak nainstalujete takto:
Kód: [Vybrat]
sudo dpkg -i libxfconf-0-3_4.13.5-1_amd64.deb
sudo dpkg -i ristretto_0.8.4-0ubuntu1_amd64.deb

Při dalším spuštění Ristretto by se již měly náhledy vytvářet. Toto řešení používám bez problémů již řadu měsíců v Ubuntu Studio 18.04.

12
Tipy a triky pro Linux / Hezčí výzva příkazového řádku
« kdy: 18 Prosinec 2019, 18:45:28 »
Výchozí výzva PS1 mi moc nevyhovuje a nepřijde praktická, tak jsem si ji vylepšil/a:

Kód: [Vybrat]
__nhcolor () {
test $1 -gt 0 && tput bold
test $1 -eq 1 && tput setaf 1
test $1 -gt 1 && tput setaf 2
}

PROMPT_COMMAND='__RETURN_VALUE=$?'
PS1="\\[$(tput sgr0)\$(__nhcolor \$__RETURN_VALUE)\\]\$__RETURN_VALUE "
PS1+="\\[$(tput sgr0; tput setaf 6)\\]\\A "
PS1+="\\[$(tput sgr0; tput bold; tput setaf 2)\\]\\w"
PS1+="\\[$(tput sgr0)\\]\\\$ "

PS2="\\[$(tput sgr0; tput setaf 2)\\]|\\[$(tput sgr0)\\] "

Asi nejpraktičtější mi na tom připadne ta návratová hodnota z předchozího příkazu (s barevným vyznačením; časem možná přidám ještě smajlíka  ;) ). Následuje aktuální čas (když se nepřipojuji vzdáleně, je to rozhodně užitečnější informace než jméno počítače) a aktuální adresář. A nakonec dolar (resp. mřížku pro superuživatele).

Vedlejší výzvu jsem si změnil/a na zelené svislítko, připadne mi hezčí než ten výchozí znak >.

Zkopírováním do terminálu si nové nastavení můžete vyzkoušet. Trvalým ho učiníte vložením na vhodné místo ~/.bashrc.

Stran: [1]