UNIXscript.pdf
(
22 KB
)
Pobierz
86714730 UNPDF
1
Przypomnienie
Podstawowe katalogi i ich funkcja
/bin
- tu zapisywane s a wszystkie podstawowe pliki bez których niemozliwy jest start i póz-
niejsza praca systemu
/boot
- zawiera j adro systemu oraz pliki niezbedne do poprawnego uruchomienia i pracy sys-
temu
/dev
- zgodnie z zaimplementowan a w systemach unixowych koncepcj a urz adzen systemo-
wych katalog ten zawiera pliki reprezentuj ace poszczególne komponenty sprzetowe na-
szej maszyny
/etc
- tu s a zapisywane pliki konguracyjne wszystkich zainstalowanych w systemie progra-
mów
/home
- tu tworzone s a katalogi domowe uzytkowników. Katalog ten powinien znajdowac sie
na innej partycji.
/lib
- gromadzi biblioteki współdzielone przez zainstalowane w systemie aplikacje
/lost+found
- tu zapisywane s a pliki i katalogi tworzone podczas naprawiania systemu plików
/mnt
- autorzy systemu proponuj a własnie tu podmontowywac zewnetrzne systemy plików
/omt
- odpowiednik Program Files w MS Windows
/proc
- podczas pracy system tworzy tu pliki umozliwiaj ace kontrole jego działania
/root
- katalog osobisty superuzytkownika
/tmp
/usr
- bardzo duzy objetosciowo katalog zawieraj acy pliki i biblioteki tworz ace srodowisko X-
Window i inne podstawowe aplikacje unixowe, t.j. greep, awk, more, less itd. (podkatalog
/bin)
/var
- tutaj przechowywane s a pliki dzienników systemowych (/log), w których zapisywane s a
poszczególne zdarzenia. Tu takze traa poczta przychodz aca do uzytkowników systemu
oraz tworzone s a kolejki poczty wychodz acej i drukowania
Przykład wykorzystania potoku
ls --help | more
Przekierowanie standardowego we-wy
1
echo "Ala ma kota" > alafile
echo "i psa" >> alafile
2 Programowanie w Shellu - Podstawy
Pisanie skryptu polega na ł aczeniu polecen shella tak, aby zrealizowane były potrzeby uzyt-
kownika. Uzytkownik tworzy skrypt za pomoc a wpisania polecen shella do pliku. Mozna przy
tym uzywac dowolnego edytora, np. vi, emacs lub edytora z programu Midnight Commander.
Plik musi byc wykonywalny, zatem nalezy mu ustawic odpowiednie prawa dostepu np.
chmod 755 skrypt1
2.1 Kilka podstawowych polece n wykorzystywanych przy pisaniu skryp-
tów
Uwaga!!! Wszystkie ponizsze polecenia nalezy przetestowac pisz ac odpowiednie skryp-
ty
Polecenie
grep
szuka okreslonych napisów w plikach i wyswietla je na standardowym
wyjsciu.
grep "i psa" alafile grep -n "i psa" alafile
Zliczanie słów i wierszy, przykład sprawdzaj acy ilu uzytkowników pracuje w systemie
who | wc -l
Znajdz nazwisko uzytkownika np.
w pliku
/etc/passwd
za pomoc a polecenia
grep g3 /etc/passwd
Polecenia
cut
i
paste
Wycinanie potrzebnych pól (z wyniku wyswietlonego przy uzyciu poprzedniego polecenia)
za pomoc a polecenia cut (
pola s a ograniczone za pomoc a znaku
:
). Opis pól: 1 - nazwa konta,
2 - hasło itd.
Interesuje nas pozycja 1 i 5, wiec
grep student /etc/passwdgrep | cut -f1,5 -d:
Zakres pól wskazuje sie za pomoc a znaku
-
.
Z wyjscia polecenia
ls
wytnij prawa dostepu i nazwe pliku
ls -l | cut -c1-9,55-
2
Zapoznac sie z poleceniem
paste
(
man paste
). Napisac skrypt wykorzystuj acy to polece-
nie.
Przetwarzanie informacji
Zamiana napisu
ala
na
heniek
w pliku
alafile
sed -e "s/ala/heniek/" alafile
Zamiana znak po znaku
Zamiana małych liter na duze z pliku
ala
do pliku
ALA
tr "[a-z]" "[A-Z]" < ala > ALA
zamiana spacji na entery
tr "[ ]" "[\012]" < ala
usuwanie (squeeze) nadmiarowych spacji itp.
tr -s "[ ]" "[ ]" < ala
usuniecie tabulatora
tr -d "[\t]" < ala
uzywanie
awk
, kilka prostych polecen
awk -F: ’{print $1 $5}’ /etc/passwd
ls -l | awk -F: ’{print $1}’
2.2 Troche o zmiennych
Zmienna reprezentuj aca sciezke do katalogu osobistego uzytkownika
$HOME lub ~
Odnajdywanie polecen przez shell zmienna
$PATH
.
Zapoznaj sie z zawartosci a pliku
.bash_profile
. Zmodykuj zmienn a
$PATH
tak, aby
był widoczny katalog
bin
znajduj acy sie w twoim katalogu osobistym umiesc nim którys z
wczesniej stworzonych plików, a nastepnie spróbuj go uruchomic z innego katalogu.
Zmienne specjalne
- dostarczaj a informacji o procesie shella. S a one zawsze ustawiane przez
shell - ich zawartosc jest dostepna po odwołaniu sie do nich za pomoca znaku
$
. Wartosci
tych zmiennych nie mozna zmieniac za pomoc a zwykłych polecen. np. zmiennym
$0
do
$9
przekazywane s a parametry przekazywane do skryptu.
$#
- nazwa programu shellowego
3
$1 ...
- argumenty pozycyjne
$*
- rozwijane do
"$1 $2 ..."
$@
- rozwijane do
"$1" "$2" ...
$$
- numer procesu biez acego procesu shella
$!
- numer procesu ostatniego zadania shellowego
Zmienne srodowiska
- wykorzystywane przez shell do przechowywania danych pomocnych do
nadzorowania sesji shella. Uzytkownik ma dostep do nich i moze je zmieniac.
$PS1
- znak zachety
\t
- biez acy czas
\d
- biez aca data
\w
- biez acy katalog roboczy
\u
- nazwa uzytkownika
\h
- nazwa hosta
HISTFILE
- nawa pliku z historia polecen
HISTSIZE
- liczba pamietanych polecen
Wyswietl zawartosc zmiennej
$PS1
, tzn.
echo $PS1
.
Zmienne programowe
Przykład
temp_name=/usr/tmp
cd $temp_name
2.3 Instrukcje warunkowe
Polecenie test
Podstawowe warunki testujace (
$?
- kod powrotu ostatniego polecenia)
-r plik
- prawda, jesli plik istnieje i ma prawa do czytania
-w plik
- prawda, jesli plik istnieje i ma prawa do pisania
-x plik
- prawda, jesli plik istnieje i ma prawa do pisania
4
-f plik
- prawda, jesli plik istnieje i jest zwykłym plikiem
-d plik
- prawda, jesli plik istnieje i jest katalogiem
-s plik
- prawda, jesli plik istnieje i ma rozmiar wiekszy od zera
-z s1
- prawda, jesli długosc napisu s1 wynosi zero
-n s1
- prawda, jesli długosc napisu s1 jest rózna od zera
s1 = s2
- prawda, jesli s1 i s2 s a identyczne
s1 != s2
- prawda, jesli s1 i s2 s a rózne
l1 -eq l2
- równe liczby
l1 -ne l2
- rózne
l1 -gt l2 - l1>l2
l1 -ge l2 - l1>=l2
l1 -lt l2 - l1<l2
l1 -le l2 - l1<=l2
Powyzsze wyrazenia mozna ł aczyc za pomoc a operatorów
AND (-a)
OR (-o)
Mozliwe jest takze uzycie operatora
NOT (!)
. Przykłady:
test -r filename
echo $?
0
dwa napisy
test "myname" = "lja"
echo $?
1
test -w ala -a -r ala
echo $?
5
Plik z chomika:
bo7
Inne pliki z tego folderu:
MAC OS X AdminGuide_PL(1).pdf
(26672 KB)
Hungry Minds - Exchange 2000 Server Administrator's Bible.pdf
(31305 KB)
Mike McCune. Integrating Linux and Windows (Prentice Hall PTR)(1).pdf
(4297 KB)
PCL.pdf
(3008 KB)
Novell Netware 5.x. Ćwiczenia praktyczne(1).pdf
(483 KB)
Inne foldery tego chomika:
Coś do picia
czasopisma
Dekoracje
Feng Shui
filmy
Zgłoś jeśli
naruszono regulamin