[Bash] Pomoc w skrypcie

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
K0nio
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 05 lis 2008, 13:31
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

[Bash] Pomoc w skrypcie

Post autor: K0nio »

Witam mam za zadanie wykonac "prosty" skrypt
w ktorym mam za zadanie

Kod: Zaznacz cały

* aktualną datę, nazwę i czas pracy systemu,
* spis zalogowanych użytkowników i spis sesji osoby uruchamiającej skrypt,
* wyświetli prawa dostępu do pliku podanego jako parametr z linii poleceń: skrypt plik i poda typ/opis tego pliku
* do powyższego skryptu dopisać (nalepiej w postaci funkcji) kod sprawdzający czy właściciel pliku jest zalogowany, a jeżeli tak to wyświetli informacje o nim i jego otwarte sesje.
* napisać skrypt (np. do użycia jako CGI) generujący dynamicznie stronę WWW (plik HTML) o tytule: To jest spis plikow w katalogu KATALOG zawierająca spis i opis plików w podanym z lini poleceń katalogu, na każda pozycja spisu jest hiperpołączniem do odpowiedniego pliku.
Zatrzymalem sie przy czwartym punkcie, nie mialem nigdy stycznosci z bashem i to zadanie przeroslo moje mozliwosci

Kod: Zaznacz cały

 #!/bin/sh
# dzieki komendzie "date" uzyskujemy aktualna date, oraz godzine
echo Aktualna data: `date`
# polecenie podaje spis zalogowanych uzytkownikow
echo W systemie pracuja: 
who -q|grep -v user
#polecenie wyswietli id uzytkownika zalogowanego
echo Jestes zalogowany jako:
whoami
# wartosci whoami przypisuje wartosc id 
whoami=id
echo Wyswietlam aktywne procesy uzytkownika zalogowanego
ps -aux | grep id



echo szukaj pliku;
read nazwapliku
ls -la $nazwapliku



na razie udalo mi sie tyle napisac tak na "brudno" jesli ktos dalby wskazowke albo cos napisal bylbym wdzieczny gdyz czas nagli a ja nie wiem "z czym to sie je" :wall:
rack

Odp: [Bash] Pomoc w skrypcie

Post autor: rack »

hej,

ponieważ jutro sylwester a ja mam na imie Sylwek ... poniżej troche wskazówek i skrypt tworzący linki do plików. Zmododyfikuj to sobie wg potrzeb ...

Do pierwszych punktów masz komendy, powinno wystarczyć do tego co masz zrobić. Poszukaj w manualch jak uzyskać odpwiednie dane. Pozostaje to rozpisać jak Ci się podoba.

*aktualną datę, nazwę i czas pracy systemu,
komendy
1. date,uptime ( o ile tu chodzi o uptime)

spis zalogowanych użytkowników i spis sesji osoby uruchamiającej skrypt
Tu masz wiele komend do wyboru ... wybierz sobie co chcesz ...
komendy
2. who,users,w, ps -U twoj_uzytkownik -u twój_użytkownik u, last

3. wyświetli prawa dostępu do pliku podanego jako parametr z linii poleceń: skrypt plik i poda typ/opis tego pliku
ls -l,file

4.do powyższego skryptu dopisać (nalepiej w postaci funkcji) kod sprawdzający czy właściciel pliku jest zalogowany, a jeżeli tak to wyświetli informacje o nim i jego otwarte sesje.

// własciciel pliku
ls -l | grep twój_plik | awk '{print $3}'
// właściciel pliku zalogowany
who | grep twój_użytkownik
// informacje o uzytkowniku możesz wyświetlić tak
id użytkownik

5. skrypt

Kod: Zaznacz cały

katalog='.'     
files=`cd $katalog && ls`
linki='' 
for i in $files
  do 
    path=$katalog'/'$i
    if [ -f $path ]; then 
      link_in='<a href = "'$path'">'
      link_out='</a>
'
      linki=$linki$link_in$i$link_out
    fi
done
printf "<html><head><title>To jest spis plikow w katalogu $katalog</title></head><body>$linki</body></html>" > twoj_plik.html  
enjoy

S.Wojnowski
K0nio
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 05 lis 2008, 13:31
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: [Bash] Pomoc w skrypcie

Post autor: K0nio »

Kod: Zaznacz cały

#!/bin/sh
# dzieki komendzie "date" uzyskujemy aktualna date, oraz godzine
echo Aktualna data: `date`
echo Czas pracy systemu uptime
# polecenie podaje spis zalogowanych uzytkownikow
echo W systemie pracuja: 
who -q|grep -v user
#polecenie wyswietli id uzytkownika zalogowanego
echo Jestes zalogowany jako:
whoami
# wartosci whoami przypisuje wartosc id 
whoami=id
echo Wyswietlam aktywne procesy uzytkownika zalogowanego
ps -aux | grep id

echo szukaj pliku;
read nazwapliku
ls -la $nazwapliku


#// własciciel pliku
ls -l | grep $nazwapliku | awk '{print $3}'
#// właściciel pliku zalogowany
who | grep id
#// informacje o uzytkowniku możesz wyświetlić tak
ps -aux | grep id


katalog='.'     
files=`cd $katalog && ls`
linki='' 
for i in $files
  do 
    path=$katalog'/'$i
    if [ -f $path ]; then 
      link_in='<a href = "'$path'">'
      link_out='</a>
'
      linki=$linki$link_in$i$link_out
    fi
done
printf "<html><head>To jest spis plikow w katalogu $katalog</title></head><body>$linki</body></html>" > twoj_plik.html
powiedzmy ze 4 podpunkty dzialaja, ale ten ostatni jest dla mnie zbyt skomplikowany nie wiem co tam zmienic zeby zadzialal
rack

Odp: [Bash] Pomoc w skrypcie

Post autor: rack »

Wrzuć go sobie do pliku z rozszerzeniem sh.
potem chmod 755 twoj_plik.sh
następnie

./twoj_plik.sh

i powinienes otrzymać plik html z linkami do wszystkich plików w katalogu ...
Katalog jest zakondowany na sztywno jako '.', czyli ten w którym jest twój_plik.sh ...
jeżeli uruchomisz plik

./twoj_plik.sh /usr/bin

to pierwszy parameter będzie dostępny w skrypcie jako $1
Zmienna katalog w takiej sytuacji może mieć postać directory=$1 zamiast tej domyślnej kropki ...


Plik wyjściowy też jest zakodowany na sztywno na koncu pliku jako twoj_plik.html ...
Zamień go na pewłną ściezke gdzie ma być stworzony plik z kodem html ...
Np.:
out=`echo ~/linki.html`
i teraz twoj_plik.html zamieniasz na $out ...
Plik linki html. powinienes znaleźć w Twoim katalogu domowym ...
jak masz zainstalowaną operę to
cd ~ && opera linki.html

jak nie to otwórz ten plik przy pomocy firefoxa ...
S.Wojnowski
K0nio
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 05 lis 2008, 13:31
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: [Bash] Pomoc w skrypcie

Post autor: K0nio »

dzieki wielkie za "lopatologiczne wyjasnienie" jestem bardzo wdzieczny za pomoc, przestraszylem sie tego punktu ostniego bo jest cos tam o cgi , a szczerze powiem pierwszy raz o tym uslyszalem, rano jeszcze sprawdze co i jak

A wiec wszystkiego najlepszego z okazji imienin , i jeszcze raz wielkie dzieki ;)
rack

Odp: [Bash] Pomoc w skrypcie

Post autor: rack »

hi hi,
niezamaco
fajnego sylwestra ;)))

S.Wojnowski
K0nio
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 05 lis 2008, 13:31
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: [Bash] Pomoc w skrypcie

Post autor: K0nio »

Witam to, znów ja mam pytanie jak umiescić fragment w funkcji ?

Kod: Zaznacz cały


function zalogowany
{
#// własciciel pliku
ls -l | grep $nazwapliku | awk '{print $3}'
#// właściciel pliku zalogowany
who | grep id
#// informacje o uzytkowniku możesz wyświetlić tak
ps -aux | grep id
}

napis
czy jest to poprawne ?
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości