..................PRZEJEBANE.......(600KB).........
..................LA BOMBA.......(6200KB).........
..................POSIKANIEC.......(1300KB).........



POEZJA

PLAN DNIA
Najmilsza chwila poranka - przyjebać komuś z kolanka,
potem poprawić z barana i znowu dojebać z kolana,

w południe widzisz kutasa, doganiasz i walisz mu z buta,
będzie cała okolica, krwią tego huja popluta,

gdy obiad zjadłeś to nie chcesz skurwiela widzieć na oczy,
walisz bejsbolem w kolana, już więcej nie podskoczy,

a gdy go spotkasz wieczorem - za włosy i walisz o ścianę,
że huj ci stanął na drodze, będzie miał teraz przesrane.
BK 2009







lista płac pod open office 2009
pod namiot lista wyjazdowa
nad morze lista wyjazdowa
-------------------------------------------------------------------
linux komendy:
------------------------------ sprawdzanie wersji
uname -a
cat /proc/version
cat /etc/issue
lsb_release -a
cat /etc/lsb-release
cat /etc/linuxmint/info
cat /etc/debian_version

grep, egrep, fgrep, agrep - wyszukiwanie wzorca w tekście
diff, cmp, comm - porównywanie plików
cat, tac, tee, cp - wypisywanie (także w odwrotnej kolejności), kopiowanie plików
head, tail, csplit, cut - wypisywanie części pliku, podział pliku
find, xargs - wyszukiwanie plików i wykonywanie na nich operacji
join, paste - łączenie wierszy
seq - drukowanie ciągu liczb (przydatne do pętli)
sort - porządkowanie plików, usuwanie powtórzeń
tr, recode - zamiana znaków na inne
uniq, wc - liczenie (znaków, słów, wierszy, jednakowych słów), usuwanie powtórzeń
sed, awk, perl - edycja strumienia
bash - skrypty (instrukcje sterujące, zmienne itd.)

--------------------------------------------------------------------------
podstawienie drugiej kolumny wiersza zawierajacego tekst "RX packets" pod zmienna 'wynik' i wyswietlenie z niej wartosci, zaczynajacej sie po 8 znaku, tu daje to ilość pakietów odebranych na interfejsie
wynik=$(ifconfig eth3 | grep "RX packets" | awk '{print $2}')
wynik=${wynik:8:30}
echo $wynik
--------------------------------------------------------------------------
Tcpdump usage examples
March 13, 2010

In most cases you will need root permission to be able to capture packets on an interface. Using tcpdump (with root) to capture the packets and saving them to a file to analyze with Wireshark (using a regular account) is recommended over using Wireshark with a root account to capture packets on an "untrusted" interface. See the Wireshark security advisories for reasons why.
See the list of interfaces on which tcpdump can listen:

tcpdump -D
Listen on interface eth0:

tcpdump -i eth0
Listen on any available interface (cannot be done in promiscuous mode. Requires Linux kernel 2.2 or greater):

tcpdump -i any
Be verbose while capturing packets:

tcpdump -v
Be more verbose while capturing packets:

tcpdump -vv
Be very verbose while capturing packets:

tcpdump -vvv
Be less verbose (than the default) while capturing packets:

tcpdump -q
Limit the capture to 100 packets:

tcpdump -c 100
Record the packet capture to a file called capture.cap:

tcpdump -w capture.cap
Record the packet capture to a file called capture.cap but display on-screen how many packets have been captured in real-time:

tcpdump -v -w capture.cap
Display the packets of a file called capture.cap:

tcpdump -r capture.cap
Display the packets using maximum detail of a file called capture.cap:

tcpdump -vvv -r capture.cap
Display IP addresses and port numbers instead of domain and service names when capturing packets:

tcpdump -n
Capture any packets where the destination host is 192.168.1.1. Display IP addresses and port numbers:

tcpdump -n dst host 192.168.1.1
Capture any packets where the source host is 192.168.1.1. Display IP addresses and port numbers:

tcpdump -n src host 192.168.1.1
Capture any packets where the source or destination host is 192.168.1.1. Display IP addresses and port numbers:

tcpdump -n host 192.168.1.1
Capture any packets where the destination network is 192.168.1.0/24. Display IP addresses and port numbers:

tcpdump -n dst net 192.168.1.0/24
Capture any packets where the source network is 192.168.1.0/24. Display IP addresses and port numbers:

tcpdump -n src net 192.168.1.0/24
Capture any packets where the source or destination network is 192.168.1.0/24. Display IP addresses and port numbers:

tcpdump -n net 192.168.1.0/24
Capture any packets where the destination port is 23. Display IP addresses and port numbers:

tcpdump -n dst port 23
Capture any packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:

tcpdump -n dst portrange 1-1023
Capture only TCP packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:

tcpdump -n tcp dst portrange 1-1023
Capture only UDP packets where the destination port is is between 1 and 1023 inclusive. Display IP addresses and port numbers:

tcpdump -n udp dst portrange 1-1023
Capture any packets with destination IP 192.168.1.1 and destination port 23. Display IP addresses and port numbers:

tcpdump -n "dst host 192.168.1.1 and dst port 23"
Capture any packets with destination IP 192.168.1.1 and destination port 80 or 443. Display IP addresses and port numbers:

tcpdump -n "dst host 192.168.1.1 and (dst port 80 or dst port 443)"
Capture any ICMP packets:

tcpdump -v icmp
Capture any ARP packets:

tcpdump -v arp
Capture either ICMP or ARP packets:

tcpdump -v "icmp or arp"
Capture any packets that are broadcast or multicast:

tcpdump -n "broadcast or multicast"
Capture 500 bytes of data for each packet rather than the default of 68 bytes:

tcpdump -s 500
Capture all bytes of data within the packet:

tcpdump -s 0
---------------------------------------------

wyświetla wiersze zawierające "abc"
grep "abc" plik

przeszukuje początki wierszy [^]
grep '^X' plik

koniec wiersza / wiersze kończące się na 'a';
grep 'a$' plik

wyświetla puste wiersze
grep '^$' plik

[] reprezentuje jeden znak zawarty w nawiasie
przedział od 0 do 4
grep '[0-4]' plik
grep '[01234]' plik

wyrażenie reprezentujące znak który jest liczbą
posix [[:digit:]]

znak z przedziału a-z ale nie zawsze bo to zależy od porządku sortowania:)))
np wszystkie duże litery lub wszystkie litery z przedziłau a-z.
grep '[A-Z]'

wielki znak - wielka litera
grep '[[:upper:]]'

pierwsza litera A lub a, druga b lub c.
grep '[Aa][bc]' plik

wiersze zaczynające się na małą literę
grep '^[[:lower:]]' plik

0 lub dowolnie wiele wystąpień liczby 2
grep '22*' plik

+ znaczy - jedno wystąpienie poprzedzającego ciągu
grep '2+'

? - zero lub jedno wystąpienie poprzedzającego ciągu
grep '2?'

jedno lub wiele powturzeń ciągu 'abc'
grep '(abc)?'

dwa dowolne znaki w wierszu / . - dowolny znak
grep '^..$' plik

wyświetla wiersze zawierające wyłącznie znak kropki!
grep '\.' plik

wyświetla wiersze zawierające jan kowalski, z małej lub
dużej litery, oraz bez względu na ilość spacji pomiędzy.
grep '[Jj]an[ ]+[Kk]owalski'

spacja, lub znak tabulacji!
[[:blank:]]

między 2 może być dowolny ciąg znaków/ czyli wiersze zawierające dwie dwójki
grep '2.*2' plik

uwzględnia TYLKO wyrazy - nie patrzy na spacje w dowolnym ciągu znaków pomiędzy dwujkami
grep -w '2.*2' tekst

R - opcja przeszukiwania rekursywnego [cały katalog,cały system itd]!
grep -R '...' /etc/*

-----------------------------------------------------------------------

SED

sed [opcje] polecenie_edycji plik

polecenia edycji:
[adres 1] [adres 2] [funkcja] [argumenty]

wyświetlanie wszystkiego oraz wiersze od 50 do 100 [dwukrotnie]
sed '50,100p' plik

opcja -n znaczy nie drukuj, wyświetla tylko wybrane wiersze [50-100]
sed -n '50,100p' plik

usuwa wiersze od 1 do 5
sed '1,5d' plik

zapisuje do plik1 plik z usunuiętymi frazami abc
sed '/abc/d' plik > plik1

podstawianie (opcja s) zamienia 'abc' na 'cokolwiek' - tylko pierwszy przypadek w wierszu!
sed 's/abc/cokolwiek' plik

podstawianie zamienia 'abc' na 'cokolwiek' - tylko pierwszy przypadek w załym pliku!
dzieki opcji g-global!
sed 's/abc/cokolwiek/g' plik

zamiana kropek na podkreślenia w całym pliku
sed 's/\./_/g' plik

y-yang/zamiana z dużych liter na małe
sed 'y/ABCDEFGHIJ..../abcdefghij.../' plik

usuwanie pustych wierszy
sed '/^$/d' plik

USUWA SPACJE NA POCZĄTKU I NA KOŃCU WIERSZA
sed 's/^[[:blank:]]//' plik
sed 's/[[:blank:]]$//' plik

pliki *.sed - skrypt w którym każda linia to kolejne wykonywane polecenie
uruchamiamy: 
	sed -f a.sed plik_na_ktorym_pracujemy

zamiana spacji na entery [przejścia do następnych linii]
sed 's/[ ][ ]*/\{naciskamy enter}'/g' plik

wyświetla liczbę wierszy zawierających dwie samogłoski
grep -c [aeiouy].*[aeiouy]

wyświetla liczbę wyrazów zawierających dwie samogłoski!!
sed 's/[ ][ ]*/\{enter!}/g' test.txt | egrep -c '[aeiouy].*[aeiouy]'

wyświetla wszytko oprucz 10-20 wiersza
sed '10,20!p' plik

//-----------------------------------------------------------------------
//----------------------awk----------------------------------------------
//wyswietlanie calego pliku

awk '{print}' plik

//ogolna skladnia
awk 'polecenia' plik

[plik a.awk]
{print}
[koniec pliku]

//odpalenie takiego pliku ze skryptem
awk -f a.awk plik

[plik a2.awk]
#!/usr/bin/awk -f
{print}
[koniec pliku]

//uruchomienie
./a2.awk

////////////////////////////////////przykłady
[plik danych]
miejscowosc 1234
miejsc      9291
miejsc3     7100
...
...
itd
[koniec pliku]

[skrypt]
{print $2} #wyświetla drugą kolumne!
[koniec skr]

awk -f skrypt.awk plik

//-----------------------------------------
[skrytp 2]
#wyswietla sume wartosci kolumny 2
{s=s+$2}
END{
print "łącznie:" s
}
[koniec]
//=====================================
[skrypt 3]
#łączy ciągi znaków! z kolumny pierwszej
{s=s$1}
END{
print "połącznie słów:" s
}
[koniec]
//=====================================
[skrypt 4]
#NR - numer bieżącego rekordu
#zawartość całego rekordu to $0!
#domyślnie rekord=wiersz
{print NR, $0}
[koniec]
//=====================================
[skrypt 5]
#wyświetla wiersze od 1 do 3!
NR==1,NR==3{print NR, $0}
[koniec]
//=====================================
#operatory || - lub, $$ - oraz. != - negacja
//=====================================
[skrypt 6]
#wyswietla wiersze które w pierwszej kolumnie mają pierwsza kolumne zaczeta na K
$1 ~/^K/{ print $0 }
[koniec]
//=====================================
# NF - liczba pól w wierszu (rekordzie)
# np. {printf NF}
# $NF - ostatnie pole w wierszu
# $(NF-1) - przedostatnie pole w wierszu... itd
# FS - separator pól! - domyślne spacjalub tab
# np. plik:
# Słubice : 400
# Stalowa Wola : 100
# 
# skrypt:
# BEGIN { FS=":" } #lub dowolny znak, ciąg, np. FS="::"

//============================================
[skrypt 7]
#formatowanie wyjścia
BEGIN { 
FS=":"
printf("%20s %-20s \n",$1,  $2)
}
{print $1 $2}
[koniec]
//=============================================
[plik z danymi]
jan
kowalski
wrocław
912345678
kowalski@kowalski.pl

mikołaj
kopernik
toruń
439847345
kopernik@torun.pl

maria
konopnicka
paryż
2327478236
maria@konopnicka.pl
[koniec pliku z danymi]
//
[skrypt 8]
#wyswietla blok dla ludzi co mają gdzieśtam zaczynający się wiersz na kowal*
BEGIN {
FS="\n"
RS="\n\n"
}
$2 ~/^kowal/ { print $0 }
[koniec]
//======================================
# OFS - separator pól na wyjściu
# ORS - separator rekordów na wyjsciu
# dodać do BEGIN:
# OFS="\n"
# ORS="\n\n"
#
#BEGIN {
#FS="\n"
#RS="\n\n"
#OFS="\n"
#ORS="\n\n"
#}
#
#$2 ~/^kowalski/{ print $0 }
#{print $0}
//=====================================
[skrypt 9 - a.awk]
$0 !~/^d/ { x=x+$5}
END {
print "łącznie " x " bajtów"
}
[koniec]
wywołanie: ls -l | awk -f a.awk

//=====================================
[skrypt 10]
#wyświetla całą zawartość
{
for (i=1;i<=NF-1;i++)
{
  printf("%s ", $i)
}
printf("%s\n", $NF)
}
[koniec]
//====================================================
//====================================================
[skrypt SH]
#!/bin/bash
echo "skrypt powlokowy"
x="plik"
awk -f a.awk $x
[koniec SH]

[skrypt AWK]
{
if (($2) >= max)
{
max=$2
wiersz=NR
a[NR]=$0
}
}
END { print max, wiersz
print a[wiersz]
}
[koniec AWK]

[zmodyfikowany AWK]
NR==1{ max = $2 }
NR>=2{
if (($2) >= max)
{
max=$2
wiersz=NR
a[NR]=$0
}
}
END { print max, wiersz
print a[wiersz]
}
[koniec awk]
//plik z danymi
[dane]
A 12
B 20
C 3
D -15
E 45
[koniec]
//===========================================
// funkcje w awk ============================

function nazwa (...argumenty?)
{

}
//---------------------------------------
[skrypt 11]
#wyświetla ilość powrórzeń konkretnego słowa - wiersza
{
for (i=1;i<=NF-1;i++)
{
  printf("%s ", $i)
}
printf("%s\n", $NF)
}END {
for (x in a)
print a[x], x
}
[koniec]
//===========================================
//===========================================
//===========================================
//===========================================
//===========================================
// skrypty powłokowe!!!!!!!!!!!!!
//===========================================
powłoki: 
bourna:sh, bash, 
Korna: ksh, pdksh (tworzenie koprocesów itp)
powłoki typu C: csh, tcsh

#############################################
#pierwsze skrypty
#!/bin/bash

echo "OK"
a=21
echo $a
echo "$a"
echo '$a'
echo "\$a"

#parametry
echo "$1" $2
###############################################
#skrypt skleja 'stringi'
#!/bin/bash

echo "skrypt 2"
a=12
b=33

echo $a$b
echo "$a""$b"
echo ${a}${b}
################################################
#skrypt sumuje liczby
#!/bin/bash

echo "skrypt 2"
a=12
b=33

echo $(($a+$b))
echo $(($a+5))
echo $[$a+$b]
##################################################
#
#pętle w bash`u
#petla nieskończona:
#   while :
#
#warunki:
# <   -lt
#<=   -le
#==   -eq
#>=   -ge
# >   -gt
#
# (wyrazenie) - wyrazenie jest prawdziwe
# !wyrazenie  - wyrazenie jest fałszywe
# wyrazenie -a wyrazenie  -zastępuje 'and'
# wyrazenie -o wyrazenie  -zastepuje 'or'
# [ -n łańcuch ] - czy dłuższy od 0
# [ -z łańcuch ] - czy łańcuch pusty (lenght==0)
#
#dla plików:
#plik1 -nt plik2         -nt -newer then
#plik1 -ot plik2         -ot -older then
#
#-d plik - plik istnieje i jest katalogiem
#-f plik - plik istnieje i jest zwykłym plikiem
#-e plik - plik 'wogóle' istnieje
#
##################################################
#przykład pętli (10 przebiegów)
#!/bin/bash

echo "skrypt 3"
i=0
while [ $i -lt 10 ]
do
 date
 sleep 2
 i=$(($i+1))

done
##################################################
#zmodyfikowany przykład pętli
#wyświetlanie zmiennej i szybszy przebieg
#!/bin/bash

echo "skrypt 3"
i=0
while [ $i -lt 10 ]
do
 date
 echo "wartosc i = $i"
 sleep 0.1
 i=$(($i+1))
done
###################################################
#pokazuje wszystkie pliki i katalogi w bierzącej lokalizacji
#!/bin/bash

echo "skrypt 4 - pliki"
for x in *
do
    if [ -d $x  ]
    then
	echo "$x jest katalogiem"    
    fi
    if [ -f $x ]
    then
	echo "$x jest zwyklym plikiem"
    fi
done
######################################################
#pokazuje wszystkie pliki i katalogi których nazwy kończą się na .txt
#!/bin/bash

echo "skrypt 4 - pliki - txt mod"
for x in *.txt
do
    if [ -d $x  ]
    then
	echo "$x jest katalogiem"    
    fi
    if [ -f $x ]
    then
	echo "$x jest zwyklym plikiem"
    fi
done
######################################################
#sprawdzanie plików - ich rozmiarów
#!/bin/bash

echo "skrypt 5 - pliki"
#rozmiar pliku
r=100

#pętla po wszystkich plikach
for x in *
do
    a=`ls -la $x | awk '{ print $5 }'`
    if [ $a -gt $r ]
    then
	echo "$x jest większy niz $r"    
    else echo "$x jest mniejszy niz $r"
    fi
done
######################################################
#wczytywanie zmiennych z zewnętrznego pliku
##      będzie na zaliczeniu!!
#!/bin/bash

echo "skrypt 6 - pliki"

#pętla po wszystkich plikach
for x in `cat plik`
do
echo $x
done
########################################################
#wysłanie zawartości pliku 'tekstwiad' na adresy mailowe zawarte w pliku 'maile'
#
#!/bin/bash

echo "skrypt 7 - maile"

#pętla po wszystkich plikach
for x in `cat maile`
do
mail -s "temat" $x < tekstwiad
done
#####################################################
#funkcja - przykład
#!/bin/bash
funkcja()
{
echo `ls -l $1 | awk '{ print $5 }'`


}

echo "skrypt 8 - funkcja "
funkcja plik
######################################################
######################################################
######################################################
# wyświetla największe pliki w katalogu/rekursywnie
#!/bin/bash

ls -lR $HOME > plik
awk -f a.awk plik > plik1
awk '{ printf("%12d %s\n",$5,$8)}' plik1  | sort -nr | head -20

######################################################
# Wyświetla najmniejsze pliki w katalogu/rekursywnie
#!/bin/bash

ls -lR $HOME > plik
awk -f a.awk plik > plik1
awk '{ printf("%12d %s\n",$5,$8)}' plik1  | sort -n | head -20

#####################################################
# wymagany skrypt: a.awk
NF == 8 { print %0 }
##################################################### 
#!/bin/bash

for x in *.txt
do
    echo $x
    data=`ls -l $x | awk '{ print $6 }'`
    cp $x $x$data
done
##################################################
##################################################
# filtrowanie linków z pliku
#!/bin/bash

sed 's/[ ][ ]*/\
/g' c > plik1
grep '^href' plik1


---------------------------------------------------------------------------
SCP

Kopiowanie pliku ze zdalnej maszyny na lokalną:
scp uzytkownik@zdalny.com:plik.txt /home/slav

Kopiowanie z hosta lokalnego na zdalny
scp plik.txt uzytkownik@zdalny.com:/katalog/docelowy

Kopiowanie katalogu z maszyny lokalnej na zdalnego hosta
scp -r katalog uzytkownik@zdalny.com:/katalog/docelowy

Kopiowanie z jednego zdalnego hosta na drugi
scp uzytkownika@host.com:/scieka/plik.txt uzytkownik2@drugi.com:/docelowy

Kopiowanie dwóch plików z lokalnego hosta na docelowy
scp plik1.txt plik2.txt uzytkownika@zdalny.com:L/katalog

Kopiowanie pliku na innego hosta po innym porcie niż domyślny
scp -P 2211 plik.txt uzytkownik@host.com:/katalog

Kopiowanie wielu plików na raz ze zdalnego hosta
scp uzytkownik@zdalny.com:/katalog/{plik1.txt,plik2.txt} .

I dwie sztuczki na przyspieszenie SCP

Domyślnie scp korzysta z algroytmu Tiple-DES cipger do kodowania informacji. Jest on dosyć powolny, jeżeli zmienimy go na Blowfish można uzyskać spore przyspieszenie. Wystarczy dodać parametr -c
scp -c blowfish plik.txt zdalny@serwer.com:~

Druga opcja to -C która uruchamia kompresję przesyłanych plików. Optymalnie jest więć skorzystać z obu opcji:
scp -c blowfish -C plik.txt uzytkownik@zdalny.com:~

Ostatni element którego mi brakowało, to użycie klucza publicznego do logowania:
scp -o IdentityFile=klucz.pem

źródło wiedzy: hyperx.org
----------------------------------------------------------------------------
ARP
czyszczenie ARP linux:
arp -s  

czyszczenie arp windows:
arp -d *

wpisywanie stalych MACow windows:
arp -s  

wpisywanie stalych MACow linux:
netsh interface ip add neighbors   
---------------------------------------------------------------------------------
sterowanie ARPem
## works best with <= 500 client computers ##

# vi /etc/sysctl.conf

# Force gc to clean-up quickly
net.ipv4.neigh.default.gc_interval = 3600
 
# Set ARP cache entry timeout
net.ipv4.neigh.default.gc_stale_time = 3600
 
# Setup DNS threshold for arp 
net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh1 = 1024

To load new changes type the following command:
# sysctl -p
---------------------------------------------------------------------------------