Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:sitw:2016:wstep [2017/10/14 22:03] bstachura |
pl:dydaktyka:sitw:2016:wstep [2019/06/27 15:50] (aktualna) |
iface eth0 inet dhcp | iface eth0 inet dhcp |
</code> | </code> |
| |
| ==== Instalacja w systemie Linux ==== |
| |
| Instalacja z repozytoriów:\\ |
| <code bash> |
| apt-get update |
| apt-get install nazwa_pakietu |
| </code> |
| |
| Instalacja z pakietu pobranego z sieci:\\ |
| Pobranie pakietu:\\ |
| <code bash> |
| wget -opcje adres.z.ktorego.popieramy |
| </code> |
| Instalacja pobranego już pakietu:\\ |
| <code bash> |
| dpkg -i nazwa_pakietu.deb |
| </code> |
| ==== Tworzenie skryptów bash ==== |
| |
| Skrypty powłoki muszą zostać poprzedzone odpowiednią instrukcją odwołującą się do interpretera powłoki. W Państwa przypadku jest to powłoka /bin/bash" |
| |
| <code bash> |
| #!/bin/bash |
| </code> |
| |
| Zmienne w powłoce: |
| <code bash> |
| #!/bin/bash |
| zmienna="SiTW nie restartuj mnie" |
| echo $zmienna |
| </code> |
| |
| Zmienna specjalna **$?** |
| |
| <code bash> |
| #!/bin/bash |
| vdir /home/test |
| echo $? |
| </code> |
| |
| W zmiennej tej zapisywana jest informacja czy program ukończył działanie poprawnie.\\ |
| |
| Instrukcja warunkowa **if**:\\ |
| <code bash> |
| if wartość |
| then |
| zrób coś |
| else |
| zrób coś innego |
| fi |
| </code> |
| |
| Instrukcja **case**:\\ |
| <code bash> |
| #!/bin/bash |
| wartosc=1 |
| case "$wartosc" in |
| 1) |
| echo Liczba ma wartosc 1 |
| ;; |
| 2) |
| echo Liczba ma wartosc 2 |
| ;; |
| Esac |
| </code> |
| Pętla **for**:\\ |
| <code bash> |
| #!/bin/bash |
| for warzywa in marchew seler kalafior |
| do |
| echo $warzywa |
| done |
| </code> |
| Pętla **while**:\\ |
| <code bash> |
| #!/bin/bash |
| i=0 |
| while [ $i -lt 2 ] |
| do |
| echo $i |
| i=`expr $i + 1` |
| done |
| </code> |
| Stosowanie **break**:\\ |
| <code bash>#!/bin/bash |
| for warzywo in marchew seler kalafior |
| do |
| echo $owoc |
| if [ "$warzywo" = "kalafior" ] |
| then |
| break |
| fi |
| done |
| </code> |
| |
| Stosowanie **continue**:\\ |
| <code bash> |
| #!/bin/bash |
| for warzywo in marchew seler kalafior |
| do |
| echo $owoc |
| if [ "$warzywo" = "marchew" ] |
| then |
| continue |
| fi |
| echo nastepna linia |
| done |
| </code> |
| |
| Argumenty przekazywane do skryptu są w następujący sposób:\\ |
| <code bash> |
| [xyz@localhost ~]$ ./skrypt super |
| </code> |
| |
| Do argumentów wysłanych po uruchomieniu skryptu odwołujemy się za pomocą zmiennych **$1, $2.....$n**. |
| |
| <code bash> |
| #!/bin/bash |
| echo "Dzisiaj pogoda była $1" |
| </code> |
| ==== Zadania ==== |
| |
| * Przejdź do katalogu /tmp |
| * Stwórz plik /tmp/lab1/lab1.sh |
| * Zmień mu prawa dostępu na rwxrwxrwx. |
| * Za pomocą echo i przesunięcia bitowego zapisz w nim ciąg znaków: "pierwsza linia" a następnie w drugiej linii: "druga linia" |
| * Skopuj go do lokalizacji /tmp/lab1/lab1a.sh |
| * Odbierz wszelkie prawa grupie do pliku /tmp/lab1/lab1a.sh |
| * Stwórz link symboliczny do pliku /tmp/lab1/lab1.sh w lokalizacji /tmp/labek |
| * Napisz skrypt rysujący choinkę w konsoli, |
| * Napisz skrypt zalogowanych.sh, który zwróci liczbę aktualnie zalogowanych użytkowników i wypisze twój login, |
| * Napisz skrypt szukaj-tutaj.sh, który będzie wyszukiwał pliki o nazwie podanej w parametrze skryptu. Wyszukiwanie ma się odbywać od katalogu w którym aktualnie pracuje użytkownik, |
| * Napisz skrypt serwer.sh, który przyjmuje tylko trzy parametry: „start” (wyświetla napis: "Usługa jest uruchamiana"), „stop” (wyświetla napis: "Usługa jest zatrzymywana") i „restart” (wyświetla napis: "Usługa jest restartowana"), |
| * Napisz skrypt pliki-wykonywalne.sh, który wyświetli nazwy wszystkich plików z katalogu /bin/, które użytkownik ma prawo uruchamiać, |
| * Zainstaluj git, |
| * Usuń git. |