Různé
Typické "tohle nechci zapomenout" místo :o)
Obsah stránky (hide)
- 1. grub-install - won't fit
- 2. Wireguard
- 3. Postfix debug IP
- 4. Výpis kompletní konfigurace Apache:
- 5. Odhlášení z reklam na webu a podobně
- 6. Kopírování tabulky rozdělení disků
- 7. Dual boot Linux a Windows 10 - EFI chytáky
- 8. bash: cyklus se soubory s mezerou v názvu
- 9. Amavis, Postfix - queue write error
- 10. Icinga2 - Anag: Use API
- 11. Upgrade Debian Buster -> Bullseye
- 11.1 Postup při upgrade
- 12. Upgrade Debian Stretch -> Buster
- 12.1 Dovecot
- 13. grep pro filtrování komentářových a prázných řádků
- 14. ansible, scp SSH Error
- 15. grep na filtrování kousků z logu
- 16. Firefox neukazuje v adrese celou url
- 17. eGroupware - kalendář, pomalé vkládání (calendar slow insert/update)
- 18. Samba: session setup failed: NT_STATUS_INTERNAL_DB_CORRUPTION
- 19. clamav-milter - MailScanner[13153]: p record handling: Loop condition found, aborting file.
- 20. grub: symbol grub_env_find not found
- 21. RAID1 stručně
- 22. Upgrade Wheezy -> Jessie opravdu stručně
- 23. Upgrade Squeeze -> Wheezy opravdu stručně
- 24. Automatické nastavení proxy v Gnome
- 25. Samba + LDAP
- 26. LVM - změna velikosti logické jednotky
- 27. Postup při výměněně disků za větší u raid+lvm.
- 28. ImageMagick - zvětšení plátna do průhlednosti
- 29. Obnova GRUB ze záchranného disku
- 30. Výpadek raid
- 31. Logování na vzdálený stroj
- 32. Jak z chrootu ftp serveru zpřístupnit vně ležící adresář.
- 33. Černý okraj ve FullHD u ATI
- 34. VirtualBox nejede po aktualizaci jádra
- 35. Windows update a proxy
- 36. Hromadné přejmenování souborů z linuxové konzoly
- 37. Power saving mode / out of range
- 38. Windows 8 s chováním Windows 7
- 39. Windows a fdisk -> diskpart, správa disků
- 40. Postfix - práce s frontou
- 41. HTML entity na UTF-8 html-xml-utils
- 42. Najít porušené symbolické linky
- 43. basename, dirname
- 44. LXDE
1. grub-install - won't fit
# grub-install /dev/sdX Installing for i386-pc platform. grub-install: warning: your core.img is unusually large. It won't fit in the embedding area. grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
Reason is using MBR without any else space for Grub. One of:
- efi disk partition
- bios boot partition
Solution brief:
- We need some small space (1MB) on disk
- create disk partition type bios boot
- grub-install again
HOWTO:
The needed tool is gdisk
gdisk /dev/sdX # read MBR formated disk and changes it to GPT in memory for now. 'n' command creates new partition, use type 'ef02' BIOS boot partition 'w' command writes patrition table in GPT format to disk partprobe /dev/sdX # re-reads partition table by system without need for reboot grub-install /dev/sdX # now it it possible
Sources:
- http://www.rodsbooks.com/gdisk/
- https://serverfault.com/questions/963178/how-do-i-convert-my-linux-disk-from-mbr-to-gpt-with-uefi
2. Wireguard
Wireguard
3. Postfix debug IP
- postconf -e debug_peer_list=IP
V logu vypisuje podrobné informace o komunikaci s jednou konkrétní IP.
4. Výpis kompletní konfigurace Apache:
# a2enmod info # apachectl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$" | less
5. Odhlášení z reklam na webu a podobně
Rozšíření pro prohlížeče (Chrome, Firefox,...), který vypne sledování Google Analytics:
https://tools.google.com/dlpage/gaoptout
Odhlášení z reklamních webů:
https://optout.networkadvertising.org/
6. Kopírování tabulky rozdělení disků
Mám dva disky s RAID oddíly. U jednoho jsem rozbil tabulku oddídů. První příkaz udělá zálohu rozdělení disku, druhý příkaz obnoví na druhý disk s tím, že vynechá identifikátory platné pro konkrétní disk: disk label, uuid diskových oddílů. V příkladu je sda správně, sdb je ten rozbitý:
sfdisk --dump /dev/sda > sda.dump grep -v ^label-id sda.dump | sed -e 's/, *uuid=[0-9A-F-]*//' | sfdisk /dev/sdb
7. Dual boot Linux a Windows 10 - EFI chytáky
Týká se Linux Mint 20. 2x jsem na tom strávil den i více:
7.1 Na jednom disku oba - pozor na styl bootování
Systém je GPT/EFI - bootovat z instalační flash taky v EFI. Když nainstaluješ v legacy módu tak poslední krok - instalace zavaděče zkolabuje.
7.2 Dva disky.
Oba musí mít stejný styl bootování. Tedy oba legacy, nebo oba EFI. Pokud jsou Legacy Windows, pak lze použít nástroj mbr2gpt.exe. Je lepší ho spouštět v jakémsi lepším adminstrátorském protředí. V normální konzoli mi to skončilo chybou.
Jde se tam přes Nastavení -> Update & Security -> Reboot. Pak to nabídne pár možností, mezi nimi Troubleshoot -> Advanced -> Command prompt. Tady už to prošlo.
Návod: windowscentral
8. bash: cyklus se soubory s mezerou v názvu
Obvyklé
for NN in $(ls); do ...
nefunguje - soubor s mezerou v názvu je brán jako dvě položky (mezera odděluje položky v seznamu for).
Řešení:
ls | while read NN; do ...
zdroj: http://www.macgeekery.com/tips/cli/handling_filenames_with_spaces_in_bash
Nebo nastavit proměnnout IFS:
IFS=$(echo -en "\n\b")
Nejlépe takto:
https://www.cyberciti.biz/faq/unix-howto-read-line-by-line-from-file/
while read VARIABLE; do # do something with VARIABLE echo "$VARIABLE" done < /path/to/txt/file
9. Amavis, Postfix - queue write error
Postfix sends admin e-mails with this error message. The problem was unsufficient time for amavis checks. Solution: set longer timeout in Postfix.
10. Icinga2 - Anag: Use API
Icinga2 from version 2.10 drop classicui. If we want to monitor Icinga2 from Android app Anag, we have to use Icinga2 API.
First enable api feature from console:
icinga2 api setup
It does for us everything needed automatically.
Then look at new config file /etc/icinga2/conf.d/api-users.conf
where you can modify username and password for api user.
Then you can allow the api to listen on IPv6 too. Add a parameter
bind_host = "::"
into file /etc/icinga2/features-available/api.conf
into ApiListener object section. It enables both IP versions 4 and 6 (not 6 only as would seem).
Check if everything works by curl command first:
curl -k -s -u api_user:passw https://example.com/v1/objects/services
If it works, set up Anag: Create new instance:
- give it some name,
- select type "Icinga 2 API",
- set url: https://example.com:5665/
- set username and password
Save it, test it, use it.
Comment: The reason why you are reading this is that Icinga2 doesn't use IPv6 by deffault (v2.10 October 2018) and Anag author gets not enough money for his work to write good documentatnion. Support him, please :)
11. Upgrade Debian Buster -> Bullseye
https://www.root.cz/clanky/debian-11-bullseye-nove-hasovani-hesel-a-zmeny-mezi-utilitami/ https://www.debian.org/releases/bullseye/amd64/release-notes/ch-upgrading.en.html https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.en.html
- upgrade openssh-server before upgrading the full system - 5.1.23. No new SSH connections possible during upgrade
- incron - mizí
- systemd-timesyncd - nově v samostatném balíčku - doinstalovat
- nové hashe hesel sha512 -> yescrypt. stará hesla budou fungovat nadále
- journalctl standardně zapnut - nyní se zapnul když existoval /var/log/journal/
- přestává fungovat rolování v konzoli. Vyřešit screen nebo tmux.
- tisk a skenování bez ovladačů (balíčky ipp-usb, sane-escl, sane-airscan)
- MariaDB se nespouští jako mysqld, ale mariadbd
- 5.1.22. fail2ban can't send e-mail using mail from bsd-mailx
- OpenJDK 17 (včetně 11)
- usrmerge - /bin -> /usr/bin se zachováním symlinku z /bin. Obdobně sbin, lib,...
- slapd backends - používat mdb, v deb 12 končí bdb, hdb,... - zkontrolovat
Známé chyby:
- fail2ban - krachuje při použítí "mail" z bsd-mailx
- grub-efi-amd64: upgrade works, boot fails (error: symbol `grub_is_lockdown` not found)
- openssh-server: Unable to restart sshd restart after upgrade to version 8.1p1-2 (upgrade předem)
apt security bull vs buster:
deb https://deb.debian.org/debian-security bullseye-security main contrib deb http://deb.debian.org/debian-security/ buster/updates main contrib
11.1 Postup při upgrade
Ansible - konfiguráky, které tam jsou porovnat s novými verzemi v Bullseye a přichystat nové verze.
Příprava stávajícího systému:
- apt update, upgrade - aby byl Buster ve finální podobě, projet Ansiblem
- apt show linux-image-amd64 # tenhle balíček tam musí být, aby se jádro dobře upgradovalo
- dočasně odstranit balíčky, zdroje a preference pro balíčky třetích stran. Vypsat:
- aptitude search '?narrow(?installed, ?not(?origin(Debian)))'
- vyjmout obsolete balíčky. Vypsat:
- aptitude search '~o' # aptitude purge '~o'
- vymazat staré staré konfiguráky. Vypsat:
- find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
- dpkg --audit # kontrola nedoinstalovaných balíčků a tak
- aptitude search "~ahold" # balíčky se stavem "hold"
Jdeme na upgrade:
- nastavit sources.list (je v Ansible), odstranit sources pro Buster
- nainstalovat novější verzi openssh-server (až během full-upgrade by to znemožnilo nová ssh spojení).
- script -t 2>~/upgrade-bullseyestep.time -a ~/upgrade-bullseyestep.script # zaznamenává průběh upgrade (4.4.1. Recording the session)
- apt update
- apt upgrade --without-new-pkgs # minimal upgrade
- apt full-upgrade
Čištění po upgrade:
- aptitude search/purge '~c' # odstranění pozůstalých konfiguráků
- aptitude search/purge '~o' # obsolete
- deborphan --guess-dummy # přechodové balíčky, po upgrade se můžou odinstalovat (ručně zkontrolvat!)
Uvedení do provozu:
- Ansible na novou verzi (-DC)
12. Upgrade Debian Stretch -> Buster
12.1 Dovecot
Mění umístění a názvy certifikátů:
# mv private/dovecot.pem private/dovecot.key # mv dovecot.pem private/
13. grep pro filtrování komentářových a prázných řádků
Pro výpis řádků z konfiguračního souboru plného komentářů používám toto:
egrep -v "^[[:blank:]]*#|^$" soubor
Vypíše jen řádky, které nezačínají znakem # i kdyby před ním byly mezery. Druhý grep ještě vyhodí prázdné řádky. Tohle mi u dlouhých konfiguráků ušetřilo hodně minut mého drahoceného života :)
14. ansible, scp SSH Error
Místo vykonání příkazu zahlásí:
"msg": "ERROR! SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh"
Stroj při přihlášení vrací nějaký text (například u mě to bylo cat TODO) a to scp a potažmo ansible rozhodí.
Machine returns some text after connection (I had cat TODO) and scp/ansible is upset from this. :)
15. grep na filtrování kousků z logu
Například jen to=adresa v mail logu:
grep -o "to=[a-z0-9.-]*\@[a-z0-9.-]*"
16. Firefox neukazuje v adrese celou url
about:config browser.urlbar.trimURLs -> false
17. eGroupware - kalendář, pomalé vkládání (calendar slow insert/update)
Po upgradu z egroupware-1.8 na egroupware-epl-14 zpomalilo vkládání nových záznamů do kalendáře. Příčinou je změna nastavení odesílání pošty. Verze 1.8 měla společné nastavení pro celý egroupware, verze epl-14 má nastavení účtu pro každého uživatele zvlášť. Po přidání události se tak poštovnímu serveru nepředává jeden mail s více adresami, ale tolik mailů, kolik je účastníků.
Je potřeba nastavit odesílání pošty přes Submission, aby se tak obešly případné antivirové a antispamové testy, které celý proces nesmírně prodlužují.
English, briefly: Culprit is e-mailing. Set SMTP in account settings to Submission. This bypasses virus and spam test which may very slow down the process. Version 1.8 had common setting for whole system - it resulted in trasfering one e-mail from egw to MTA. Version epl-14 has one setting for every user - it results in as many tansfers as the number of participant is. If every transfer waits for mail server, it may result in 10 seconds per one mail.
18. Samba: session setup failed: NT_STATUS_INTERNAL_DB_CORRUPTION
Nastalo po upgradu ze Squeeze na Wheezy na serveru s LDAP. V smb.conf nastavit
ldapsam:trusted = no
nebo odstranit (no je default).
19. clamav-milter - MailScanner[13153]: p record handling: Loop condition found, aborting file.
Chybová hláška se objeví v mail.logu a doručování mailů se zastaví. Problém způsobuje direktiva AddHeader v souboru clamav-milter.conf. Nepoužívejte nastavení "replace", místo něj dejte "no". Přijdete o jakousi X-header ve vašich e-mailech, ale získáte funkční mail server :o)
Error message appears in mail.log and mail delivering stops. Problem is caused by AddHeader directive in clamav-milter.conf file. Do not use "replace" setting, instead use "no". You'll lose some X-header in your e-mails, bug you get functioning mail server :o)
20. grub: symbol grub_env_find not found
Entering rescue mode...
Tato hláška se objeví při startu počítače, místo toho, aby grub zobrazil menu. Řešení: Nabootovat z instalačního CD Debianu do rescue režimu, připojit /boot a spustit grub-install.
This message appears when computer starts instead grub to show its menu. Solve: Boot from Debian install CD into rescue mode, mount /boot and run grub-install.
21. RAID1 stručně
http://www.root.cz/diskuse/3379/230109/
22. Upgrade Wheezy -> Jessie opravdu stručně
Tudy prosím: Upgrade Wheezy na Jessie
23. Upgrade Squeeze -> Wheezy opravdu stručně
Tentokrát jsem z toho udělal samostatnou stránku. Takže tudy prosím: Upgrade Squeeze na Wheezy
24. Automatické nastavení proxy v Gnome
Zadání: Máme na serveru spoustu uživatelských účtů. Noví uživatelé potřebují na internet, ale nemají nastavenu proxy. Chci přidat nastavení proxy do skriptu, který přidávám nové uživatele do systému.
V Gnome se proxy nastavuje v menu Systém -> Volby -> Proxy sítě. Nastavení se uloží do dvou souborů:
~/.gconf/system/proxy/%gconf.xml ~/.gconf/system/http_proxy/%gconf.xml
Mělo by tedy stačit tyto dva soubory nakopírovat do příslušných adresářů všech uživatelů.
Změna: Objevil jsem program gcoftool, který tyto volby nastavuje:
gconftool -s /system/proxy/mode auto --type string gconftool -s /system/proxy/autoconfig_url http://172.55.14.33/proxy.pac --type string spusit jako su -c "prikaz" uzivatel
A jak je vidět, obohatil jsem to o automatickou konfiguraci ze skriptu, který je uložen na serveru v souboru /var/www/proxy.pac. Nejstručnější obsah může být:
function FindProxyForURL(url, host) { return "PROXY 192.168.9.251:3128; DIRECT"; }
Obsah je snad srozumitelný.
25. Samba + LDAP
http://www.abclinuxu.cz/blog/mizoun/2009/3/samba-plus-ldap
http://wiki.debian.org/LDAP/NSS
Debian Squeze nepoužívá slapd.conf
, ale vše dává do adresáře slapd.d
. Schémata jsou v adresáři schema
. Po zkopírování samba.schema
do adresáře je potřeba vytvořit LDIF soubor samba.ldif
. Použil jsem tuto fintu:
Vytvořit /etc/ldap/slapd.conf
s tímto obsahem:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/samba.schema
Na pořadí záleží! Pak spustit:
slapcat -f /etc/ldap/slapd.conf -F /tmp -n0 -s "cn=samba,cn=schema,cn=config"
V /tmp
najdeme adresář cn=config/cn=schema
a v něm soubory se schématy v ldif tvaru. Zkopírujeme ten samba.ldif
do /etc/ldap/slapd.d/cn=config/cn=schema/
a nastavíme mu vlastníka/skupinu openldap.openldap. Mělo by to fungovat i bez restartu démona slapd, ale není to pravda, restartujte ho.
Bez "aktivace" samba.ldif dostaneme při spuštění smbldap-populate
řadu těchto ošklivých hlášek:
failed to add entry: objectClass: value #2 invalid per syntax at /usr/sbin/smbldap-populate line 498, <GEN1> line 234.
Pokud vás na tyto stránky navedla tato chybová hláška, pak vítejte v klubu! :-)
Po přidání uživatele pomocí smbldap-add se nejde přihlásit s hláškou NT_STATUS_PASSWORD_MUST_CHANGE. Při přihlášení v Linuxu je to podobné. Problém není se Samba hesly, ale s údajem shadowMax. Ten nastavit na 99999 a je po problému.
26. LVM - změna velikosti logické jednotky
lvextend -L +20G /dev/mapper/grp1-var resize2fs /dev/mapper/grp1-var
Zmenšit se dá opačným postupem, ale diskový oddíl nesmí být připojený (nejde dělat za pochodu). Před zmenšováním je nutno ještě spustit kontrolu diskového oddílu. Pak zjistíme, kolik místa je obsazeno (jede zmenšit na míň;) Pak zmenšíme souborový systém (resize2fs). Pak zmenšíme (ale necháme trochu víc) logický oddíl LVM. Poslední příkaz "dofoukne" souborový systém na plnou velikost logického LVM oddílu - zde 50GB:
e2fsck -fy /home df resize2fs /dev/mapper/gv-home 48G lvreduce -L 50G /dev/mapper/gv-home resize2fs /dev/mapper/gv-home
27. Postup při výměněně disků za větší u raid+lvm.
Návod je na samostatné stránce. Výměda disků za větší u raid + lvm
28. ImageMagick - zvětšení plátna do průhlednosti
convert src-pic.png -gravity southeast -extent 107x29 -fuzz 20% -transparent white dst-pic.png
Na pořadí parametrů záleží!
Nejdříve nastaví, kam posunout původní obrázek na budoucím větším plátně. Dáme rozměry plátna. Fuzz se týká následujícího údaje transparent, který říká kterou barvu zprůheldnit (bílá je automaticky vložena při zvětšování plátna). Fuzz je rozptyl barevnosti od té bílé.
Zjišťováno cca 5 hodin hrubého času.
29. Obnova GRUB ze záchranného disku
Situace: Systém nebootuje, protože nenačte grub ze zaváděcího sektoru. Například po havárii disku v RAID, přičemž na funkčním disku není GRUB nainstalován.
Nabootovat z CD Debianu a přepnout se do konzoly.
mkdir /mnt mkdir /mnt/{boot,dev,proc,sys} mount /dev/sda1 /mnt # to je kořenový systém mount /dev/sda0 /mnt/boot # je-li boot na samostatném oddílu mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys chroot /mnt grub-mkconfig /boot/grub/grub.cfg grub-install /dev/sda
CTRL+D reboot
30. Výpadek raid
Stalo se, že se jeden člen RAID pole odpojil více/méně náhodně. V logu si kernel na něco stěžoval, ale žádný test neukázal chybu na disku. Tak jsem to zas jen připojil:
# mdadm /dev/md1 --remove /dev/sdb2 # mdadm /dev/md1 --re-add /dev/sdb2
Pozor, nezapomenout, že disk je ve stavu "fail", takže je nutné ho nejdříve "vyjmout" a teprve pak znovu-přidat.
31. Logování na vzdálený stroj
Povolíme logujícímu stroji naslouchat na UDP portu 514 v /etc/rsyslog.d/gr-remlog.conf:
$ModLoad imudp $UDPServerRun 514 local3.* /var/log/muljog.log
A nezapomeneme log rotovat v /etc/logrotate.d/gr-remlog.conf:
/var/log/mujlog.log { weekly rotate 5 compress nomail notifempty missingok }
TODO: Někde ještě zajistit, aby nám do logu nemohl zapisovat jakýkoliv cizí vtipálek (iptables, konifgurace rsyslogd...?)
32. Jak z chrootu ftp serveru zpřístupnit vně ležící adresář.
Máme-li uživatele na ftp serveru zamčené v jejich domovském adresáři, není možné jim zpřístupnit nic, co je mimo tento chroot pomocí symbolických linků - ftp server je ignoruje. Řešením je místo linku použít mount:
mount --bind /home/ftp /home/username/ftp
33. Černý okraj ve FullHD u ATI
Problém: Obraz je trochu zmenšený s černým okrajem.
Připojení monitoru HDMI kabelem ke grafické kartě ATI a monitoru Samsung BX2231.
Obraz je zmenšený a na monitoru jsou černé okraje okolo obrazu.
V menu monitoru najít Setup & Reset, PC/AV Mode nastavit na PC.
V Catalist Control Center dát volbu Grafické, Zobrazení a pracovní plochy. Kliknou pravým na malý monitor dole - nastavení. Záložka "možnosti měřitka" a posuvníkem zvětšit na maximum (tj. 0%).
34. VirtualBox nejede po aktualizaci jádra
Po aktualizaci jádra nejde spustit žádný virtuální stroj ve VirtualBoxu. To je tím, že po aktualizaci jádra se nevygenerovaly nové moduly jádra pro VirtualBox. Náprava je jednoduchá:
dpkg-reconfigure virtualbox-ose-dkms
35. Windows update a proxy
Windows update nefunguje přes proxy server, ačkoli je to nastaveno v "nastavení internetu". Je to proto, že to považuje za uživatelské nastavení, ale update je systémová záležitost.
Nejjedodušší řešení je příkaz:
proxycfg -p název_serveru_proxy:číslo_portu
v DOS okně.
36. Hromadné přejmenování souborů z linuxové konzoly
rename 's/\.JPG$/\.jpg/' *.JPG
37. Power saving mode / out of range
Při startu systému se monitor přepne do "power saving mode" a po tušeném startu do X se zobrazí hláška "Out of range".
Řešení: Nastavená hodnota vga= v konfiguraci zavaděče grub2 (lilo?). Odstranit z konfigurace, pak systém naběhne normálně.
38. Windows 8 s chováním Windows 7
Po přihlášení zobrazit plochu a ne Metro (patchwork, dlaždice, nebo jak tomu říkáte):
Na ploše na panelu úloh dole kliknout pravým tlačítekm myši a v nastavení to najít (teď nesedím u stroje s Win8, ale to najdete :)
Nainstalovat http://www.classicshell.net/ - udělá tlačítko "Start", jak jsme "zvyklí" z Win7.
39. Windows a fdisk -> diskpart, správa disků
Když dám ve Windows příkaz "fdisk", tak tam není. Ale je tam příkaz "diskpart", který umí to samé a ještě se mi zdá o něco přehlednější. O držku je to s ním ale taky :-)
Přehlednější s grafickým rozhraním je nástroj "správa disků", který se objeví při kliknutím ptm na ikonu "tento počítač" -> "spravovat".
Pro někoho jsou to samozřejmosti, pro ne-windows adminy špeky. :-
40. Postfix - práce s frontou
mailq
Vypíše všechny maily ve frontě včetně jejich ID.
postcat -q ID | less
Vypíše konktrétní mail. Místo less často stačí head. Parametr -v vypíše další neuvěřitelné podrobnosti.
postsuper -d ID
Vymaže mail z fronty.
postsuper -d ID fronta
Vymaže ze zadané fronty (tj jméno adresáře ve /var/spool/postfix/
postsuper -d ALL fronta
Vymaže VŠECHNY maily za zadané fronty - hodí se pro promazání frotny defer plné "backcatteru" tedy nedoručitelných odpovědí na nadoručitelné maily.
postsuper -d ALL defer postsuper -d ALL deferred
41. HTML entity na UTF-8 html-xml-utils
Dostal se mi do rukou web, kde byly texty zprzněny do html entit. Konvertor, který to umí řešit máme kupodivu v Debianu v balíčku html-xml-utils. Konkrétně je to příkaz hxunent. Balíček obsahuje spoustu dalších utilit.
42. Najít porušené symbolické linky
# find -L /kde -type l
43. basename, dirname
Tyto dva příkazy si prostě potřebuji zapamatovat. Místo basename jsem používal tuto kolonu:
echo $FILE | rev | cut -f1 -d"/" | rev
:-)
44. LXDE
44.1 přepínání klávesnice
Do souboru:
/etc/xdg/lxsession/LXDE/autostart
přidat řádek:
setxkbmap -option grp:switch,grp:alt_shift_toggle cz,us
A na panelu si nastavit applet na přepínání klávesnice.
44.2 přidání klávesové zkratky pro maximalizaci okna Alt-F10
Do souboru ~/.config/openbox/lxde-rc.xml do sekce keyboard (cca ř. 180)
<keybind key="A-F10"> # FullScreen <action name="ToggleMaximizeFull"><dialog>no</dialog><wrap>no</wrap></action> </keybind>