Autor |
Wiadomość |
Gość
|
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:
| |
#!/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:
| |
#!/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:
| |
#!/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
|
|
|
|
Uwierz mi tylko szaleniec porwał by się na Markowskiego z czyimiś skryptami i się nie nauczył ich na blachę
Post został pochwalony 0 razy
|
|
Pon 8:15, 04 Maj 2009 |
|
|
lasaczeq1
stały bywalec
Dołączył: 29 Paź 2007
Posty: 53
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Bartoszówek/Legnica
|
|
|
|
ry5i3kszczur jak uruchamiasz swoje skrypty ? pytam bo od pol godziny chce uruchomic "Hello World" i nie chce sie wlaczyc 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 |
|
|
RED83
tutejszy
Dołączył: 19 Paź 2007
Posty: 24
Przeczytał: 0 tematów
Ostrzeżeń: 1/5
|
|
|
|
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 |
|
|
Gość
|
|
|
możesz inaczej, jak napisał Red, nadajesz prawa do uruchomienia, potem wpisujesz | | ./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
|
|
|
|
Rysiek powiedziałeś ze Markowski Ciebie zmielił pytaniami, o co pytał ?
Post został pochwalony 0 razy
|
|
Wto 9:44, 05 Maj 2009 |
|
|
Gość
|
|
|
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
|
|
|
|
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
zaczynam edycje :/
ha 1 juz mam
| | #!/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 |
|
|
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
|
|
|
|
Bierzcie i jedzcie z tego wszyscy
połącz.sh
| |
#!/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
| |
#!/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
| |
#!/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 |
|
|
Tribol
szanowany bywalec
Dołączył: 06 Lis 2007
Posty: 146
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: z HURAGANU
|
|
|
|
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 |
|
|
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
|
|
|
|
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 |
|
|
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
|
|
|
|
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 |
|
|
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
|
|
|
|
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
| |
#!/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 |
|
|
Gość
|
|
|
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
|
|
|
|
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
| |
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
Skrypt nr.1
| |
#!/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
| |
#!/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
| |
#!/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
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 |
|
|
|
|
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
|
|
|