Strona 1 z 1

Tworzenie prostego skryptu

: 09 kwietnia 2010, 15:07
autor: Ndejo
W związku z tym, że to mój pierwszy post, także witam wszystkich serdecznie.

Mam zainstalowanego Debiana 5.0.4 i386 na pendrive'ie. Potrzebuję teraz stworzyć skrypt powłoki czyszczący historię poleceń powłoki oraz wymusić jego wykonanie przy wyłączeniu systemu i jego starcie. Do tego mam jeszcze przywrócić pewne pliki konfiguracyjne, ale to może później, jak będę znał podstawy, to myślę, że z drugim problemem sobie poradzę. A jak nie to zawsze liczę na Was zapaleńców.

Jeśli ktoś jest w stanie wytłumaczyć, w jaki sposób można taki skrypt napisać, dać jakiś przykładowy, lub gotowy mnie interesujący - za każdą pomoc będę wdzięczny.

Jeśli ta informacja jest potrzebna/przydatna to mam zainstalowane dwa menadżery logowania gdm i kdm - używam tego drugiego.

Jest to moja pierwsza "podróż" po Linuksie także proszę o wyrozumiałość ;]

: 09 kwietnia 2010, 16:26
autor: tmy123
Historia przechowywana jest w:

Kod: Zaznacz cały

~/.bash_history
Wyczyścić możesz np. poleceniem

Kod: Zaznacz cały

echo > ~/.bash_history
Skrypt sobie już z tego zrobisz bez problemu

: 09 kwietnia 2010, 16:32
autor: Ndejo
Dziękuję, ale niestety nie wiem jak mam sobie z tego skrypt zrobić. A zwłaszcza jak zrobić, aby był uruchamiany automatycznie i przy starcie i wyłączaniu systemu.

: 09 kwietnia 2010, 18:58
autor: tremor
Historia jest zapamiętywana w pliku określonym przez zmienną HISTFILE (domyślnie ~/.bash_history). Jeśli zmienna ta jest pusta historia nie będzie w ogóle przechowywana w pliku - może to Ci wystarczy za rozwiązanie.
Coś mi podpowiada, że chcesz zrobić coś brzydkiego, skoro pytasz jak zacierać za sobą ślady...

: 09 kwietnia 2010, 19:53
autor: Ndejo
Robię projekt protokołu SNMP, który będzie używany przez późniejsze roczniki. Ma być zabezpieczenie właśnie czyszczenia powłoki i przywracania konfiguracji plików po zakończeniu pracy - całość jest osadzona na pendrive.

Dlatego potrzebuję kawałek skryptu. Mam, który tmy123 napisał, ale nadal nie wiem w jaki sposób zapisać, o jakiej nazwie, o jakim rozszerzeniu i w jaki sposób wymusić wykonywanie tego przy starcie i wyłączaniu systemu.

Jakbym chciał coś popsuć to wolałbym to robić na Windowsie - przynajmniej wiem co, jak i gdzie psuć.

: 09 kwietnia 2010, 21:01
autor: tremor
Oto wyjątek z strony podręcznika basha:

Kod: Zaznacz cały

man bash

Kod: Zaznacz cały

       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bashrc
              The systemwide per-interactive-shell startup file
       /etc/bash.bash.logout
              The systemwide login shell cleanup file, executed when  a  login
              shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The  individual  login shell cleanup file, executed when a login
              shell exits
Przykładowy banalny skrypt bashowy:

Kod: Zaznacz cały

#!/bin/bash

PATH=/bin:/usr/bin

rm $HISTFILE


: 09 kwietnia 2010, 21:09
autor: Ndejo
Rozumiem, że plik zapisuje o dowolnej nazwie?

A teraz jak zrobić żeby ten skrypt uruchomić automatycznie przy włączaniu/wyłączaniu komputera?

: 10 kwietnia 2010, 00:34
autor: tmy123
Tak dowolnej, tylko musisz nadać prawa do wykonywania czyli:

Kod: Zaznacz cały

chmod a+x nazwa_pliku
Do .bashrc i .bash_logout dodaj np.

Kod: Zaznacz cały

sh nazwa_skryptu.sh
i będzie wykonywany przy zalogowaniu lub wylogowaniu z powłoki.
Lub też żeby był wykonywany przy starcie systemu trzeba do /etc/rc.local dodać.