Forum - HAJLO.COMmunity [ forum dyskusyjne, kasa za posty, forum młodzieżowe, forum wielotematyczne ]



Użytkownicy przeglądający ten wątek: 1 gości



[Skryptomania] Zabawiamy się z Bashem.
(08-06-2012 05:55) #1

At [Skryptomania] Zabawiamy się z Bashem.

Witam drogich użytkowników.
W tym temacie będziemy mogli umieszczać skrypty napisane w języku Bash.
Przykładowy formularz dodania skryptu:

Kod:
[b]Nazwa skryptu:[/b]
[b]Opis skryptu:[/b]
[b]Kod skryptu: [/b](w znaczniku [code])
[b]Informacje dodatkowe:[/b] (jeżeli jakieś są)
[b]Link do pobrania skryptu:[/b] (jeżeli istnieje)

A więc żeby nie było pusto poumieszczam parę skryptów sam i będę je dodawał regularnie.

Nazwa skryptu: Aliasator
Opis skryptu: Aliasy - ułatwmy sobie pracę z apt-get:
Kod skryptu:
Kod:
#!/bin/sh

alias install='sudo apt-get install'
alias search='sudo apt-cache search'
alias upgrade='sudo apt-get upgrade'
alias update='sudo apt-get update'
alias ..='cd ..'

Nazwa skryptu: Aktualizator
Opis skryptu: Zaktualizujmy system jednym poleceniem
Kod skryptu:
Kod:
#!/bin/sh
sudo apt-get autoclean
sudo apt-get autoremove
sudo apt-get update
sudo apt-get dist-upgrade

Nazwa skryptu: Radyjo
Opis skryptu: Skrypt pozwalający słuchać radia
Kod skryptu:
Kod:
#!/bin/bash

# Configuration
RADIO_DIR=~/.radyja
PLAYER=echo


# List available radios
list_radios () {
    if [ -d $RADIO_DIR ]
    then
        cd $RADIO_DIR
        grep 'Opis:' *.fm | sed -e 's/\.fm:Opis:/:\t/'
    else
        echo 'Brak zainstalowanych radiów'
    fi
}

# Play radio
play_radio () {
    RADIO="$RADIO_DIR/$1.fm"
    if [ -f $RADIO ]
    then
        URL=`grep 'Adres: ' $RADIO | sed 's/^Adres: //'`
        $PLAYER $URL
    else
        echo "Radio $1 nie odnaleziono"
    fi
}

# Print help
print_help () {
    echo "użycie: radyjo nazwa_radia"
    echo " Aby wyświetlić listę dostępnych radiów, użyj radyjo --list"
}


# Main script
if [ ! -n "$1" ]        # No argument given
then
    print_help
elif [ "$1" = "--list" ]    # List radios
then
    list_radios
elif [ "$1" = "--help" ]    # Print help
then
    print_help
else                # Play radio
    play_radio "$1"
fi
Informacje dodatkowe:
Radia są przechowywane w plikach o nazwach: nazwa_radia.fm w katalogu ~/.radyja w formacie:
Kod:
Adres: http://adres_pliku_ze_strumieniem/blabla.ogg
Opis: Nazwa radia

Nazwa skryptu: Intruzator
Opis skryptu: Skrypt do wyszukiwania intruzów w sieci lokalnej
Kod skryptu:
Kod:
#!/bin/bash
if [ -e ~/.list ]; then
nbtscan 192.168.2.1-10 > .list
else
touch ~/.list
nbtscan 192.168.2.1-10 > .list
fi

if [ -e ~/.ile ]; then
wc -l ~/.list > ~/.ile
else
touch ~/.ile
wc -l ~/.list > ~/.ile
fi
wynik="$[$(cat ~/.ile | cut -c1)-4]"
cat ~/.list | tail -n$wynik | cut -d" " -f1-7
Lub:
Kod:
#!/bin/bash
if [ -e ~/.intruz ] ; then
scan > ~/.intruz
else
touch ~/.intruz
scan > ~/.intruz
fi
if [ "$(inter | cut -c2-6)" != "ASMAX" ]; then
sleep 3600
netusers
else
if [ "$(wc -l ~/.intruz | cut -c1)" -gt "2" ]; then
zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci lokalnej"
fi
        if [ "$(cat ~/.intruz | cut -c1)" = "2" ]; then
                if [ "$(cat ~/.intruz | grep 192.168.2.7)" = "0" ]; then
                zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci lokalnej"
                fi
                fi

                if [ "$(wc -l ~/.intruz | cut -c1)" = "2" ]; then
                        if [ "$(cat ~/.intruz | grep XXX-ECF00AD4F14)" = "0" ]; then
                        zenity --title "Intruz" --info --text "Wykryto intruza w twojej sieci loka$
                        fi
                        fi

fi
echo "ok"
sleep 300
netusers

Informacje dodatkowe: Potrzebne pakiety: zenity i nbtscan

Nazwa skryptu: Konwertman
Opis skryptu: Skrypt do konwertowania kodowania plików tekstowych z windowsowego cp1250 do UTF8
Kod skryptu:
Kod:
#!/bin/bash
if [ $# -gt 0 ] ; then
    iconv -f CP1250 -t UTF-8 --output=/tmp/$1 $1
    cp $1 $1~
    mv /tmp/$1 $1
else
    echo "Konwersja kodowania pliku tekstowego z CP1250 (Windows) na UTF-8"
    echo "użycie: $0 nazwapliku"
fi

Nazwa skryptu: Czynnościk
Opis skryptu: Skrypt odlicza czas i po jakim wykonuje czynność, którą sobie zażyczymy. W menu głównym programu wszystko można sobie ustawić
Kod skryptu:
Kod:
#!/bin/bash

clear

echo "Witaj w tekstowym wyłączniku."
echo "Wprowadź liczbę minut do odliczenia."
echo -n "> "
read ileminut

ilesekund=$[$ileminut*60]

echo "Odliczanie będzie trwało $ilesekund sekund."

function list
{
    case "$1" in
    a)
        clear
        echo "1) Czas: $ilesekund sek. ($ileminut min.) - zmień."
        echo "2) Po zakończeniu: $pozak"
        echo "3) Rozpocznij odliczanie."
        echo "4) Zakończ"
        
        echo -n "> "
        read menu
        case "$menu" in
        1)
            echo
            echo "Wprowadź nowy czas"
            echo -n
            read ileminut
            ilesekund=$[$ileminut*60]
            list a
            ;;
        2)
            list b
            list a
            ;;
        3)
            dodaj
            list a
            ;;
        4)
            clear
            exit 0
            ;;
        *)
            clear
            echo "Błędny wybór..."
            sleep 2
            list a
        esac
        ;;
    b)
        echo "1) Wyłącz komputer"
        echo "2) Uruchom ponownie"
        echo "3) Wykonaj polecenie"
        echo
        echo -n "> "
        echo
        read poz
        case "$poz" in
        1)
            pozak1="shutdown -h now"
            pozak="Wyłączenie komputera"
            ;;
        2)
            pozak1="shutdown -r now"
            pozak="Ponowne uruchomienie komputera"
            ;;
        3)    
            echo "Wprowadź dowolne polecenie systemowe."
            echo -n "> "
            read pozak1
            pozak="Polecenie systemowe: $pozak1"
            ;;
        esac
        ;;
    esac
}

function pokaz
{
    clear
    echo "Pozostało odliczania: $ilesekteraz sek. / $ilesekund sek. ($ileminut min.)"
    dodaj
}

function dodaj
{
    if [ "$ilesekteraz" = "$ilesekund" ]
    then
        $pozak1
    else
        if [ "$juz" = "tak" ]
        then
            sleep 1
            ilesekteraz1=$[$ilesekteraz+1]
            ilesekteraz=$ilesekteraz1
            pokaz
        else
            juz=tak
            pokaz
        fi
    fi
}

list a
[/quote]

20)

Hasla- generowanie dla tych co musza zmieniach hasla np co tydzien.
[quote]
#!/usr/bin/perl -w
system "clear";
use Term::ANSIColor;
print color("blue"),"Hmm wymyślę hasła ..:)\n", color("reset");
print color("green"),"Podaj długość hasła (cyfrą) ",color("reset");
$li = <STDIN>;
if ($li lt "1")
{ print color("red"),"nic nie wprowadzono...!,kończe program\n", color("reset");exit}
print color("green"),"Podaj ilość haseł (cyfrą) ",color("reset");
$powt =<STDIN>;
if ($powt lt "1")
{ print color("red"),"brak wszystkich danych...!, kończe program.\n",color("reset");exit}
print "Ok, rozpoczynam generowanie haseł\n";
$ile = $powt;
for (1 ..$powt)
{
{ @lines = `pwgen -s -y $li`;print color("white"),"hasło..     ",color("reset");}foreach (@lines)
{print;}
}

Nazwa skryptu: Jaki transfer ?
Opis skryptu: Skrypt pokazujący zużycie transferu (prędkość) przez aktualnie uruchomione aplikacje/usługi itp
Kod skryptu:
Kod:
#!/bin/bash
max_chars=100 # maksymalna liczba znaków na konsoli (dlugosc paska wykresu)
max_down_speed=65536 # maksymalna prędkość pobierania w bajtach (tutaj 65536 B = 64 KB = 512Mb)

function get_speed()
{
    speed=`cat /proc/net/dev | grep eth0`
    if [ "$1" == 'up' ]; then
        speed=`echo $speed | awk '{print $9}'`
        last=$last_upl
        last_upl=$speed
    else
        speed=`echo $speed | awk '{print $1}' | awk -F":" '{print $2}'`
        last=$last_down
        last_down=$speed
    fi
    speed=$[ $speed - $last ]
}

function kb()
{
    bytes=$[$1 * 100 / 1024]
    val=`echo $bytes | sed 's/\([[:digit:]]*\)\([[:digit:]]\{2\}\)/\1.\2/g'`
    if [ `echo $val | wc -m` == 4 ]; then
        val="0$val"
    elif [ `echo $val | wc -m` == 3 ]; then
        val="0.$val"
    elif [ `echo $val | wc -m` == 2 ]; then
        val="0.0$val"
    fi
}

function wykres()
{
    perc=$[$1 * 100 / $max_down_speed]
    print_chars=$[$perc/ (100 / $max_chars)]
    str='['
    for s in `seq 0 $max_chars`
    do
        if [ $s -lt $print_chars ]; then
            str+='#'
        else
            str+='-'
        fi
    done
    str+=']'
}

last_upl=`cat /proc/net/dev | grep eth0 | awk '{print $9}'`
last_down=`cat /proc/net/dev | grep eth0 | awk '{print $1}' | awk -F":" '{print $2}'`
sleep 1
echo -e "\n"
i=1

while [ true ]
do
    get_speed 'up'
    kb $speed
    upl_speed=$val
    
    get_speed 'down'
    wykres $speed
    wykres=$str
    down_sum=$[$down_sum + $speed]
    kb $speed
    down_speed=$val
    
    down_avg=$[$down_sum/$i]
    kb $down_avg
    down_avg=$val
    
    echo -e "\e[2A$wykres"
    echo -e "Download: $down_speed KB/s\e[K\tUpload: $upl_speed KB/s\e[K\tDownload Avg: $down_avg KB/s"
    i=$[$i+1]
    sleep 1
done

Nazwa skryptu: SFVED
Opis skryptu: Skrypt dla Nautiliusa do sprawdzania SFV na podstawie pliku "*.SFV":
Kod skryptu:
Kod:
#!/bin/sh

# Language settings

               Passed="OK"
               Failed="FAILED"
               PrintAllOk="All files are OK!"
               PrintFail1="file(s) are OK and"
               PrintFail2="file(s) are corrupt!"

case $LANG in
        pl* )
               Passed="OK"
               Failed="Błąd"
               PrintAllOk="Wszystkie pliki są OK!"
               PrintFail1="plik(i) jest/są OK i"
               PrintFail2="plik(i) jest/są uszkodzony/uszkodzone!"
esac

for File in "$@"
do
    if [ ! -f "$File" ] || [ "${File:(( ${#File} -4 ))}" != ".sfv" && ".SFV" ];then
    zenity --error --text="\"$File\" isn\'t SFV file..."
    exit
    fi

(cfv -rr -T -f "$@" -t sfv > "/tmp/CRCcheck.txt") 2>&1 | zenity --progress --title "Check SFV" --text "Checking: $File" --pulsate --auto-close

NumberOK=`cat /tmp/CRCcheck.txt | fgrep -o -e "$Passed" | wc -l`
NumberFailed=`cat /tmp/CRCcheck.txt | fgrep -o -e "$Failed" | wc -l`
   if [ $NumberFailed == 0 ]; then
       StatusMessage="$PrintAllOk"
   else
       StatusMessage="$NumberOK $PrintFail1 $NumberFailed $PrintFail2"
   fi
echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" >> /tmp/CRCcheck.txt
echo "$StatusMessage" >> /tmp/CRCcheck.txt

zenity --text-info --title "$File" --width=640 --height=240 --filename=/tmp/CRCcheck.txt

done

(Ten post był ostatnio modyfikowany: 08-06-2012 06:24 przez DamiaX.)

(22-03-2018 17:00) #2

RE: [Skryptomania] Zabawiamy się z Bashem.

Nazwa skryptu: Licznik lat przystępnych
Opis skryptu: Liczy liczbę lat przystępnych od podanego roku startowego do końcowego i wypisuje dokładny rok kiedy on nastąpi
Kod skryptu:

Kod:
#!/bin/bash

end()
{
ilosc=`cat wynik.txt`
if [ $ilosc == 1 ]; then
echo "Od roku $start do roku $koniec odbędzie się $ilosc rok przystępny."
fi
if [ $ilosc -gt 2 ]; then
echo "Od roku $start do roku $koniec odbędą/zie się $ilosc lat/a przystępnych/e."
fi
echo "2016" > rok.txt
a=Tak
DDDD=Tak
}

echo "2016" > rok.txt
read -p "Podaj rok startowy: " start
read -p "Podaj rok końcowy: " koniec

#echo "##########################"
#echo "Pobieranie..."
#sleep 1
#echo "Obliczanie..."
#sleep 1
#echo "Ładowanie..."
#sleep 1
#echo "##########################"
sleep 1
echo " "
echo " "
a=Nie
DDDD=Nie
echo "0" > wynik.txt
until [ $a == Tak ]; do
if [ $DDDD == Nie ]; then
rok=`cat rok.txt`
minus=$[$rok - 4];
echo "$minus" > rok.txt
fi
if [ $minus -lt $start ]; then
if [ ! -e rok1.txt ]; then
echo "$minus" > rok1.txt
fi
minus=`cat rok1.txt`
plus=$[$minus + 4];
echo "$plus" > rok1.txt
plus=$[$minus + 4];
ilosc=`cat wynik.txt`
wynik=$[$ilosc + 1];
echo "$wynik" > wynik.txt
echo "$plus"
if [ $plus -gt $koniec ]; then
end
fi
if [ $plus == $koniec ]; then
end
fi
fi
if [ $minus == $start ]; then
if [ ! -e rok1.txt ]; then
echo "$minus" > rok1.txt
fi
minus=`cat rok1.txt`
plus=$[$minus + 4];
echo "$plus" > rok1.txt
ilosc=`cat wynik.txt`
wynik=$[$ilosc + 1];
echo "$wynik" > wynik.txt
echo "$plus"
if [ $plus -gt $koniec ]; then
end
fi
if [ $plus == $koniec ]; then
end
fi
fi
done
echo ""
echo "##########################"
echo "##########################"
echo " "
rm wynik.txt
rm rok1.txt
read -p "Jeszcze raz? [Y/n]: " wysc
msc=`pwd`
if [ $wysc == Y ]; then
./LP.sh #nazwa pliku
else
echo "Dowidzenia"
sleep 2
exit 0
fi
fi

Nazwa skryptu: Pobieralnik
Opis skryptu: Pobiera pliki z internetu pobierając z pliku linki.
Kod skryptu:

Kod:
#!/bin/bash

read -p "Podaj plik: " plik
read -p "Podaj katalog zapisu: " katalog

if [ !-e $katalog ]; then
mkdir $katalog
fi

for linki in `cat $plik`
do
    wget -P $katalog $linki
done

Nazwa skryptu: Podmieniator
Opis skryptu: Podmienia treść linijki w pliku z o treści x na treść y
Kod skryptu:
Kod:
#!/bin/bash

read -p "Nazwa pliku: " plik
read -p "Treść linijki do podmiany: " st
read -p "Treść linijki do nadpisu: " nt
a=`cat $plik`
echo "$a" > tymczas.txt

echo "" > $plik

for i in `cat tymczas.txt`
do
  if [ $i == $st ]
  then
    echo "$nt" >> $plik # nadpisze tę linijkę
    echo "$nt"
  else
    echo "$i" >> $plik
    echo "$i"
  fi
done

rm tymczas.txt

Nazwa skryptu: Kalkulator
Opis skryptu: Działa jak kalkulator
Kod skryptu:
Kod:
#!/bin/bash

koniec()
{
echo "$a $dzial $b = $wynik"

}

znak_dzialania()
{
read -p "Wpisz znak działania (a;b;c;d): " znak
if [ -z $znak ]; then
echo "Nie wpisałeś znaku"
znak_dzialania
fi

if [ $znak == a ]; then
dzial="+"
wynik=$[$a + $b];
elif [ $znak == b ]; then
dzial="-"
wynik=$[$a - $b];
elif [ $znak == c ]; then
dzial="*"
wynik=$[$a * $b];
elif [ $znak == d ]; then
dzial="/"
wynik=$[$a / $b];
else
echo "Nie wpisałeś prawidłowego znaku"
znak_dzialania
fi
koniec
}

wpisywanie_liczb()
{
echo ""
read -p "Podaj 2 liczby [użyj spacji]: " a b

if [ -z $a ]; then
echo "Nie wpisałeś jednej liczb"
wpisywanie_liczb
elif [ -z $b ]; then
echo "Nie wpisałeś jednej z liczb"
wpisywanie_liczb
else
znak_dzialania
fi
}

echo "#####################"
echo "Działania:"
echo "a-dodawanie"
echo "b-odejmowanie"
echo "c-mnożenie"
echo "d-dzielenie"
echo "#####################"
echo ""

wpisywanie_liczb

Nazwa skryptu: Tworzenie plików w pętli
Opis skryptu: Tworzy pliki w pętli
Kod skryptu:
Kod:
#!/bin/bash

reszta()
{
z=0
until [ $z == $x ]; do
echo " " > $y$z.txt
z=$[z + 1];
done
}

nazwa_pliku()
{
read -p "Nazwa pliku: " y
if [ -z $y ]; then
nazwa_pliku
else
reszta
fi

}

liczba_plików()
{
read -p "Ile plików chcesz utworzyć: " x
if [ -z $x ]; then
echo "Nic nie wpisałeś"
liczba_plikow
else
nazwa_pliku
fi
}

liczba_plikow

Nazwa skryptu: Usuwator komentarzy
Opis skryptu: Usuwa komentarze z pliku oprócz interpretera: #!/bin/bash
Kod skryptu:
Kod:
#!/bin/bash

twoj_plik=plik.txt

for i in cat $twoj_plik
do
if [ $i == '#!/bin/bash' ]; then
echo "#!/bin/bash" > tymczas.txt
else
echo "$i" >> tymczas3.txt
fi
done
echo " " > $twoj_plik
a=grep -E -v '^\s*#|^\s*$|^\s*;' tymczas3.txt
b=cat tymczas.txt
echo "$b" > $twoj_plik
echo "" >> $twoj_plik
echo "$a" >> $twoj_plik
rm tymczas3.txt
rm tymczas.txt

Nazwa skryptu: Zakodowator i Odkodowator plików
Opis skryptu: Zakodowywuje po wybraniu opcji 1 i odkodowywuje po wybraniu opcji 2
Kod skryptu:
Kod:
#!/bin/bash


koniec2()
{
base64 -d $plik > tym.txt
a=`cat tym.txt`
echo "$a" > $plik
rm tym.txt
echo "KONIEC"
}

odczytywanie2()
{
clear
read -p "Podaj plik do odkodowania: " plik
if [ -z $plik ]; then
echo "Nic nie wpisałes"
sleep 2
odczytywanie2
fi

if [ !-e $plik ]; then
echo "Nie ma takiego pliku: $plik"
sleep 2
odczytywanie2
fi

koniec2

}



koniec1()
{
base64 $plik > tym.txt
a=`cat tym.txt`
echo "$a" > $plik
rm tym.txt
echo "KONIEC"
}

odczytywanie1()
{
clear
read -p "Podaj plik do zakodowania: " plik
if [ -z $plik ]; then
echo "Nic nie wpisałes"
sleep 2
odczytywanie1
fi

if [ !-e $plik ]; then
echo "Nie ma takiego pliku: $plik"
sleep 2
odczytywanie1
fi

koniec1

}

menu()
{
clear
echo "1. Zakoduj"
echo "2. Odkoduj"
echo ""
read -p "> " dzial

if [ -z $dzial ]; then
echo "Nic nie wpisałeś"
sleep 2
menu
fi

if [ $dzial == 1 ]; then
odczytywanie1
elif [ $dzial == 2 ]; then
odczytywanie2
else
echo "Nic nie wybrałeś"
sleep 2
menu
fi

}

menu

Nazwa skryptu: Wpisanie hasła do wykonania skryptu
Opis skryptu: Po tym jak odpalisz plik .sh będziesz musiał najpierw wpisać hasło uprawniające Cie do wykonania skryptu. Czytałem w necie niektórzy takiego czegoś potrzebują.
Kod skryptu:
Kod:
#!/bin/bash

stty -echo
read -p "Podaj hasło: " passw
stty echo
base64 -d password.txt > tymczas.txt
pass=`cat tymczas.txt`
rm tymczas.txt
if [ $passw == $pass ]; then
####################
#Twój skrypt
####################
else
echo "Błędne hasło"
fi
./Skrypt.sh #nazwa pliku
[nr]
Wiem, że ostatnia aktywność była w 2012 roku, ale zawsze komuś może się to przydać

(Ten post był ostatnio modyfikowany: 23-03-2018 00:14 przez KrisKros123.)




Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Linki

Copyrights

Tłumaczenie: Polski Support MyBB Silnik MyBB Styl: Darek