Jak najít skryté okno v X Window System

V případě, že se vám v desktopovém prostředí postaveném nad X nedaří zobrazit okno spuštěné aplikace (např. kvůli kombinaci nastavení programu devilspie a nastavení konkrétní aplikace, kde si zatrhnete volbu skrýt ikonu v oznamovací oblasti/system tray), je možným řešením postupovat dle níže uvedeného návodu.

wmctrl a xdotool

Pokud tyto nástroje váš systém již neobsahuje, bude potřeba je nejdříve nainstalovat:

apt-get install wmctrl xdotool

Zobrazení seznamu spuštěných oken přes X

Nyní si již můžeme zobrazit seznam spuštěných oken pomocí aplikace wmctrl:

wmctrl -l

Mělo by nám to zobrazit výstup v podobném formátu:

0x01800006 -1 ambroz-notebook x-caja-desktop
0x028000a2  0 ambroz-notebook Inbox - mail@domena.koncovka - Icedove Mail/News
0x0400000a  0 ambroz-notebook uzivatel@pc: ~

Zobrazení konkrétního okna

Z uvedeného výstupu, který nám aplikace wmctrl vrátila, je již pak možné si pomocí zjištěného ID konkrétní okno zobrazit a to pomocí aplikace xdotool. Např.:

xdotool windowactivate '0x028000a2'

Publikováno 14.6.2016 v 08:59 | Kategorie: Linux

Jak vypsat konkrétní text ze souboru

Velice užitečným nástrojem v Linuxu pro práci s textem je určitě awk v kombinaci s dalšími nástroji jako je grep apod. Vždycky se hodí možnost vypsat nějakou konkrétní věc z textového souboru aniž bychom to museli dělat manuálně. Ukažme si pár příkladů.

Nalezení textu a následně vypsání jeho konkrétní části

Ve skriptech se budeme držet přístupu, že vždy první část najde daný soubor nebo vypíše různou informaci a druhou částí pomocí awk vyfiltrujeme přesný výsledek, který chceme vypsat.

Vypsání cesty k DOCUMENT_ROOT

Řekněme že si budeme chtít vypsat cestu ke kořenovému adresáři (DocumentRoot) Apache pro nějaký konkrétní web/virtualhost v operačním systému Debian. Udělat to můžeme například tak, že si pomocí příkazu cat zobrazíme celý obsah virtualhosta (záleží na vás jak je máte pojmenované, v příkladu používám domena.koncovka.conf), pomocí grep vypíšeme řádku která obsahuje DocumentRoot a pomocí awk vypíšeme již konkrétní cestu, která se zobrazuje na druhém místě v textu:

#!/bin/bash
cat /etc/apache2/sites-available/domena.koncovka.conf | grep DocumentRoot | awk '{print $2}'

Výsledek, který nám to zobrazí pak může vypadat nějak takto:

/var/www/html/domena.koncovka

Vypsání velikosti adresáře

Jako další příklad si můžeme vypsat velikost konkrétního adresáře, kdy budeme chtít aby se nám vrátila pouze daná velikost. Provést to můžeme např. pomocí příkazu du a výsledek vyfiltrujeme pomocí awk, kdy v tomto případě zobrazí pouze první část výsledného textu:

#!/bin/bash
du -hs /var/www/html/domena.koncovka | awk '{print $1}'

Výsledný text pak může vypadat třeba takto:

1.4M

Publikováno 8.6.2015 v 03:25 | Kategorie: Linux

Smazání adresářů, které vytváří Windows

MS Windows při přístupu na pevné disky na nich vytváří adresáře RECYCLE.BIN a System Volume Information. Určitě existuje způsob jak korektně zajistit aby tyto adresáře vytvářeny nebyly nebo to lze v MS Windows nějakým způsobem zakázat, ale jelikož tento operační systém téměř nepoužívám a nechce se mi to sáhodlouze hledat, napsal jsem si v Linuxu jednoduchý skript, který spouštím při každém startu systému.

Skript pro mazání adresářů

Jedná se o jednoduchý skript, který má tento obsah:

#!/bin/bash

#e-mail na který bude odeslána informace o vykonání skriptu
EMAIL=email@domena.koncovka

#definování cest k diskům
DISK1=/media/disk1
DISK2=/media/disk2
DISK3=/media/disk3
DISK4=/media/disk4

#smaže adresáře na prvním disku
cd $DISK1
rm -rf *RECYCLE.BIN
rm -rf System\ Volume\ Information

#smaže adresáře na druhém disku
cd $DISK2
rm -rf *RECYCLE.BIN
rm -rf System\ Volume\ Information

#smaže adresáře na třetím disku
cd $DISK3
rm -rf *RECYCLE.BIN
rm -rf System\ Volume\ Information

#smaže adresáře na čtvrtém disku
cd $DISK4
rm -rf *RECYCLE.BIN
rm -rf System\ Volume\ Information

#odešle e-mail s informací o vykonání skriptu
echo "Provedeno smazani RECYCLE.BIN a System Volume Information ze vsech disku kam MS Windows pristupuje: $DISK1, $DISK2, $DISK3 a $DISK4" | mail -s "Smazan RECYCLE.BIN a System Volume Information" $EMAIL

Publikováno 21.5.2015 v 16:02 | Kategorie: Linux