Forum www.pwszinf.fora.pl Strona Główna
RejestracjaSzukajFAQUżytkownicyGrupyGalerieZaloguj
Skrypty
Idź do strony 1, 2  Następny
 
Odpowiedz do tematu    Forum www.pwszinf.fora.pl Strona Główna » Systemy operacyjne GK/SSK / Laboratorium z M. Markowskim Zobacz poprzedni temat
Zobacz następny temat
Skrypty
Autor Wiadomość
Gość







Post Skrypty
Pierwsze dwa skrypty działają na pewno na każdej dystrybucji. Z tymże w zliczaniu katalogów można jeszcze dodać sprawdzenie, czy podane parametry to nie katalog, a jeśli tak, to wyświetlić błąd. Markowski w sumie nie traktuje tego jako błąd, ale jako mało odporny skrypt, a jak to będzie, to może jakiegoś bonusa da.
Trzeci skrypt działa na pewno na openSUSE, bo na nim pracuje, na innych dystrybucjach nie daję głowy. Jak nie będzie działał, to pewnie trzeba będzie zmienić filtrowanie potrzebnych kolumn z polecenia last. U mnie to fragment: "cut -d ' ' -f 16-17"
Tylko wiecie, nie kopiujcie bezmyślnie. Markowski głupi nie jest i jak ktoś skopiuje, to mu udowodni, że to nie jego skrypt...

Skrypt 1:
Kod:

#!/bin/bash
folder=$1
liczplik=$(find $folder -type f | wc -l)
liczfolder=$(find $folder -type d | wc -l)
liczfolder=$((liczfolder-1))
echo 'Skrypt oblicza ilość plików i katalogów w zadanym katalogu.'
echo 'Zawartość katalogu: '$folder':'
echo 'Liczba plików: '$liczplik
echo 'Liczba katalogów: '$liczfolder



Skrypt 2:
Kod:

#!/bin/bash
plik1=$1
plik2=$2
plik3=$3
if [ -r $plik1 ]; then
if [ -r $plik2 ]; then
if [ -w $plik3 ]; then
cat $plik1 >> $plik3
cat $plik2 >> $plik3
echo 'Poprawnie połączono pliki '$plik1' i '$plik2' do pliku '$plik3'.'
else
echo 'Plik '$plik3' (docelowy) nie istnieje lub nie można pisać w nim, próba stworzenia...'
if touch $plik3; then
cat $plik1 >> plik3
cat $plik2 >> plik3
echo 'Poprawnie utworzono '$plik3' i zapisano do niego pliki '$plik1' i '$plik2'.'
else
echo 'Nie można utworzyć pliku '$plik3'.'
fi
fi
else
echo 'Plik '$plik2' nie istnieje lub nie można odczytać!'
fi
else
echo 'Plik '$plik1' nie istnieje lub nie można odczytać!'
fi


Skrypt 3:
Kod:

#!/bin/bash
user=$1
if cat /etc/passwd | grep -w $user; then
echo 'Znaleziono użytkownika '$user'. Jego historia logowań: '
last -R $user | grep "$user" | cut -d ' ' -f 16-17 | sort | uniq -c | awk
'{print "Dzień: ", $2, $3, " | Ilość logowań: ", $1}'
else
echo 'Nie znaleziono użytkownika '$user
fi



Ostatnio zmieniony przez Gość dnia Nie 11:32, 03 Maj 2009, w całości zmieniany 3 razy
Nie 11:23, 03 Maj 2009
burza
redaktor



Dołączył: 13 Cze 2008
Posty: 239
Przeczytał: 0 tematów

Pomógł: 2 razy
Ostrzeżeń: 0/5
Skąd: Legnica

Post
Uwierz mi tylko szaleniec porwał by się na Markowskiego z czyimiś skryptami i się nie nauczył ich na blachę Very Happy Razz


Post został pochwalony 0 razy
Pon 8:15, 04 Maj 2009 Zobacz profil autora
lasaczeq1
stały bywalec



Dołączył: 29 Paź 2007
Posty: 53
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Bartoszówek/Legnica

Post
ry5i3kszczur jak uruchamiasz swoje skrypty ? pytam bo od pol godziny chce uruchomic "Hello World" i nie chce sie wlaczyc RazzSmile wszystkie sposoby wydaje mi sie probowalem i caly czas mam " No such file or directory"


Post został pochwalony 0 razy
Pon 11:57, 04 Maj 2009 Zobacz profil autora
RED83
tutejszy



Dołączył: 19 Paź 2007
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 1/5

Post
lasaczeq1 najpierw musisz nadać im atrybut do wykonywania
chmod +x nazwa_skryptu
następnie wpisujesz /bin/bash nazwa_skryptu argumenty_wejściowe


Post został pochwalony 0 razy
Pon 12:44, 04 Maj 2009 Zobacz profil autora
Gość







Post
możesz inaczej, jak napisał Red, nadajesz prawa do uruchomienia, potem wpisujesz
Kod:
./nazwa_skryptu.sh arg_wejściowe

Pon 13:42, 04 Maj 2009
beny
BeNy_BuDoWnIcZy.2.0



Dołączył: 06 Sty 2008
Posty: 551
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: z Pizdochlewic

Post
Rysiek powiedziałeś ze Markowski Ciebie zmielił pytaniami, o co pytał ?


Post został pochwalony 0 razy
Wto 9:44, 05 Maj 2009 Zobacz profil autora
Gość







Post
o skrypt. Po prostu. Kazał każdą linię wyjaśnić co robi, jak się raz zamotałem, to pytał dopóki nie powiedziałem tego czego chciał. Wymagał też poleceń, ale to jest oczywiste, bo skrypty się na nich opierają ;]
Wto 13:55, 05 Maj 2009
tomasz1987
jeszcze stalszy bywalec



Dołączył: 16 Paź 2007
Posty: 101
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Żary

Post
aaaaaaaaaaaaa to juz jutro hyba nie dam rady tego napisac!!!!

edit
nic mi nie dziala wszenidzie bash mi wypisuje: command no find
czeka mnie zaje.....fajna nocka

edit
juz dziala ale w dalszym ciagu nie wiem jak Very Happy
zaczynam edycje :/

ha 1 juz mam
Kod:
#!/bin/bash
if [ $# -ne 1 ]
then
echo 'Brak wy maganego paramettru, lub nieodpowiednia ich ilosc'
echo 'Wywoluj: /bin/bash info.sh nazwa_katalogu'
exit
fi

for i in $(find $1 -type f)
do
iloscP=$[$iloscP+1]
done

for i in $(find $1 -type d)
do
iloscK=$[$iloscK+1]
done

echo 'Skrypt oblicza ilość plików i katalogów w  katalogu.'
echo 'Zawartość katalogu: '$folder':'
echo 'plikow: '$iloscP
echo 'katalogów: '$((iloscK-1))



Post został pochwalony 0 razy

Ostatnio zmieniony przez tomasz1987 dnia Czw 1:06, 07 Maj 2009, w całości zmieniany 3 razy
Śro 22:09, 06 Maj 2009 Zobacz profil autora
beny
BeNy_BuDoWnIcZy.2.0



Dołączył: 06 Sty 2008
Posty: 551
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: z Pizdochlewic

Post
Bierzcie i jedzcie z tego wszyscy

połącz.sh

Kod:

#!/bin/bash


if [ -z $1 ] || [ -z $2  ] || [ -z $3 ]
  then
   echo "Podaj wszystkie trzy pliki!"
else
   if [ -e $1 ] && [ -e $2 ]
     then
      if [ -r $1 ] && [ -r $2 ]
        then
       if [ -e $3 ]
           then
            if [ -w $3 ]
              then
               cat $1 > $3
               cat $2 >> $3
               echo "Połączono !"   
            else
               echo "W pliku: '$3' - nie można pisać!"
            fi
         else
            echo "Plik: '$3' -  nie istnieje!"
            if [ -w `pwd` ] 
              then      
               touch $3
               echo "Utworzenie pliku: '$3'"
               cat $1 > $3
               cat $2 >> $3
               echo "Połączono !"
            else
               echo "Nie można pisać w katalogu!"
               echo "Pliku: '$3' - nie utworzono!"
            fi
         fi
      else      
         echo "Nie można czytać plików: '$1' lub '$2'"
      fi
   else
      echo "Pliki: '$1' lub '$2' - nie istnieją!"
   fi
fi


sprawdz.sh
Kod:

#!/bin/bash

day=$[$(last $1|cut -d ' ' -f24-33|awk {'print $1FS$2FS$3'}|uniq|wc -l)-1]

if [ -z $1 ]
  then
   echo "Podaj nazwę użytkownika"
else
   if [ $(grep -c $1 /etc/passwd) -eq 1 ]   
     then
      echo "Dane użytkownika: $1"
      a=0
      for i in `seq $day` ; do
        a=$(($a+1))
        dzien=$(last $1|grep $1|cut -d ' ' -f24-33|awk {'print $1FS$2FS$3'}|uniq|head -n $a|tail -n 1)
      
          dni=$(last $1|grep $1|cut -d ' ' -f25-33|awk {'print $1FS$2FS$3'}|grep "$dzien"|uniq|head -n $a|tail -n 1)       
         ile=$(last $1|grep $1|cut -d ' ' -f25-33|awk {'print $1FS$2FS$3'}|grep "$dzien"| wc -l)

        echo "Data logowania: $dni Liczba logowań: $ile "
      done
   else
      echo "Podany użytkownik: $1 nie istnieje!"
   fi
fi


info.sh

Kod:

#!/bin/bash

if [ -z $1 ]  then
   echo "Podaj nazwę katalogu!"
elif [ -d $1 ]
  then
   pliki=$(ls -l $1 | grep -v razem | grep -v dr | wc -l )
   katalogi=$(ls -l $1 | grep -v razem | grep dr | wc -l )

   echo "Zawartość katalogu: '$1'"
   echo "plików:$pliki"
   echo "katalogów:$katalogi"
else
   echo "Podaj katalog!"
fi



Post został pochwalony 0 razy

Ostatnio zmieniony przez beny dnia Czw 14:11, 07 Maj 2009, w całości zmieniany 1 raz
Czw 14:09, 07 Maj 2009 Zobacz profil autora
Tribol
szanowany bywalec



Dołączył: 06 Lis 2007
Posty: 146
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: z HURAGANU

Post
siema, mam pytania do niektorych polecen:
co robia :

grep -w [ -w, --word-regexp
Wybiera tylko te linie, w których dopasowania
wzorca tworzą całe słowa. Przeprowadzany test
polega na tym, że dopasowywany podciąg musi albo
znajdować się na początku linii, albo być poprzed
zony znakiem nie tworzącym słowa. Podobnie, musi
albo znajdować się na końcu linii, albo musi
następować po nim znak nie tworzący słowa. Znakami
tworzącymi słowa są litery, cyfry i znak pod
kreślenia.]


awk {'print $1FS$2FS$3'}
uniq -c [ -c, --count
Wypisuje razem z linią ile razy się ona powtórzyła.]

grep -c [ -C [num], -num, --context[=num]
Wypisuje num linii (domyślnie 2) kontekstu w
wyjściu.]

if [ $(grep -c $1 /etc/passwd) -eq 1 ] - dlaczego tu porownujesz do 1 ?


Ubuntu Manual PL !!! [link widoczny dla zalogowanych]

edit beny


////////////////////////////////
////////////////////////////////
jaka komenda sprawi ze w danym pliku zostanie wyszukane dane słowo ale nie zostanie ono wysietlone ani linijka w ktorym sie znajduje ?
if [ -z $(grep -w $UZYTKOWNIK /etc/passwd) ]; then - nie chce zeby wyswietlalo mi wyniku dzialania tego polecenia grep w terminalu.


Post został pochwalony 0 razy

Ostatnio zmieniony przez Tribol dnia Pon 20:52, 11 Maj 2009, w całości zmieniany 3 razy
Pon 17:10, 11 Maj 2009 Zobacz profil autora
axes
jeszcze stalszy bywalec



Dołączył: 06 Lis 2007
Posty: 121
Przeczytał: 0 tematów

Pomógł: 3 razy
Ostrzeżeń: 0/5
Skąd: Jawor

Post
Pytanie beny odnośnie twojego skryptu info.sh...u mnie nie śmiga i nie wiem czemu :/

W konsoli otrzymuję coś takiego:

adin@ubuntu:~/Pulpit/nowy katalog$ /bin/bash info.sh /home/adin/Pulpit
info.sh: line 5: błąd składni w pobliżu nieoczekiwanego tokenu 'elif'
info.sh: line 5: `elif [ -d $1 ]'
adin@ubuntu:~/Pulpit/nowy katalog$

i jak by nie lukać to mam tak przy wszystkich pętlach :/ nie wiem o co kaman z tym :/


Post został pochwalony 0 razy
Wto 19:04, 12 Maj 2009 Zobacz profil autora
beny
BeNy_BuDoWnIcZy.2.0



Dołączył: 06 Sty 2008
Posty: 551
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: z Pizdochlewic

Post
Plik żródłowy, może coś źle skopiowałęm -
[link widoczny dla zalogowanych] v1.1


Post został pochwalony 0 razy
Wto 19:17, 12 Maj 2009 Zobacz profil autora
axes
jeszcze stalszy bywalec



Dołączył: 06 Lis 2007
Posty: 121
Przeczytał: 0 tematów

Pomógł: 3 razy
Ostrzeżeń: 0/5
Skąd: Jawor

Post
Już mam, zauważyłem że jeśli napiszę then po nawiasie kwadratowym to jest lipa :/ 'then' musi być w następnej linijce. Nie wiem czemu tak jest, ale grunt, że teraz działa Very Happy

Kod:

#!/bin/bash

folder=$1

if [ -d $1 ]
then

   ile_plikow=$(find $folder -type f | wc -l)
   ile_katalogow=$(find $folder -type d | wc -l)
   ile_katalogow=$((ile_katalogow-1))

   echo 'Zawartość katalogu: '$folder':'
   echo 'plików: '$ile_plikow
   echo 'katalogów: '$ile_katalogow
else

   echo "To nie katalog"

fi



Post został pochwalony 0 razy
Wto 19:23, 12 Maj 2009 Zobacz profil autora
Gość







Post
Axes, daj po tym nawiasie klamrowym średnik, spację i dopiero then -> powinno zadziałać jeśli będą w jednej linii ;]
Wto 19:40, 12 Maj 2009
burza
redaktor



Dołączył: 13 Cze 2008
Posty: 239
Przeczytał: 0 tematów

Pomógł: 2 razy
Ostrzeżeń: 0/5
Skąd: Legnica

Post
Mam pewnien problem jak moge zrobić żeby mi liczył te pliki i foldery we wskazanym folderze a nie tam gdzie znajduje sie skrypt ?

Bo mam taki kod
Kod:

   katalogi=`ls -lF | grep '/' | wc -l`
   pliki=$((`ls -lF | grep -v '*' | grep -v '/' |grep -v '~'| wc -l`-1))


   echo "     Katalogów:.....$katalogi"
   echo "     Plików:........$pliki"


próbowałem podobnie jak ma ry5i3kszczur ale nie działa to :/

Ok już działa oto cały skrypt jakby co ale ostrzegam ja jutro oddaje jak On powie że już ktoś taki oddawał to obedrę ze skóry i rzucę M&M-sowi na pożarcie Razz

Skrypt nr.1
Kod:

#!/bin/bash

if [ -d $1 ]
then   

   katalogi=`ls /$1 -lF | grep '/' | wc -l`
   pliki=$((`ls /$1 -lF | grep -v '*' | grep -v '/' |grep -v '~'| wc -l`-1))


   echo "     Katalogów:.....$katalogi"
   echo "     Plików:........$pliki"

else
   echo "Podana nazwa $1 to nie katalog lub katalog nie istnieje"
fi


Skrypt nr.2
Kod:

#!/bin/bash

if [ $# -eq 3 ]; then
 
   echo "     PLIK $1 ORAZ PLIK $2 ZOSTANA WPISANe DO PLIKU O NAZWIE $3 "

       if [ ! -f $1 ]; then
         echo "     PLIK $1 NIE JEST PLIKIEM ZWYKLYM ALBO PLIK TAKI NIE ISTNIEJE"
         exit       
        fi
      
       if [ ! -r $1 ]; then
         echo "     BRAK PRAW ODCZYTU DO PLIKU $1"
         exit       
        fi
      

       if [ ! -f $2 ]; then
         echo "     PLIK $2 NIE JEST PLIKIEM ZWYKLYM ALBO PLIK TAKI NIE ISTNIEJE"
         exit
        fi
      
       if [ ! -r $2 ]; then
         echo "     BRAK PRAW ODCZYTU DO PLIKU $2"
         exit
        fi
      


       if [ ! -f $3 ]; then
         echo "     PLIK $3 NIE ISTNIEJE, TWORZENIE PLIKU"
         dd=`pwd`
         if [ ! -w $dd ]; then
             echo "     BRAK MOZLIWOSCI STWORZENIA PLIKU $3 W KATALOGU $dd"
             exit
         fi
          
       elif [ ! -w $3 ]; then
         echo "     BRAK PRAWA ZAPISU DO PLIKU $3"
         exit
        fi

   `cat ./$1 > ./$3`
   `cat ./$2 >> ./$3`
   echo "      OPERACJA SIE POWIODLA"
else
    echo "     NIE PODANO WLASCIWEJ LICZBY PARAMETROW (3)"
    exit
 fi


Skrypt nr.3
Kod:

#!/bin/bash

if [ ! $# -eq 1 ]; then
    echo "----------ZLA LICZBA WPROWADZONYCH PARAMETROW----------"
    exit
elif [ `cat /etc/passwd | awk -F ":" '{ print $1 }' | grep  $1 -w | wc -l` -eq 0 ]; then
    echo "..........TAKI UZYTKOWNIK NIE ISTNIEJE.........."
    exit
fi

while [ `who | awk '{ print $1 }' | grep -w $1 | wc -l` -eq 0 ] ; do
    echo "`date | awk '{ print $4 }'`     ,,,,,UZYTKOWNIK: $1 NIE JEST ZALOGOWANY W SYSTEMIE,,,,,"
    sleep 10
    exit
done

echo "`last -R | awk '{ print $3, $4, $5 }' | sort -k3 |uniq -c | awk '{print " DZIEN LOGOWANIA: " $2,$3,$4 " ILOSC LOGOWAN: "$1}'`."


Co prawda ten 3 nie jest super extra zrobiony bo jeszcze jakies smieci pokazuje ale moze byc Very Happy


Post został pochwalony 0 razy

Ostatnio zmieniony przez burza dnia Śro 19:00, 13 Maj 2009, w całości zmieniany 2 razy
Śro 17:37, 13 Maj 2009 Zobacz profil autora
Wyświetl posty z ostatnich:    
Odpowiedz do tematu    Forum www.pwszinf.fora.pl Strona Główna » Systemy operacyjne GK/SSK / Laboratorium z M. Markowskim Wszystkie czasy w strefie CET (Europa)
Idź do strony 1, 2  Następny
Strona 1 z 2

 
Skocz do: 
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Music Lyrics.
Regulamin