HOWTO - GNU/Linux

Povolení spustit grafické aplikace přes ssh
/etc/ssh/sshd.config, /etc/ssh/ssh.config
X11Forwarding yes

ssh -X uziv@poc
Přepínání cz/en klávesnice
/etc/X11/xorg.conf, /etc/X11/XF86Config-4

Section "InputDevice"
	# ...

	Option		"XkbLayout"	"cz(qwerty),us,ru"
	Option		"XkbOptions"	"grp:shifts_toggle,grp_led:scroll"

#	Option		"XkbLayout"	"cz,us"
#	Option		"XkbOptions"	"grp:shift_toggle,grp_led:scroll"

	# Pokud to nepojede, tak zkusit
#	Option		"XkbOptions"	"grp:shifts_toggle,grp_led:scroll"
EndSection
Rotace obrazu (LCD na výšku)
/etc/X11/xorg.conf (pouze xorg, pod XFree nefunguje)

Section	"Device"
	Option		"RandRRotation"	"on"
EndSection

restartovat X server

xrandr -o right
Barevný prompt v xtermu
/etc/bash.bashrc
~/.bashrc

if [ `id -u` = "0" ]; then
    PS1='[\[\033[01;31m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\]]\$ '
else
    PS1='[\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\]]\$ '
fi

# Nastavení titulku okna na aktuální adresář "\e]2;title\a"
export PS1='\e]2;\w\a[\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\W\[\033[00m\]]\$ '

http://www-128.ibm.com/developerworks/linux/library/l-tip-prompt/
Vylepšení bashe
~/.bashrc

export PS1='[\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\]]\$ '

alias grep='grep --color=auto -s --exclude-dir="\.svn"'
alias ls='ls -hF --color=auto'
alias df='df -h'
alias du='du -h'
alias xterm='xterm -bg black -fg white -fn 9x15'
alias term='aterm -sl 3000 -tr +sb -sr -si -sk -bg black -fg white -cr orange \
      -shading 50 -fn -misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-2'

# Vypne pípání při chybě
[ -z "$DISPLAY" ] && setterm -blength 0 || xset b off
Bash completion
vim /etc/bash.bashrc

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi
Skript při odhlašovaní
# pouze text
~/.bash_logout

# pouze KDE
/usr/bin/startkde (na konci)
Nahrazování řetězců v bashi
[woq@woq ~]$ img='image.png'
[woq@woq ~]$ echo $img
image.png
[woq@woq ~]$ echo ${img%.*}
image
[woq@woq ~]$

http://www.raphink.info/string-edition-in-bash-replacements
Grub s obrázkem na pozadí
/boot/grub/menu.lst

splashimage=(hd0,0)/grub/splashimages/obrazek.xpm.gz

obrazek.xpm.gz musí být 640x480 s indexovanou paletou 14 barev
Grub instalace do MBR
grub-install (hd0)
Framebuffer (parametr vga u specifikace kernelu)
/boot/grub/menu.lst

title           Debian GNU/Linux, kernel 2.6.8-2-k7 (1024x768, 24b)
root            (hd0,0)
kernel          /vmlinuz-2.6.8-2-k7 root=/dev/hda5 ro vga=0x318
initrd          /initrd.img-2.6.8-2-k7
savedefault
boot

# Lenovo ThinkPad R400, 1280x800
vga=871
Colours640x480800x6001024x7681152x8641280x10241400x10501600x1200
4 bits?0x302?????
8 bits0x3010x3030x3050x1610x307?0x31C
15 bits0x3100x3130x3160x1620x3190x3400x31D
16 bits0x3110x3140x3170x1630x31A0x3410x31E
24 bits0x3120x3150x318?0x31B0x3420x31F
32 bits???0x164???
Myš v konzoli
Nainstalovat a spustit démona gpm
Semtelovskej KOS
telnet-ssl -l turekm1 -8 kos.feld.cvut.cz
Balíčky (Debian)
# Apt
apt-get update
apt-get upgrade
apt-cache search fráze
apt-cache show název
apt-get install název
apt-get remove název

# Oprava závislostí
apt-get -f install

# Smaže dřív stáhlý nenainstalovaný balíčky (uvolnění místa na disku)
apt-get clean

# Instalace balíčků v adresáři
dpkg -i *.deb

# Rekonfigurace balíčku
dpkg reconfigure xserver-xfree86

# Rekonfigurace instalačního procesu
base-config

# Seznam všech balíčků + instalace
dpkg --get-selections > pkg_list.txt
dpkg --set-selections < pkg_list.txt
# apt-get install --reinstall `cat pkg_list.txt`

# Instalace z experimentalu
aptitude -t experimental install package1 package2 package3...

### Instalace zdrojového balíčku ###

# Stáhnutí
apt-get source packagename

# Stáhnutí a kompilace
apt-get -b source packagename

# Ruční kompilace
cd packagedir
dpkg-buildpackage -rfakeroot -uc -b

# Instalace
dpkg -i file.deb
http://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html

# Import gpg fingerprintu repozitáře
wget -O - http://deb.opera.com/archive.key | apt-key add -
http://deb.opera.com/

# SIGSEGV - třeba to pomůže
[root@woq ~]# apt-get (něco)
Neoprávněný přístup do paměti (SIGSEGV)

[root@woq ~]# mv /var/cache/apt/pkgcache.bin /var/cache/apt/pkgcache.bin_bak
[root@woq ~]# mv /var/cache/apt/srcpkgcache.bin /var/cache/apt/srcpkgcache.bin_bak


[woq@woq ~]$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
[woq@woq ~]$


# Zjištění, do kterého balíčku patří soubor
[woq@evm bbd]$ apt-cache search makedepend
xutils-dev - X Window System utility programs for development
[woq@evm bbd]$ dpkg -S makedepend
xutils-dev: /usr/bin/makedepend
xutils-dev: /usr/share/man/man1/makedepend.1.gz
[woq@evm bbd]$ dpkg -S /usr/bin/makedepend
xutils-dev: /usr/bin/makedepend

# Informace o balíčku
[woq@evm bbd]$ apt-cache show xutils-dev
Průhledný term, čeština
aterm -fg orange -tr
aterm -sl 3000 -tr +sb -sr -si -sk -bg black -fg white -cr orange\
      -shading 50 -fn -misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-2
Změna HW adresy síťovky
ifconfig eth0 down
ifconfig eth0 hw ether 00:04:61:4D:24:98
ifconfig eth0 up
dhclient

# cat /etc/network/interfaces
allow-hotplug eth0
iface eth0 inet dhcp
hwaddress ether 00:21:86:9E:D5:E0

# Nevyzkoušený
echo "/sbin/ifconfig eth0 hw ether 00:21:86:9E:D5:E0" > /etc/network/if-pre-up.d/change_adress
chmod +x /etc/network/if-pre-up.d/change_adress
OSD u centericq
~/.centericq/external

%action OSD
event msg
proto all
status online away na
options nowait
%exec
#!/bin/sh
echo $CONTACT_NICK | osd_cat \
	-f '-Deja-DejaVu Sans-Bold-r-Normal--0-300-0-0-p-0-iso8859-2' \
	-p bottom -A center -d 1 -O 1 -u white \
GNU/Emacs
# Psychiatr
M-x doctor

# Textovka
M-x dunnet
Virtuální CD-ROM (netestováno)
# Zkopírovat CD (možná /dev/hdX místo /dev/cdrom)
cp /dev/cdrom /tmp/cdrom-image

# Připojit
mount -o loop=/dev/loop0 /tmp/cdrom-image /mnt/cdrom
GRUB konfigurák
# /boot/grub/menu.lst

default		0
timeout		5
color		cyan/blue white/blue

title		Debian GNU/Linux
root		(hd0,6)
kernel		/boot/vmlinuz-2.6.8-2-686 root=/dev/hda7 ro vga=0x318
initrd		/boot/initrd.img-2.6.8-2-686
savedefault
boot

title		Windows XP Professional
root		(hd0,0)
makeactive
chainloader	+1
Swap disků pro Win na /dev/hdb
# /boot/grub/menu.lst

title Windows XP Professional
        map (hd0) (hd1)
        map (hd1) (hd0)
        root (hd1,0)
        rootnoverify (hd1,0)
        makeactive
        chainloader +1
Mountování win filesystému
# /etc/fstab
# Kdokoli může číst i zapisovat, neoznamuje, že nelze změnit práva

/dev/hda8  /mnt/bonus  vfat  defaults,umask=0000,quiet  0  2
/dev/hdb1  /mnt/win_c  ntfs  ro,user,noauto,umask=0000  0  0

http://gentoo-wiki.com/HOWTO_Mount_MS_Windows_partitions_(FAT,NTFS)
Nastavení zprávy, která se vypisuje po přihlášení do systému
/etc/motd
Nastavení aktuálního času
date -s 'Sat Jan 14 16:00 UTF 2006'
date -s 9:20:10

rdate -p time.sh.cvut.cz

# Synchronizace HW hodin
hwclock --systohc
Přidání dalšího WM do menu DM (netestováno)
Do adresáře /usr/share/xsessions/ přidat soubor pekwm.desktop

[Desktop Entry]
Encoding=ISO-8859-2
Name=PekWM
Comment=PekWM
Exec=/usr/local/bin/pekwm
Terminal=False
TryExec=/usr/local/bin/pekwm
Type=Application

[Window Manager]
SessionManaged=true

http://www.abclinuxu.cz/clanky/recenze/fluxbox
sudo
/etc/sudoers

uzivatel pocitac= NOPASSWD: /absolutni/cesta/k/programu
uzivatel ALL= NOPASSWD: /sbin/neco

Spuštění: sudo program

http://www.linuxhomenetworking.com/linux-hn/addusers.htm
Spuštění grafického programu pod jiným userem
gksu -u user program

# Alternativa k su, aby šly vytvářet okna i pod jiným uživatelem
sux
Roury
# Počet uživatelů, kteří se přihlásili od instalace systému
last | cut -c 1-9 | sort | uniq | wc -l

# Kolikrát se přihlásil někdo určitý
last | cut -c 1-9 | grep uzivatel | wc -l

# Musí být vytnuté umazávání starých logů (stačí jenom wtmp)
man logrotate
/etc/logrotate.conf
/var/log/wtmp - loguje přihlašování userů, viz příkaz last
Cron
# dotaz na časované akce
crontab -l

# nový, stane se aktivním hned po uložení
crontab -e

# spuštění při shodě všech položek najednou
# dvě hodnoty se oddělují čárkou, interval pomlčkou
# hvězdička znamená cokoli
# ------------- minute (0 - 59)
# | ----------- hour (0 - 23)
# | | --------- day of month (1 - 31)
# | | | ------- month (1 - 12)
# | | | | ----- day of week (0 - 6) (Sunday=0)
# | | | | |
# * * * * * command to be executed

// Každý den, ve čtyři ráno se spustí aktualizace locate
[root@woq ~/bin]# crontab -e
# m h  dom mon dow   command
  0 4  *   *   *     /usr/bin/updatedb
Miniaturní fonty v Xkách
apt-get install xfonts-base-transcoded
apt-get install xfonts-100dpi-transcoded
apt-get install dejavu

pak vlezes do adresare kde mas fonty
/etc/X11/fonts/misc a v tom adresari das prikaz
mkfontdir [ten ti spravi cesty k fontum]
pak restartuj X-ka [nejspis : ]] ]

			honzik :-)
Instalátor IE do Linuxu
http://www.tatanka.com.br/ies4linux/

./ies4linux --downloaddir ~/down --basedir /opt/ies4linux
            --bindir /usr/local/bin --no-install-flash
Klikátko na výběr distribuce
http://www.zegeniestudios.net/ldc/
Změna kurzoru myši
# ~/.Xdefaults:
Xcursor*theme: whiteglass

# Globálně
[woq@woq /usr/share/icons/default]# ls
default/  handhelds/  redglass/  whiteglass/
[woq@woq /usr/share/icons/default]# vim index.theme
[Icon Theme]
Inherits=redglass

Dají se stáhnout na
http://www.kde-look.org/
Obarvování textu v konzolových skriptech
echo -en "\E[34;1m"
echo "modrou barvou"
tput sgr0
echo "klasicky"
Stáhnutí celého webu
# Pouze na daném serveru
wget -m http://www.neco.cz

# Kompletní stáhnutí webu
wget --mirror --convert-links --html-extension --exclude-directories=forum,member http://www.cplusplus.com/

# I z jiných, do hloubky level
wget -H -r --level=1 -k -p http://www.neco.cz

# Ignoruje robots.txt
-erobots=off --wait 1

# HTTP autorizace
--http-user=user --http-password=password

# Přerušené stahování
wget -c soubor

# Všechny gif obrázky na dané stránce
wget -r -A.gif --level=1 http://server.cz/stranka.html
Backporty balíčků z Debian testing do stable
http://www.backports.org/
Testování slabých uživatelských hesel v systému
# Zákaz příliš krátkých hesel, slovníkových atd. - ověřování u passwd
/etc/pam.d/common-password (na konci)

# Slovníkový hesla - přidat slova do
/usr/share/john/password.lst

/usr/sbin/unshadow /etc/passwd /etc/shadow > passwd.1
/usr/sbin/john passwd.1
/usr/sbin/john -show passwd.1

# Nejmenší priorita
nice -n 19 /usr/sbin/john passwd.1

http://www.openwall.com/john/
cut
# Vypsat první sloupec ze souboru cs.dic a jako oddělovač použít /
cut -f 1 -d / cs.dic

# Počet lidí, kteří si zobrazili něco na webu
cut -f 1 -d ' ' /var/log/apache2/access.log | sort | uniq | wc -l
Velikost složek v adresáři
du --max-depth=1
Speciální proměnné shellu
$$ - PID shellu
$! - PID posledního procesu, který byl spuštěn na pozadí
$? - návratová hodnota posledního dokončeného procesu.
Vygenerování ssh klíče
ssh-keygen -b 4096 -t dsa
mplyer, mencoder
#instalace
# http://www.mplayerhq.hu/# Rozbalit kodeky do /usr/local/lib/codecs
./configure --language=cs
make
cp mplayer mencoder /usr/local/bin


[woq@woq ~/.mplayer]$ cat ~/.mplayer/config
# Nastaveni titulku (cestina, velikost, pozice)
font=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
subcp=cp1250
subpos=100
subfont-text-scale=3.5
[woq@woq ~/.mplayer]$


# Zakázání šetřiče
mplayer -stop-xscreensaver film.avi


# Spuštění filmu ve framebufferu
mplayer -vo fbdev film.avi

# Spuštění filmu s textovým výstupem
mplayer -vo aa film.avi
mplayer -vo caca film.avi

# Výstup z webkamery
mplayer tv://


# Synchronizace titulků a zvuků (při přehrávání pomocí kláves X a Y)
# Titulky můžou být přímo ve filmu, jazyky se pak přepnou pomocí klávesy B
mplayer film.avi -sub subtitles.sub -subdelay počet_sekund

# Průhlednost pozadí titulků
mplayer -sub-bg-alpha 0-255 film.avi


# Screenshot (klávesou S)
mplayer -vf screenshot film.avi


# Ukládání internetových streamů
mplayer mms://somewhere.com/strem.asf -dumpstream -dumpfile stream.asf -vc dummy -vo null
(-dumpaudio | -dumpvideo | -dumpstream)

mplayer mms://somewhere.com/strem.asf -ao pcm:file=stream.wav -vc dummy -vo null
oggenc stream.wav -o stream.ogg


# Spojení několika filmů dohromady
mencoder -oac copy -ovc copy -idx -o whole.mpg 1.mpg 2.mpg

# Oříznutí začátku a konce filmu
mencoder old.avi -ss 00:04:26 -endpos 01:35:59 -ovc copy -oac copy -o new.avi

# Základní konverze
mencoder filename.avi -ovc lavc -oac lavc -ffourcc DX50 -o output.avi

http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html
Titulky
# Spojení dvou dohromady
subs -o vystup.srt cd1.srt cd2.srt

# Přečasování
subs -o vystup.srt -p p1_film  p1_titulky   -p p2_film  p2_titulky   vstup.srt
subs -o vystup.srt -p 00:00:12 00:00:21,283 -p 01:18:21 01:18:31,717 vstup.srt
Příkazy
# Zpráva všem přihlášeným uživatelům
echo "nejaka zprava" | wall

# Informace o uživateli z /etc/passwd
finger uživatel

# Rozdělení souboru
split soubor -b 1440k prefix

# Hledání na disku
find adresář -name soubor

# find all files | grep extensions | remove directories at the begining
find . -type f | grep -G '\.\(.pp\|h\|c\)$' | sed 's/^.*\///'

# Změna kódování souboru
iconv -f staré -t nové

# Diff, merge, patch
diff súbor1 súbor2
merge súbor1 súbor2 súbor3
patch zdrojový_soubor patch_soubor

# Nastavení ledek na klávesnici
setleds +num -caps -scroll

# Testy chyb s pamětí v programu
valgrind program
MS fonty
apt-get install msttcorefonts
apt-get install x-ttcidfont-conf
Screen
^a ?		nápověda

^a c		nové okno
^a n		přepínání oken
^a p		přepínání oken
^a A		nastavení jména okna
^a [číslo]	přepnutí na určité okno

^a d		odpojí screen od terminálu
screen -r	připojení ke screenu
screen -r [pid]	připojení k určitému screenu

^a S		rozdělení okna na víc regionů (částí)
^a TAB		přepíná mezi regiony

screen -x	připojí se k existujícímu screenu (dva lidi vidí to samé)

http://www.abclinuxu.cz/clanky/tipy/gnu-screen
Resource limity (počet procesů, otevřených souborů, paměť...)
ulimit
/etc/security/limits.conf
Diskové kvóty
# Upravit /etc/fstab
/dev/md6        /home           ext3    defaults,quota  0       2

# Není nutný, ale nejjednodušší cesta
shutdown -r now

# Software
apt-get install quota
apt-get install quotatool

# Nastavení kvót všem uživatelům (ve skupině users)
# Soft limit 1GB, hard limit 5GB, grace period 7 dní, libovolný počet souborů
# + Nutné volat quotatool pro každého nově vytvářeného uživatele!
for login in $( cat /etc/passwd | grep '.*:.*:.*:100:.*' | cut -d : -f 1 ); do
       echo $i
       quotatool -u $login -b -q 1000M -l '5000 Mb' /home
done

# Statistiky pro roota
repquota -as

# Statistiky pro uživatele
quota
Forwardování emailů
Do ~/.forward napsat emailovou adresu

# Musí být
chmod go-w $HOME
chmod go-w $HOME/.forward

# Komu budou chodit maily od apache, ftp, security...
/etc/aliases
LaTeX, Beamer (prezentace)
apt-get install latex-beamer
apt-get install latex-ucs

# V /etc/texmf/fmt.d/00tetex.cnf odkomentovat řádky, které začínají na
# cont-cz, csplain, cslatex, pdfcsplain, pdfcslatex

update-fmtutil
texconfig init

pdfcslatex soubor.tex

http://www.abclinuxu.cz/clanky/navody/beamer-latex-na-prezentace
http://www.abclinuxu.cz/clanky/navody/beamer-latex-na-prezentace-2-obrazky-tabulky-skryvani
http://www.debian.cz/users/localization.php
# PDF
\usepackage{hyperref}
\hypersetup{ pdftitle={xxx}, pdfauthor={xxx} }
LaTeX triky
http://www.dd.chalmers.se/latex/tips_e.html
LaTeX - obsah a seznam obrázků na společné stránce
\usepackage{tocloft}
Český slovník pro ispell
apt-get install iczech
České fortunes
apt-get install fortunes-cs
Konfigurace sítě přes dhcp
[woq@woq ~]$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
Screenshot
# Celá plocha
import -window root screenshot.png

# Aktivní okno
import -frame screenshot.png

# Delay
import -delay n/100sekundy -window root screnshot.png

# Vzdáleně
import -window root -display :0 screnshot.png


# PekWM (Scroll_Lock... neobjevil jsem, jak použít PrintScreen/SysRq)
KeyPress = "Scroll_Lock"
{
	Actions = "Exec import -window root /home/woq/tmp/gimp/`date +%F_%H-%M-%S`.png &"
}
KeyPress = "Mod1 Scroll_Lock"
{
	Actions = "Exec import -frame /home/woq/tmp/gimp/`date +%F_%H-%M-%S`.png &"
}
Apache
# Počet procesů
<IfModule prefork.c>
StartServers         5
MinSpareServers      5
MaxSpareServers     10
MaxClients          20
MaxRequestsPerChild  0
</IfModule>
Regulární výrazy
Zápis Význam
a znak a
. libovolný znak
\. znak . (podobně i pro( ) [ ] { } ? + - a další znaky)
[abc0-9] jeden ze znaků a, b, c nebo znak z intervalu 09
[^abc0-9] libovolný znak kromě znaků a, b, c a znaků z intervalu 09
| alternativa (tj. jako + v obyčejných RV)
* iterace předchozího RV (0 až nekonečno)
+ pozitivní iterace předchozího RV (1 až nekonečno)
? podmíněnost předchozího RV (0 nebo 1 krát)
{n} iterace předchozího RV (právě n-krát)
{n,} iterace předchozího RV (alespoň n-krát)
{,n} iterace předchozího RV (nejvýše n-krát)
{m,n} iterace předchozího RV (nejméně m-krát, nejvýšen-krát)
( ) seskupení (pro změnu priority)
^ na začátku RV vzor se musí vyskytovat na začátku prohledávaného textu
$ na konci RV vzor se musí vyskytovat na konci prohledávaného textu
Kontrola disku
badblocks -v -o /root/badbl.txt /dev/hda8
Přidání modulu do Apache
a2enmod userdir
/etc/init.d/apache2 force-reload
Run dialog - Alt+F2
apt-get install gmrun

~/.pekwm/keys

Global
{
#	KeyPress = "Mod1 F2" { Actions = "ShowCmdDialog" }
	KeyPress = "Mod1 F2" { Actions = "Exec gmrun &" }

	# ...
}
Quakovská konzole :D
apt-get install tilda
Rekurzivní grep
grep -r -I 'retezec' ./

-r rekurzivní průchod podadresářů
-I procházet pouze textové soubory
hledaný řetězec
kde začít
Convert, jhead
# Změna velikosti obrázku
convert -sample 1280x1024 input.jpg output.jpg
convert -sample 1280x1024 -quality 90 input.jpg output.jpg

# Animovaný GIF
convert -delay 100 *.png hnusny_blikajici_banner.gif

# Konverze obrázků do jednoho PDF
convert *.jpg soubor.pdf

# Automatická rotace obrázků (v exif musí být uložená orientace)
jhead -autorot *

# Změna data uloženého v exif informacích
exif --tag="Date and Time" --ifd="0" --set-value="YYYY:MM:DD HH:MM:SS" image.jpg
exif --tag="DateTime" --ifd="0" --set-value="YYYY:MM:DD HH:MM:SS" image.jpg
Konzole (Ctrl+Alt+Fx)
vim /etc/console-tools/config

# České znaky místo obdélníčků
SCREEN_FONT=lat2-sun16
SCREEN_FONT_vc2=lat2-sun16
SCREEN_FONT_vc3=lat2-sun16
SCREEN_FONT_vc4=lat2-sun16
SCREEN_FONT_vc5=lat2-sun16
SCREEN_FONT_vc6=lat2-sun16
APP_CHARSET_MAP=iso02

# Zapnutý Num Lock
LEDS=+num
Záložky v mc
ctrl+\ nebo ctrl+4
mc, wget, fetch - hesla k serverům
chmod 0600 ~/.netrc
cat ~/.netrc
machine m1
login l1
password p1

machine m2
login l2
password p2
SVN - subversion
# Vytvoření repozitáře
svnadmin create /absolute/path/to/repos

svn import /tmp/localproj file:///path/to/repos/localproj -m "Initial import"

svn mkdir trunk tags branches
svn commit -m "Create normal infrastructure"

# Checkout do aktuálního adresáře
svn co file:///absolute/path/to/repos
svn co svn+ssh://computer.com/absolute/path/to/repos

# Checkout konkrétní revize
svn checkout -r number file:///path

# Branch
svn copy trunk branches/new_branch -m "New branch"

# Tag
svn copy trunk tags/new_tag -m "New tag"

# Grafický klient
kdesvn
rapidsvn

# Grafický diff
meld
kdiff3

# Backup
svnadmin dump /path/to/reponame > repository.dump
svnadmin create /path/to/reponame
svnadmin load /path/to/reponame < repository.dump
Odstranění .svn podadresářů
find -name .svn -exec rm -rf {} \;
Úplné formátování FAT filesystému
mkfs.vfat -c -v -F 32 -n disk /dev/hdd1

-c spustí badblocks
-v verbose
-F FAT32 se implicitně nevytváří
-n label
Obarvení souborů v ls
eval `dircolors`
LS_COLORS="$LS_COLORS*.JPG=01;35:*.GIF=01;35:*.jpeg=01;35:*.pcx=01;35:*.png=01;35:*.pnm=01;35:*.bz2=01;31:*.mpg=01;38:*.mpeg=01;38:*.MPG=01;38:*.MPEG=01;38:*.m4v=01;038:*.mp4=01;038:*.swf=01;038:*.avi=01;38:*.AVI=01;38:*.wmv=01;38:*.WMV=01;38:*.asf=01;38:*.ASF=01;38:*.mov=01;38:*.MOV=01;38:*.mp3=01;39:*.ogg=01;39:*.MP3=01;39:*.Mp3=01;39"
export LS_OPTIONS='--color=auto'
alias ls='ls $LS_OPTIONS'

dircolors --print-database
ls --color=auto
Nejčastěji používané příkazy v konzoli
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -rn|head -10
Nastavení výchozího WWW prohlížeče v Thunderbirdu
Úpravy - Předvolby - Rozšířené - Obecné - Editor předvoleb

network.protocol-handler.app.http
/usr/bin/opera

network.protocol-handler.app.https
/usr/bin/opera
Thunderbird rozšíření
Display Mail User Agent
XNote
Opera - otevření nového tabu z jiné aplikace
opera -newtab URL
opera -newbackgroundpage URL
Opera - nastavení prostředního tlačítka myši
Tools - Preferences - Shortcuts - Middle click options
Opera - ztmavování stránky při hledání
opera:config#UserPrefs|DimSearchOpacity
České texty v PekWM
// Mělo by to jít vyřešit definicí fontu v tématu, nicméně tohle
// funguje opravdu spolehlivě ;-)

// PFont.cc
void PFont::draw(Drawable dest, int x, int y, const char *text,
    uint max_chars, uint max_width, PFont::TrimType trim_type)
{
    if (text == NULL) {
        return;
    }

    uint offset = x, chars = max_chars;
    bool free_text = false;
    char *real_text = (char*) text;

    char* tmp = real_text;
    while(*tmp != '\0')
    {
        switch(*tmp)
        {
        case 'ú': case 'ů': *tmp = 'u'; break;
        case 'ě': case 'é': *tmp = 'e'; break;
        case 'š': *tmp = 's'; break;
        case 'č': *tmp = 'c'; break;
        case 'ř': *tmp = 'r'; break;
        case 'ž': *tmp = 'z'; break;
        case 'ý': *tmp = 'y'; break;
        case 'á': *tmp = 'a'; break;
        case 'í': *tmp = 'i'; break;
        case 'ó': *tmp = 'o'; break;
        case 'ď': *tmp = 'd'; break;
        case 'ť': *tmp = 't'; break;
        case 'ň': *tmp = 'n'; break;
        case 'Ú': case 'Ů': *tmp = 'U'; break;
        case 'Ě': case 'É': *tmp = 'E'; break;
        case 'Š': *tmp = 'S'; break;
        case 'Č': *tmp = 'C'; break;
        case 'Ř': *tmp = 'R'; break;
        case 'Ž': *tmp = 'Z'; break;
        case 'Ý': *tmp = 'Y'; break;
        case 'Á': *tmp = 'A'; break;
        case 'Í': *tmp = 'I'; break;
        case 'Ó': *tmp = 'O'; break;
        case 'Ď': *tmp = 'D'; break;
        case 'Ť': *tmp = 'T'; break;
        case 'Ň': *tmp = 'N'; break;
        default: break;
        }

        tmp++;
    }

    // ...
}
Konfigurace .Xdefaults
[woq@woq ~]$ cat ~/.Xdefaults
xterm*foreground: white
xterm*background: black
xterm*cursorColor: orange
xterm*visualbell: on
xterm*font: -misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-2

yeahconsole*consoleHeight: 40
yeahconsole*screenWidth: 1020
yeahconsole*xOffset: 120
yeahconsole*stepSize: 0
yeahconsole*toggleKey: None+F1
yeahconsole*handleWidth: 1
yeahconsole*handleColor: white
yeahconsole*cursorColor: orange
yeahconsole*visualbell: on
yeahconsole*font: -misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-2

[woq@woq ~]$ xrdb -merge ~/.Xdefaults
[woq@woq ~]$
Opera flashblock
http://userjs.org/scripts/general/enhancements/hide-objects
Nahrazení mezer a speciálních znaků ve jménech souborů
http://detox.sourceforge.net/
Spojení souborů podle sloupců
[woq@woq ~]$ cat 1.txt
1 0.1
2 0.1
3 0.1
4 0.1
5 0.1
[woq@woq ~]$ cat 2.txt
1 0.2
2 0.2
3 0.2
4 0.2
5 0.2
[woq@woq ~]$ paste 1.txt 2.txt
1 0.1   1 0.2
2 0.1   2 0.2
3 0.1   3 0.2
4 0.1   4 0.2
5 0.1   5 0.2
[woq@woq ~]$ join 1.txt 2.txt
1 0.1 0.2
2 0.1 0.2
3 0.1 0.2
4 0.1 0.2
5 0.1 0.2
[woq@woq ~]$
Odeslání emailů z příkazové řádky
mail -s 'předmět' emailová@adresa.cz < text_emailu.txt
mutt -s 'předmět' -a příloha emailová@adresa.cz < text_emailu.txt
Zamknutí plochy
xscreensaver-command -lock
Je zapnutá OpenGL akcelerace?
# balíček mesa-utils
glxinfo | grep "direct rendering"
xterm fonty
LANG=cs_CZ
-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-2

export LANG=cs_CZ.UTF-8
xterm -fn '-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso10646-1'
Slovník v Opeře
# search.ini

[Search Engine 15]
Name=CZ -> EN
Verbtext=0
URL=http://slovnik.seznam.cz/search.py?wd=%s&lg=cz_en
Query=
Key=ce
Is post=0
Has endseparator=0
Encoding=utf-8
Search Type=0
Position=-1
Nameid=0
Deleted=0

[Search Engine 16]
Name=EN -> CZ
Verbtext=0
URL=http://slovnik.seznam.cz/search.py?wd=%s&lg=en_cz
Query=
Key=ec
Is post=0
Has endseparator=0
Encoding=utf-8
Search Type=0
Position=-1
Nameid=0
Deleted=0

[Search Engine 17]
Name=RU -> CZ
Verbtext=0
URL=http://slovnik.seznam.cz/search.py?wd=%s&lg=ru_cz
Query=
Key=rc
Is post=0
Has endseparator=0
Encoding=iso-8859-2
Search Type=0
Position=-1
Nameid=0
Deleted=0

[Search Engine 18]
Name=CZ -> RU
Verbtext=0
URL=http://slovnik.seznam.cz/search.py?wd=%s&lg=cz_ru
Query=
Key=cr
Is post=0
Has endseparator=0
Encoding=iso-8859-2
Search Type=0
Position=-1
Nameid=0
Deleted=0
SW Raid
# Vytvoření
mdadm --create /dev/md0 --level=raid5 -raid-devices=4 /dev/hdb1 /dev/hdb2 /dev/hdd1 /dev/hdd2
mkfs.ext3 /dev/md0

# Vlastnosti
mdadm --detail /dev/md0

# Odstranění vadného disku
mdadm --fail /dev/md0 /dev/hdb2
mdadm --remove /dev/md0 /dev/hdb2

# Nahrazení vadného disku
mdadm --add /dev/md0 /deb/hdb2

# Uložení informací o raid, kvůli restartu
echo "DEVICE partitions" > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
echo "MAILADDR root" >> /etc/mdadm.conf

Změna hlasitosti z příkazové řádky
# Na padesát procent
aumix -v 50

# O pět procent více
aumix -v +5

# O pět procent méně
aumix -v -5

# ~/.pekwm/keys
KeyPress = "Shift F11" { Actions = "Exec aumix -v -2 &" }
KeyPress = "Shift F12" { Actions = "Exec aumix -v +2 &" }
Zobrazení změny hlasitosti pomocí OSD
# Spustit po spuštění správce oken
osdsh &
(sleep 1 && osdctl -m 1) &
Poslání zprávy přihlášenému uživateli
who

echo 'test' | write uživatel terminál
CVS
# login
# SET HOME=path
cvs -d :pserver:servername:/path login

# checkout (MM/DD/YYYY)
cvs -d:pserver:username@servername:/path co -r REVISION_NUMBER path
cvs -d:pserver:username@servername:/path co -r TAG -D "MM/DD/YYYY HH:SS" path

# release tag
cvs -d:pserver:username@servername:/path rtag -r BRANCH NEW_TAG path

# branch tag
cvs -d:pserver:username@servername:/path rtag -r BRANCH -b NEW_BRANCH path

# commit
cvs ci -m "message" path

# update
cvs update path

# revision remove
cvs admin -o revision path
Nastavení práv pro vstup do adresáře a všech jeho podadresářů
chmod -R +X *

man: "execute only if the file is a directory or already has execute
permission for some user (X)"
mkdir, cd
function mcd() { mkdir -p "$1" && cd "$1"; }
Konverze .ps do .pdf
ps2pdf soubor.ps
Instalace nových databází slov do StarDict
Rozbalit data do /usr/share/stardict/dic

http://www.pc-guru.cz/anglicko-cesky-slovnik-zdarma-stardict-linux
http://stardict.sourceforge.net/
http://stardict.sourceforge.net/Dictionaries_ru.php
Filesystém v souboru
# 30 GB, 0% for root
dd if=/dev/zero of=/filesystem bs=1024 count=30000000
losetup /dev/loop0 /filesystem
mkfs -t ext2 -m 0 -v /dev/loop0
mkdir /mnt/loop
mount -t ext2 /dev/loop0 /mnt/loop

umount mntdir
losetup -d /dev/loop0

# /etc/fstab
/filesystem /mnt/loop  ext2  loop,noauto  0  0
Formátování nového disku
# -cc readwrite test
# -L label
# reserve 1% for user root
mkfs.ext3 -cc -L data -m 1 /dev/sdb1
Změna rozložení klávesnice
setxkbmap us
setxkbmap cz qwerty
setxkbmap ru cv
setxkbmap ru phonetic
Redefinice kláves
# Monitorování událostí X serveru
xev

# Výpis mapy kláves
xmodmap -pm
xmodmap -pk
xmodmap -pke

# ThinkPad R400
227 = Fn
174 = snížení hlasitosti
176 = zvýšení hlasitosti
115 = LWIN
227 = RWIN
234 = vlevo od šipky nahoru
233 = vpravo od šipky nahoru

# Nastavení nových významů kláves
xmodmap -e 'keycode 234 = KP_Subtract'
xmodmap -e 'keycode 233 = KP_Add'
Defaultní nastavení systému
update-alternatives --config qmake

# GUI
galternatives
	x-cursor-theme
	www-browser
	x-terminal-emulator
	x-www-browser
	gnome-www-browser
# cat /etc/fstab
/dev/mmcblk0p1  /mnt/mmc  vfat  user,noauto  0  0
Informace o hardware v počítači
hwinfo
Potlačení detailů při bootování
[woq@woq ~]$ cat /boot/grub/menu.lst | grep quiet
# defoptions=quiet vga=0x0318
kernel          /boot/vmlinuz-2.6.26-1-686 root=/dev/sda5 ro quiet vga=0x0318
[woq@woq ~]$
Konverze iso-8859-2 souborů na utf-8
for filename in *.txt ;
do
	echo "$filename"
	iconv --from-code=ISO-8859-2 --to-code=UTF-8 $filename > utf_$filename
done
Ovladače grafické karty na ThinkPad R400
# /etc/X11/xorg.conf
Section "Device"
        Identifier      "Configured Video Device"
        Driver          "intel"
EndSection

[woq@evm ~]$ glxinfo | grep direct
direct rendering: Yes
[woq@evm ~]$ xrandr | head -n3
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1280 x 1280
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
[woq@evm ~]$
Vypnutí touchpadu
# /etc/X11/xorg.conf
Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"
        Option          "HorizScrollDelta"      "0"
        Option          "SHMConfig"             "on"
EndSection

# Zapnutí vypnutí
synclient TouchpadOff=1
synclient TouchpadOff=0

# Automatické vypnutí během psaní
syndaemon -t -d

http://www.root.cz/clanky/jak-si-pri-psani-na-notebooku-vypnout-touchpad/
sftp
[woq@evm ~]$ sftp user@server
sftp> ls
sftp> cd directory
sftp> put local/filesystem/path/file
sftp> exit
[woq@evm ~]$
# Chyba při bootování
/usr/bin/mysqlcheck: Got error: 1045: Access denied for user
'debian-sys-maint'@'localhost' (using password: YES) when trying to connect

# Zjištění hesla
cat /etc/mysql/debian.cnf

# Nastavení práv
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION;
Záloha MBR disku
# Záloha
dd if=/dev/hda of=mbr.backup bs=512 count=1

# Obnovení celého MBR
dd of=/dev/hda if=mbr.backup bs=512 count=1

# Obnovení MBR bez tabulky oddílů
dd of=/dev/hda if=mbr.backup bs=1 count=446

# bootloader 446 bytů
# partitition table 4x16 bytů (64 bytů)
# checksum 2 byty
Nahrazení HTML entit za znaky
recode html..utf8 <<< '&–&'
Soubory v home, které nepatří aktuálnímu uživateli
# Nalezení
find ~ ! -user ${USER}

# Automatické nastavení práv
find ~ ! -user $USER -exec sudo chown ${USER}:"{}" \;

http://www.tuxradar.com/content/command-line-tricks-smart-geeks
Vzdálené ovládání MPlayeru :-O
mkfifo ~/mplayer-control
mplayer -slave -input file=/home/user/mplayer-control
filetoplay

echo "pause" > ~/mplayer-control

ssh user@host "echo pause > mplayer-control"

http://www.tuxradar.com/content/command-line-tricks-smart-geeks
Změna portu SSH serveru
/etc/ssh/sshd_config
Listen port_number

ssh -p port_number
~/.ssh/config
Přehrání mp3 adresáře v náhodném pořadí
~/.bashrc
alias mplayer_mp3='mplayer `ls -1 *.mp3 | shuf`'
Šifrování a skrývání souborů
# Šifrování
tar -c file1 file2... | ccencrypt > stuff
ccdecrypt < stuff | tar x

# Zapouzdření do jiného souboru
steghide embed --embedfile stuff --coverfile img_1416.jpg
steghide extract --stegofile img_1416.jpg

http://www.tuxradar.com/content/command-line-tricks-smart-geeks
PID procesu
ps aux | grep program
pidof program
Zpřístupnění souborů v aktuálním adresáři přes HTTP
python -m SimpleHTTPServer port
Hibernate, suspend
/etc/default/acpi-support
Alternativní DNS
/etc/resolv.conf

#OpenDNS
nameserver 208.67.222.222
nameserver 208.67.220.220

# Google Public DNS
nameserver 8.8.8.8
nameserver 8.8.4.4

http://petrkrcmar.blog.root.cz/2009/12/22/jak-a-k-cemu-alternativni-dns-server/
Hex editor
http://wxhexeditor.sourceforge.net/
Ascii diagramy
http://www.asciiflow.com/http://ditaa.org/
Konverze HTML stránky do PDF
http://web2pdfconvert.com/http://www.alistapart.com/articles/boom

Copyright © 2001-2011 Michal Turek <WOQ (zavináč) seznam.cz>
Valid XHTML 1.0 Strict, Valid CSS