Uživatelské nástroje

Nástroje pro tento web


bash

Toto je starší verze dokumentu!


Bash - konzolové skripty

find

  • spuštění více příkazů u exec
  • vypíše 2 prefixy pro každý soubor
find . -exec echo "pr1:{}" \; -exec echo "pr2:{}" \;
  • vypíše soubory a u souborů obsahující podřetězec find vypíše replace
find . -exec sh -c "echo {} | sed 's/find/replace/g'"  \;
  • spuštění více příkazů bez exec
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done
  • zrušení rekurzivního procházení
find . -maxdepth 1 -exec echo {} \;
  • přejmenování přípony souborů
find . -name \*.html -exec echo -n "mv {} " \; -exec sh -c "echo {} | sed 's/\.html/\.phtml/g'" \; | sh 

odstranění duplicitních řádků

  • mám slovník, který vzniknul spojením více malých a chci oddělat duplicity
  • uniq - odstraní duplicity, ale jen když jsou duplicitní řádky po sobě
  • sort - umí setřídit řádky k sobě :)
sort all > sortedall
uniq sortedall uniqsortedall

vyřazení řádků kratších než 8 znaků

  • první nápad s for cyklem - děsně pomalé, asi 0.1KB/s
for i in `cat uniqsortedall`; do COUNT=$(echo $i | wc -m); if [ $COUNT -gt 7 ]; then echo $i >> cutteduniqsortedall; fi; done
  • druhý nápad s readline - pomalé, asi 0.2KB/s
while read line; do COUNT=$(echo $line | wc -m); if [ $COUNT -gt 7 ]; then echo $line >> cutteduniqsortedall; fi; done < uniqsortedall
  • nejlepší nápad za pomocí google :)
awk '{ if (length() > 8) print $0 }'  uniqsortedall  > cutted8uniqsortedall

procesy, otevrene spojeni

  • zabiti potomku procesu
kill_children_of() {
  CHILDS=`ps -ef | awk '$3 == '${1}' { print $2 }'`
  for CHILD in $CHILDS; do
    echo "killing child $CHILD"
    #kill $CHILD
  done
}
  • hodne detailni info o procesech
ps -aux
  • vypis tcp soketu vcetne procesu (-p)
netstat -tanp
  • zjisteni, ktere procesy pouzivaji soubor
djbuldog@Pharaon:~$ fuser -v /dev/snd/pcmC*
Cannot open /proc/swaps
                     UŽIVATEL    PID PŘÍSTUP PŘÍKAZ
/dev/snd/pcmC0D0p:   djbuldog   3883 F...m pulseaudio
/dev/snd/pcmC1D0c:   djbuldog   3883 F...m pulseaudio
  • zjisteni otevrenych souboru a soketu
    • aktivni spojeni lze vypsat parametrem -i tcp nebo -i4 nebo lsof -nl | egrep „TCP|UDP“
lsof
  • zjisteni aktulaniho pracovniho adresare procesu
pwdx
bash.1650951451.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki