===== Instalacja GRUB z płyty live =====
Zamontować katalogi przed chroot
<code>
mount --bind /dev /mnt/backup/dev
mount --bind /proc /mnt/backup/proc
mount --bind /sys /mnt/backup/sys

chroot /mnt/backup /bin/bash
</code>
Naprawić szukanie obrazu suspend/resume\\
Wstawić właściwy UUID (blkid) do **/etc/initramfs-tools/conf.d/resume**\\
Uruchomic **update-initramfs -u**

===== Zmiana numerów ethX =====
Wyłączyć w konfiguracji 
W katalogu **/etc/systemd/network/** utworzyć plik, np. 10-eth0.link
<code>
[Match]
MACAddress=aa:aa:aa:00:af:7b

[Link]
Name=eth0
</code>

===== Wyłączenie buforowania w PHP - Smarty =====
W pliku **Smarty.class.php** ustawić
<code>
public $force_compile = true;
</code>
===== Ubuntu - przywrócenie nazw interfejsów ethX =====
W pliku /etc/default/grub dopisać
<code>
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
</code>
Po tym wykonać **update-grub**

===== Pasek postępu =====
Wersja z dopasowaniem pierwszej wartości, jedna kreska to dwie podziałki. Inna wersja w dziale RaspberryPi.
<code>
#!/bin/bash

for i in $(seq 0 2 104)
do
        echo -n '-'
done
echo
echo -n '0 '
for i in $(seq 2 2 100)
do
    if [ $((i%10)) -eq 0 ]; then
        echo -n $i
    fi
    if [ $((i%10)) -gt 3 ]; then
        echo -n ' '
    fi
done
echo

for i in $(seq 0 2 100)
do
    if [ $((i%10)) -eq 0 ]; then
        echo -n '|'
    else
        echo -n ' '
    fi
done
echo

read val

fval=`echo $val | grep -o "[0-9]\+" | head -n1`

for i in $(seq 0 2 $fval)
do
    echo -n '|'
done
echo

for i in $(seq 0 2 104)
do
        echo -n '-'
done
echo
</code>


===== Wpis do CRON-a dla NTP bez generowania maili =====
<code>
* *    * * *   /usr/sbin/ntpdate pl.pool.ntp.org > /dev/null 2>&
</code>


===== Włączenie odpowiadania MACiem tylko przez interfejs, który go posiada =====
<code>
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
</code>

===== Klient DHCP w xPUD =====
  * udhcpc

===== Czyszczenie tablicy partycji =====
<code>
wipefs --all /dev/sdX
</code>
===== Parametr GRUB do uruchomienia w danym trybie =====
  * W linijce linux dopisać 
<code>
systemd.unit=multi-user.target
</code>

===== Zmiana domyślnego trybu uruchamiania z systemd =====
  * Tryb tekstowy
<code>
systemctl set-default multi-user.target
</code>
  * Tryb graficzny
<code>
systemctl set-default graphical.target
</code>


===== Wyłączanie interfejsu po odłączeniu kabla =====
Aby wyłączyć automatyczne opuszczenie interfejsu po odłączeniu kable należy zatrzymać usługę wicd
<code>
service wicd stop
</code>


===== Klawisz TAB pod XFCE przez VNC =====
W pliku **.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml** zakomentować wszystkie wpisy **<Super>Tab**


===== Zmiana nazwy pena =====
<code>
dosfslabel /dev/sdb1 MOJA_NAZWA 
</code>
===== Wygaszanie ekranu w terminalu =====
Dopisać w pliku /etc/default/grub
<code>
GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=0"
</code>
===== Błąd przy uruchomieniu ustawień klawiatury w XFCE przez VNC =====
Podmienić plik ~/.vnc/xstartup na poniższy
<code>
#!/bin/sh

# Uncomment the following two lines for normal desktop:
 unset SESSION_MANAGER
 exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
</code>

===== Konfiguracja Grub2 do uruchamiania bez monitora =====
W pliku */etc/default/grub* dopisać do linii
<code>
GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"
</code>

===== Włączenie ignorowania powtórzeń w historii bash'a =====
W pliku
<code>
/etc/bash.bashrc
</code>
dodać linijkę
<code>
export HISTCONTROL=ignoredups
</code>

===== Speedtest w bashu =====
1. Na początek musimy zainstalować python-pip (narzędzie służy do instalacji i zarządzania pakietami Pythona). W terminalu wpisujemy:
<code>
    sudo apt-get install python-pip
</code>
2. Teraz zainstalujemy speedtest-cli przy pomocy narzędzia python-pip:
<code>
    sudo pip install speedtest-cli
</code>
3. Jeżeli chcemy teraz sprawdzić prędkość naszego łącza wpisujemy w terminalu:
<code>
    speedtest
</code>

===== Ładowanie biblioteki mcrypt w php5 =====
<code>
php5enmod mcrypt
</code>

===== Dodawanie statycznej trasy przez DHCP =====
W pliku dhcpd.conf dodać:
<code>
rfc_routes option code 121 = array of integer 8; 
no_rfc_routes option code 249 = array of integer 8;
</code>

W sekcji //subnet//
<code>
option rfc3442-classless-static-routes 24, 192, 168, 3, 0, 0, 0, 0, 0, 192, 168, 1, 1;
option ms-classless-static-routes 24, 192, 168, 3, 0, 0, 0, 0, 0, 192, 168, 1, 1;
</code>
Składnia parametrów:\\
//<maska> <brama>//\\
Na końcu musi być dodana brama domyślna (//0 <adres bramy>//).\\
Brama //0.0.0.0// oznacza //on-link//.

===== Program do sprawdzania zajętości dysku =====
ncdu

===== Zmiana limitu ilości monitorowanych katalogów =====
Tymczasowo:
<code>
echo 100000 > /proc/sys/fs/inotify/max_user_watches
</code>
Na stałe: do pliku ///etc/sysctl.conf// dodać linie
<code>
fs.inotify.max_user_watches=100000
</code>

===== Uruchamianie aplikacji 32-bitowych =====
Zainstalować pakiety:
<code>
lib32z1
</code>

=====Stare notatki =====
Wpis w /etc/fstab dla partycji NTFS
<code>/dev/hda1       /mnt/windows_c  ntfs    ro,user,noauto,umask=0000          0</code>
----
Pętla for w bashu dla wszystkich plików w katalogu
<code>
#!/bin/bash
for i in $( ls ); do
   echo item: $i
done
</code>
----

Montowanie zasobów Novella.\\
Potrzebny pakiet **ncpfs**.\\
Przykład
<code>
ncpmount -S profi -A 192.168.1.50 -U użytkownik -P hasło -V vol novell/
</code>
Z polskimi znakami dla locali w UTF8
<code>
ncpmount -S profi -A 192.168.1.50 -U PawelSz -V vol -p cp852 -y utf8 novell/
</code>
----
Pakiet potrzebny do udostępniania plików w KDE: **kdenetwork-filesharing**

----
Polecenie do zmiany informacji w katalogu publicznym w EKG: **change**
----

Montowanie zasobów Samby z polskimi znakami
<code>mount -o iocharset=iso8859-2,codepage=cp852 //komputer/katalog punkt_monotwania</code>
----
Zamiana tekstu w całym pliku:
<code>sed 's/co_zamieniamy/na_co_zamieniamy/g' plik > nowy_plik</code>
----
Dodawanie dowiązań symbolicznych do skryptów startowych
<code>update-rc.d -n niceshaper defaults 44</code>
----
Budzenie przez sieć (wake-on-lan).\\
Przed wyłączeniem linuksa (poweroff) trzeba ustawić sieciówkę, żeby można ponownie obudzić komputer. Polecenie
<code>ethtool -s eth0 wol g</code>
Jeśli się tego nie zrobi, komputer nie będzie reagował na budzenie.
----
Wysyłanie wiadomości Winpopup z Samby (w XP musi być włączona usługa Posłańca)
<code>echo "Przykladowy tekst" | smbclient -M odbiorca -U nadawca</code>
----
Wykonywanie polecenia dla każdej linijki w pliku
<code>cat tekst | xargs -n1 ./test</code>
----
Przekierowanie wyjścia błędów
<code>polecenie 2> plik</code>
----
Operacje z obrazami dysków\\
Tworzenie:
<code>
dd if=/dev/fd0 of=obraz.img bs=1k
dd if=/dev/cdrom of=obraz.iso bs=1k
mkfs.vfat plik.img
</code>
Montowanie:
<code>
losetup /dev/loop0 obraz.img
mount /dev/loop0 /mnt -t vfat
umount /mnt
losetup -d /dev/loop0
</code>
----
Obserwacja wyniku polecenia
<code lang="bash">
watch polecenie
</code>
Przykład 
<code>
watch w
</code>
----
Tworzenie obrazów iso
<code>
mkisofs -J -D -r -o obraz_cd katalog/ -V nazwa_płyty
</code>
Montowanie obrazów iso
<code>
mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
</code>
----
cdrecord\\
Kasowanie płyty:
<code>
cdrecord blank=fast
</code>
Nagrywanie
<code>
cdrecord obraz.iso
</code>
Trochę informacji znajduje się na [[http://www.cs.put.poznan.pl/csobaniec//CDR/index.html]]
----
Sudo, edycja za pomocą polecenia visodu. To trzeba dodać, żeby uruchamiać program jako ktoś inny bez podawania hasła
<code>
kto        ALL=(jako_kto) NOPASSWD: /scieżka/do/programu
</code>
----
Musi być załadowany odpowiedni moduł. Dla dynamicznego skalowania jest to cpufreq_ondemand. Potem trzeba ustawić odpowiedniego menadżera, tj:
<code>
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
</code>

----

Polski układ klawiatury ze standardowo działającym klawiszami //Alt//.
Polskie litery pisane są za pomocą klawiszy //Win// i //Menu// (bo ja mam tylko lewy klawisz //Win//).

Zawartość pliku /etc/X11/xorg.conf
<code>
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc104"
        Option          "XkbLayout"     "pl"
        Option          "XkbOptions"    "altwin:meta_alt,lv3:win_switch,lv3:menu_switch,eurosign:5"
EndSection
</code>

Szczegóły
^ Opcja ^ Działanie ^
| altwin:meta_alt | oba klawisze //Alt// działają jako //Alt// |
| lv3:win_switch  | oba klawisze //Win// działają jako //AltGr// |
| lv3:menu_switch | klawisz //Menu// działa jako //AltGr// |
| eurosign:5      | kombinacja //Win// + 5 daje znak € |

----
Dodawanie bramy domyślnej
<code>
route add default gw ip_bramy
</code>
Dodawanie bramy
<code>
route add -net ip_sieci netmask maska gw ip_bramy
</code>
----

Pobieranie adresu IP z serwera DHCP
<code>
dhclient eth0
</code>

----

Uruchamianie aplikacji w nowym serwerze Xów
<code>
DISPLAY=:1
sudo X -once -auth .Xauthority $DISPLAY &
tremulous
</code>
----
Łączenie plików PS
<code>
%!PS
% Written by Helge Blischke, see
% http://groups.google.com/groups?ic=1&selm=3964A684.49D%40srz-berlin.de
%
% The following 2 procs encapsulate the jobs to be processed
% much as is done with EPS images:
/_begin_job_
{
        /tweak_save save def
        /tweak_dc countdictstack def
        /tweak_oc count 1 sub def
        userdict begin
}bind def

/_end_job_
{
        count tweak_oc sub{pop}repeat
        countdictstack tweak_dc sub{end}repeat
        tweak_save restore
}bind def

% Now, add your jobs like this:
_begin_job_
(c:\\tilap\\file1.ps)run
_end_job_

_begin_job_
(c:\\tilap\\file2.ps)run
_end_job_

% and so on.
</code>
----
Rozpoznawanie kodowania:
<code>
konwert any/pl-test plik
</code>
----
Pobieranie kluczy do repozytoriów
<code>
$ gpg --keyserver subkeys.pgp.net --recv-keys KLUCZ
$ gpg --armor --export ID_KLUCZA | sudo apt-key add -
</code>
----
Automatyczna konfiguracja IP. Pakiet **zeroconf**
----
**Polskie znaki w zasobach smb w /etc/fstab** - nie może być w opcjach ''user'' lub ''users''.
----
Nadawanie uprawnień zasobom Novella
<code>
nwgrant -o użytkownik -t 1 -r [uprawnienia] Katalog
</code>
----
Edycja PDF-ów: **pdftk**
----
Włączanie swapu:
<code>
mkswap /dev/hda2
swapon /dev/hda2
</code>
Wpis w ''/etc/fstab''
<code>
/dev/hda5       none            swap    sw              0       0
</code>
----
Program do przerabiania kodowania znaków i wielkości liter - **convmv**
----
Długość sesji w php (przechowywanie zmiennych sesji po stronie serwera). W pliku **/etc/php5/apache2/php.ini**
<code>
session.gc_maxlifetime = 1440
</code>
----
Zrzut zawartości pakietów
<code>
tcpdump -i eth0 host 192.168.1.xxx -A -s 512
</code>
----
Usunięcie zdublowanych spacji, zamiana na przecinek, wyświetlenie jednej kolumny
<code>
df | grep /archiw | tr -s '[:space:]' | tr '[:space:]' , | cut -d, -f5
</code>
----
Uruchamianie polecenia dla każdego pliku w katalogu
<code>
find tmp/* -print0 | xargs --null -n1 ./polecenie
</code>
Zmiana rozmiaru obrazków
<code>
find *.jpg -print0 | xargs --null -n1 -i convert {} -resize 100x100 ./min/{}
</code>
----
Zmiana na stałe wiadomości powitalnej (plik **/etc/motd**). W pliku **/etc/rcS.d/S55bootmisc.sh** zakomentować fragment **Update motd**
----
Dodanie Windowsa do GRUB2.\\
W katalogu **/etc/grub.d/** dodać plik 11_windows
<code>
#! /bin/sh -e
echo "Adding Windows" >&2
cat << EOF
menuentry "Windows XP" {
set root=(hd0,1)
chainloader +1
}
EOF
</code>
Albo zainstalować **os-prober** i uruchomić **update-grub2**.
----
Zarządzanie dwoma monitorami, rozdzielczością itp. - **arandr**
----
Zmiana numeru interfejsu ethX. Plik:
<code>
/etc/udev/rules.d/70-persistent-net.rules
</code>
----
Kopiowanie uprawnień właściciela na grupę
<code>
chmod g+u file
</code>
----
Sprawdzanie wolnego miejsca na dysku
<code>
df  /punkt/montowania | grep /punkt/montowania | awk '{print $4}'
</code>
----
Włączenie forwardowania pakietów przy starcie systemu.\\
W pliku **/etc/sysctl.conf** odkomentować linijkę **net.ipv4.ip_forward=1**.
----
Zmiana nazw plików JPG na datę i czas ze znacznika EXIF
<code>
exiv2 mv -t -r "%Y-%m-%d %H-%M-%S" *
</code>
----
Włączanie tappingu w Xach (stuknij, żeby kliknąć)
<code>
synclient TapButton1=1
</code>
----
Zmiana nazwy pliku na datę jego modyfikacji
<code>
mv $1 $(date "+%F" -d "1970-01-01 $(stat -c %Y $1) sec GMT").bz2
</code>
----
Program do wystawiania plików przez http (z możliwością uploadu): **woof**
