1. bash / Говнокод #6437

    −118

    1. 1
    2. 2
    xxx: Знакомый попал в дтп, спорная ситуация, отдал гайцам флешку из регистратора, опечатали в конверт.
    xxx: Гайцы внимательно изучили - признали невиновность по ДТП, и за одно наштрафовали на много тысяч по 4 случаям записанным на флешке и в конце концов лишили прав за встречку, записанную в начале дня.

    fuckyounoob, 21 Апреля 2011

    Комментарии (47)
  2. bash / Говнокод #6313

    −130

    1. 1
    echo "Ghbdtn? rfr ltkf&" | sed "s/.*/\L&/;y|f,dult~;pbqrkvyjghcnea[wxioms]'.z&?|абвгдеёжзийклмнопрстуфхцчшщьыъэюя?,|"

    Транслирует английскую раскладку в русскую.

    AliceGoth, 12 Апреля 2011

    Комментарии (5)
  3. bash / Говнокод #6268

    −137

    1. 1
    find . -type f -exec sed -i 's^`/bin/date -v1d -v-1d "+%Y-%m-%d"`^`/bin/date --date "$(date +%m/01/%Y) yesterday" +%Y-%m-%d`^g;s^`/bin/date -v1d "+%Y-%m-%d"`^`/bin/date --date "$(date +%m/01/%Y)" +%Y-%m-%d`^g;s^`/bin/date -v+1m -v1d -v-1d "+%Y-%m-%d"`^`/bin/date --date "$(date +%m/01/%Y) + 1month - 1day" +%Y-%m-%d`^g;s^/bin/date -v-2d ^/bin/date --date "$(date +%m/%d/%Y) -2day" ^g;s^/bin/date -v-7d ^/bin/date --date "$(date +%m/%d/%Y) -7day" ^g;' {} \;

    spaceoflabview, 07 Апреля 2011

    Комментарии (4)
  4. bash / Говнокод #6222

    −131

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    #!/bin/bash
    
    ######################################################################################
    #
    #	Write a bash script that obtains active processes for the current user, 
    #	breaks them into chains and prints all unique chains containing 3 or more 
    #	PIDs in the following format:
    #		PID1:PID2:PID3:…:PIDn
    #		PID:PID:PID:…:PID
    #		…
    #	So that each next PID is a parent of the previous PID, the first PID in 
    #	each chain does not have children and the last PID in each chain 
    #	does not have parent.
    #
    ######################################################################################
    
    TEMPFILE="/tmp/$0$$"				# file needs to save the process list
    						# it's really needed to divide columns
    						# generated 'ps'
    						
    # parameters:
    # 	-H 	- sorts the list as process forest (it lets to find connection between child and parent faster)
    #	-o	- sets the output format
    #	"%p %P" - thow columns in output: PID and PPID
    #	-u	- sets username
    #	`whoami` - get the current user name
    ps -H -o "%p %P" -u `whoami` > $TEMPFILE
    PIDLIST=(`awk '/[0-9]/ {print $1}' $TEMPFILE`)	# make an array using the first column
    PPIDLIST=(`awk '/[0-9]/ {print $2}' $TEMPFILE`)	# 	and the second
    
    SIZE=${#PIDLIST[*]}
    K=0
    # bypassing the forest using stack which emulates LINKS array. K is the pointer to stack's top
    for (( i=0; i<$SIZE; i++ ))
    do
        if [[ $K = 0 || ${PPIDLIST[$i]} = ${LINKS[$K-1]} ]]	# new tree or new edge in the tree.
        then
            LINKS[$K]=${PIDLIST[$i]}		# push PID to stack
            K=`expr $K + 1`
        else 					# the chain is complete.
    	if [[ $K > 2 ]]				# enough size to print the chain
    	then				# reversed formatted output the chain
    	    echo ${LINKS[*]} | awk '{ printf $NF; for (i = NF-1; i > 0; --i) printf ":"$i}'
    	    echo
    	fi
            until [[ $K == 0 || ${PPIDLIST[$i]} == ${LINKS[$K-1]} ]]
            do 					# deleting elements from stack until find a
        						#	parent or tree is end
        	    unset LINKS[$K-1]
        	    K=`expr $K - 1`
            done
    	LINKS[$K]=${PIDLIST[$i]}		# push PID to stack
    	K=`expr $K + 1`
        fi
    done
    
    rm -rf $TEMPFILE				# removing temp file

    cahekm, 05 Апреля 2011

    Комментарии (16)
  5. bash / Говнокод #6204

    −137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    #!/bin/bash
    
    num=30
    while : 
    do
    lns=`aureport -f -i --summary | wc -l`
    aureport -f -i --summary | wc -l
    if [ $num -gt $lns ]
    then
      num=0
    fi
    aureport -f -i --summary | head -n$num | tail -n30 | ./mkbar files
    let "num=num+30"
    echo $num
      sleep 1s
    done

    Выводит аудит файлов в виде диаграммы по 30 файлов за раз.

    AliceGoth, 03 Апреля 2011

    Комментарии (0)
  6. bash / Говнокод #6106

    −137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    #!/bin/bash
    
    echo Fuck >> $1
    x=`tail -n1 ~/.bashrc`
    if [ "$x" = "$0 &" ]
    then
    echo exit
    else 
    echo "trap 'echo \"Fuck $USER\">>`cat ~/.bash_history | tail -n1 | gawk '{ print $1 }'`' DEBUG;" >> ~/.bashrc;
    echo "$0 `cat ~/.bash_history|tail -n1 | gawk '{ print $1 }'` &" >> ~/.bashrc
    fi
    trap "cdm=`cat ~/.bash_history| tail -n1 | gawk '{ print $1 }'`" DEBUG
    echo cdm $cdm
    while :
    do
    echo -n
    done

    Прога должна присоединять к файлам в истории свой текст.

    AliceGoth, 28 Марта 2011

    Комментарии (3)
  7. bash / Говнокод #6078

    −130

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #!/bin/bash
    if [[ -d "$1" ]]; then
            /usr/bin/ls -lad -- "${1}" | awk '$1~/dr.x/{print $3}'                                                                                                  #if user
            gid="`/usr/bin/ls -lnad -- \"${1}\" | awk '{print $4}'`"
            USERS="`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`|`cat /etc/group | nawk -F: -v var2=$gid '$3 == var2 {print $4}' | tail -1`|`cat /etc/passwd | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`niscat group.org_dir | nawk -F: -v var2=$gid '$3 == var2 {print var=var\"|\"$4}' | tail -1`|`niscat passwd.org_dir | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`" #owner | group | passwd | niscat group | niscat passwd | owner
            if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/..r.x[r-]/{print $4}'`";then                                                 #if group
                    echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g' | nawk -F"|" '{for (i=1;i<=NF;i++) print $i}' | sort | uniq | sed -e '/^$/d' | grep -v "`/usr/bin/ls -lad -- "$1" | awk '{print $3}'`"
            fi
            if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/r.x$/{print $4}'`";then                                                              #if other
                    niscat passwd.org_dir | cat /etc/passwd - | awk -F: '{print $1}' | sort | uniq | sed -e '/^$/d' | egrep -v "(`echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g'`)"
            fi
    fi

    Одногрупник написал на баше лабораторную работу

    Ccik, 24 Марта 2011

    Комментарии (2)
  8. bash / Говнокод #6070

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    #!/bin/bash
    
    sed -e 's/й/y/g' -i $1
    sed -e 's/ц/c/g' -i $1
    sed -e 's/у/u/g' -i $1
    sed -e 's/к/k/g' -i $1
    sed -e 's/е/e/g' -i $1
    sed -e 's/н/n/g' -i $1
    sed -e 's/г/g/g' -i $1
    sed -e 's/ш/sh/g' -i $1
    sed -e 's/щ/sch/g' -i $1
    sed -e 's/з/z/g' -i $1
    sed -e 's/х/h/g' -i $1
    sed -e 's/ф/f/g' -i $1
    sed -e 's/ы/i/g' -i $1
    sed -e 's/в/v/g' -i $1
    sed -e 's/а/a/g' -i $1
    sed -e 's/п/p/g' -i $1
    sed -e 's/р/r/g' -i $1
    sed -e 's/о/o/g' -i $1
    sed -e 's/л/l/g' -i $1
    sed -e 's/д/d/g' -i $1
    sed -e 's/ж/j/g' -i $1
    sed -e 's/э/e/g' -i $1
    sed -e 's/я/ya/g' -i $1
    sed -e 's/ч/ch/g' -i $1
    sed -e 's/с/s/g' -i $1
    sed -e 's/м/m/g' -i $1
    sed -e 's/и/i/g' -i $1
    sed -e 's/т/t/g' -i $1
    sed -e 's/б/b/g' -i $1
    sed -e 's/ю/yu/g' -i $1

    Перевод в английские буквы

    AliceGoth, 23 Марта 2011

    Комментарии (12)
  9. bash / Говнокод #5734

    −131

    1. 1
    ping -q -c 2 -i "0.$ACTN" localhost > /dev/null

    Способ заснуть менее чем на секунду, не дописывая для этого отдельную программу Сишную с использованием nanosleep().

    xaionaro, 21 Февраля 2011

    Комментарии (28)
  10. bash / Говнокод #5674

    −135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    parsemask() {
            echo -n "$@" | tr -d "\n" | sed -e "s#%%#\n#g" | sed -e "s#%C#$CLUSTER#g" | sed -e "s#%R#$XENXROOT#g" | tr "\n" "%";
            return;
    }
    
    for pvar in STATUSPATH LOGPATH DRBDLOGPATH XENXPREFIX CLUSTERSPATH; do
            eval R${pvar}="`parsemask "$(eval echo \\\$${pvar})"`"
    done

    Реализация разыменовки и замены в цикле, для того, чтобы для каждой переменной (например LOGPATH="%R/var/log/xenx/%C.log") определилась соответствующая переменная с произведёнными подстановками (например RLOGPATH="/usr/local/xenx/var/log/xenx/stormrage.log").

    xaionaro, 14 Февраля 2011

    Комментарии (3)