ćwiczenia4 15

Zagadnienia do samodzielnego

poznania:


W i-więxle przechowuje się numery bloków tworzących pliki

cat <nazwa pliku> <=odczyt zawartości pliku

cp <skąd i co> <dokąd (ew. nowa nazwa)> <=kopiowanie


rm <zasób>
- usunięcie pliku

mv<skąd i co > <dokąd (ew. nowa nazwa) > - przenoszenie

mv można użyć w kontekście nowej nazwy. np:

mv<stara nazwa> <nowa nazwa>

chmod - zmiana prawa dostępu

przykład użycia

chmod <prawa> <zasób>

np.

ls -l koper Ten nasz koper - to przykładowy plik

chcemy zmienić dostęp dla właściciela - + wykonanie , grupa - + zapis, reszta -+ zabrać r, dodać x.


terminal podświetla pliki na zielono którą mają opcje x.

Drugi wariant , że można pisać to za pomocą 777

1 1 1 1 1 1 1 1 1

r w x r w x r w x

1-jest prawo

0-brak

rw- r-- r--

110 100 100

chcemy r w x r w - - w -

7 6 2

chmod 762 koper

W kontekście terminala tekstowego istnieją konstrukcje - strumienie : We , Wy , i Wy błędów.(taśmociągi)

Strumienie są dołączane do urządzeń, domyslnie

WE - klawiatura

WY -monitor

WY błędów - monitor

Czy można przekierowywać strumienie ?

WE - np zapis “<koper” - wejściem jest zawartośc plku “koper”

WY - np zapis “>plik2” - wyjściem jest plik o nazwie plik2

WY błędów - np zapis “2>plik3” - wyjściem błędów jest plik “plik3”

ls -i <= pokazuje nazwy zasobów i i-więzły im przyporządkowane

“Wszystko jest plikiem” - to strumienie też są plikami - mają przypisane i - węzły:

WE - nr 0

WY - nr 1

WY błędów - nr 2 paczaj zapis “2>plik3”

Symbol “>>” oznacza dopisać do końca istniejącego pliku. w przekierowaniu

Zagadnienia do samodzielnego poznania:

struktura poleceń find, grep, polecenia realizujšce przykładowe zadania, postaci i typy wyników otrzymywanych od tych poleceń, wybrane parametry polecenia find, sposób tworzenia wzorca wyszukiwania - polecenie grep; pojęcie œśrodowiska sesji w Linuxie, sposoby ustalania parametrów śœrodowiska, zapoznanie się z ustawieniami - polecenia env, set, ustalanie własnych zmiennych; shell jako język skryptowy, elementy strukturalne - if, case, pętle.

find – Polecenie find przeszukuje drzewo katalogów w poszukiwaniu plików lub katalogów o podanej nazwie lub jej części, lub o podanych kryteriach takich jak: rozmiar, typ, właściciel plików, data utworzenia lub data ostatniej modyfikacji.Składnia tego polecenia jest następująca: find katalogi_startowe kryterium wyszukiwania i operacje, które należy wykonać na wyszukanych elementach.

find katalog kryterium akcja

1.Znajdowanie po nazwie:
find -name nazwa_pliku - wyszukuje z bieżącego katalogu pliki od podanej nazwie w tym przypadku o nazwie nazwa_pliku wy

find -iname ‘*literki*’ - wyszukuje z bieżącego katalogu pliki które zawierają w nazwie ciąg znaków literki i wyświetla

można dodać na końcu polecenia -print wymusza wypisanie ścieżki pliku. ( bezwzględnej)
np. find -name nazwa_pliku -print

2.Znajdowanie po prawach dostępu (wartość ósemkowa)

find -perm <wartość ósemkowo> -print - wyświetla pliki o prawach dostępu ósmekowo zgadzających się z wartością ósemkową wpisaną po komendzie -perm

3.Znajdowanie po typie pliku

find -type <jeden z typów> - znajduje pliki podanego typu:

typy plików:

b-blokowy (buforowany) plik specjalny

c-znakowy (niebuforowany) plik specjalny

d-katalog

p-łącze nazwane (FIFO)

f-zwykły plik

l-dowiązanie symboliczne

s-gniazda

4. Znajdowanie plików poprzez podaie ich rozmiaru

find -size <liczba><jednostka> - podaje pliki o podanym rozmiarze można też użyć

find -size -100k -poda mniejsze niż 100k find -size +100k -znajdzie pliki zajmujące więcej niż 100k

find -empty - pokaże pliki które są puste można łączyć wyrażenia typu rozmiar i rodzaj pliku

np find -empty -type d -pokaże pliki które są puste i są typu d -czyli katalog

5.Znajdowanie plików poprzez przynależność do użytkownika

find -nouser -pokazuje mi pliki nienależące do nikogo

find -user <nazwa użytkownika> - pokazuje pliki należąće do konkretengo użytkownika

find -uid <id użytkownika > - również pokazuje pliki nalężace do konkretnego użytkownika

można dodać jeszcze, że można wyszukiwać w różny sposób np dopisać słówko

-not lub ! które oznacza negacje

np find -not user <nazwa użytkownika> wyszuka pliki nienależące do podanego użytkownika

zamiast not można użyć !.

można łączyć także poprzenie kryteria z wielkośćią pliku czy typem itp

np find -user Admin -not -size +100k type d … i tak dalej xD

można szukać czy należy do jednego lub drugiego używa się wtedy albo -o albo | takiej pionowej kreseczki

6. Poprzez przynależnośc do grupy:

find -group <nazwa grupy>

7. Znajdowanie plików na podstawie wieku, modyfikacji

find -<jedno z poniższych>

grep - to powszechnie wykorzystywany program do wyszukiwania w strumieniu wejścia ciągów tekstowych, pasujących do podanego wyrażenia regularnego. Występuje on w każdym systemie uniksowym a jego autorem jest Ken Thompson.

grep ma kilka przydatnych parametrów: grep kryteria ciąg_znaków nazwa pliku

Wyrażenia regularne są wzorcami opisującymi, zastępującymi łańcuchy tekstów, zostały one wprowadzone od samego początku istnienia Uniksa przez jednego z jego twórców — Kena Thompsona. Wyrażenia regularne są bardzo efektywnym sposobem pracy z tekstem i zdecydowanie warto je opanować.Nazwa „grep” jest angielskim akronimem od słów global regular expression print[4].

Symbol Zastępuje
. dowolny znak
^ dopasuj występujące po operatorze wyrażenie do wyrażenie do początku wiersza
$ dopasuj poprzedzające wyrażenie do końca wiersza
\x znaki specjalne, gdzie x to znak specjalny np \$ zastąpi znak dolara
[lista] zastępuje dowolny znak spośród tych wymienionych na liście, mogą to być przedziały np. [0-9] lub [a-d]
() grupowanie wyrażeń regularnych
? dokładnie jeden element wcześniejszy
a|b dopasuje wyrażenie a lub wyrażenie b
* dopasuj zero lub więcej wyrażeń znaku poprzedzający operator
+ jeden lub więcej elementów poprzedzających operator

Jak podaje Wikipedia, zmienne środowiskowe to zbiór dynamicznych wartości, wpływających na sposób w jaki działać będą uruchomione procesy (programy). Zmienne systemowe występują w każdym systemie operacyjnym Unix, Unix-like oraz M3S DOS i Windows. Oczywiście różne systemy korzystać będą z różnych zbiorów zmiennych, jednak najczęściej większość zmiennych będzie wspólna.

Początkujący użytkownicy bardzo często boją się korzystać ze zmiennych systemowych w obawie przed uszkodzeniem systemu, traktując je jako rzecz nie do ogarnięcia. Oczywiście jest to podejście jak najbardziej błędne. Bash pozwala również na tworzenie tzw. zmiennych powłoki, które działają na zasadzie identycznej jak zmienne środowiskowe przy czym ich zasięg dotyczy tylko powłoki, w której zostały utworzone.

Przykładowe zmienne środowiskowe:
PATH- Zmienna zawiera oddzieloną dwukropkami listę katalogów w której, powłoka będzie szukać programu którego nazwę do wykonania wprowadził użytkownik, jeżeli taki program nie zostanie znaleziony, powłoka wyświetli komunikat „polecenie nie odnalezione”

EDITOR- Domyślny edytor tekstu, zmienna wykorzystywana przez niektóre programy np. przez klienta poczty mutt. W jego przypadku emaile edytowane są w programie określonym przez tę zmienną

SHELL-Powłoka wykorzystywana przez użytkownika

USER-nazwa użytkownika

SHLVL- liczba uruchomionych powłok

TERM - domyślnie uruchamiany emulator terminala

HOME - domyśłna ścieżka katalogu domowego użytkownika

UID - unikalny identyfikator użytkownika

$Lang oraz $LC_ALL -zmienne przechowujące ustawienia językowe

Wyświetlanie wartości zmiennej
echo $nazwa_zmiennej

Tworzenie nowej zmiennej

Nazwa_zmiennej = wartość

Utworzona powyżej zmienna powłoki ma pewną nieprzyjemną cechę, mianowicie dostępna będzie jedynie w powłoce, w której została utworzona, a programy uruchomione z tej powłoki, nie będą miały do niej dostępu. Aby obejść to ograniczenie, należy wyeksportować zmienną za pomocą polecenia export.

ZMIENNA=wartość
ZMIENNA2=wartość2
export $ZMIENNA2
export ZMIENNA2
bash #uruchamiam nową powłokę
echo $ZMIENNA1 $ZMIENNA2
wartość2

usuwanie zmiennych

unset ZMIENNA

#!bin/bash

ZMIENNA=”Ala ma kota”

if [ -n $ZMIENNA ]; then

case $ZMIENNA in

1) zadanie numer 1;;

2) zadanie numer 2;;

*) zadanie w każdym innym przypadku;;

esac

6. Instrukcja warunkowa IF.

W instrukcji warunkowej if wyróżnia się trzy zasadnicze składnie tego polecenia:

a) w przypadku, gdy zachodzi potrzeba sprawdzenia jakiegoś warunku np. czy dwie

liczby są równe składnia wygląda następująco:

if warunek; then

wyrażenie1;

wyrażenie2;

fi

b) w przypadku gdy należy wykonać inny zestaw poleceń, jeżeli zadany warunek kończy

się wynikiem negatywnym, składnia polecenia wygląda następująco:

if warunek; then

wyrażenie1;

else

wyrażenie2;

fi

c) w przypadku gdy należy sprawdzić inny warunek jeżeli wcześniejszy warunek nie

został spełniony, składnia polecenia if wygląda następująco (ilość wyrażeń elif jest

dowolna):

if warunek1; then

wyrażenie;

elif warunek2; then

wyrażenie2;

fi

Instrukcja warunkowa if działa w taki sposób, że polecenia wewnątrz bloku if/fi, if/elif, a

następnie elif/fi jeśli zadany warunek jest prawdziwy.

7. Zapis warunków w instrukcji warunkowej IF.

Do testowania warunków używa się operatorów, które w wyniku swojego działania zwracają

prawdę lub fałsz w zależności od tego czy sprawdzany warunek jest prawdziwy czy

nieprawdziwy. Zazwyczaj warunek jest zapisywany w następującej postaci:

[ operand1 operator operand2 ]

W niektórych przypadkach warunki zapisuje się tylko przy pomocy jednego operandu

(drugiego - operand2). Bardzo istotny jest fakt, że pomiędzy nawiasami, operandami

operandami operatorem musi istnieć odstęp w postaci spacji. Jeżeli tego odstępu nie ma to

wtedy wszystko to co jest napisane między nawiasami kwadratowymi jest traktowane jako

jeden operand bez jakichkolwiek operatorów.

[$X=$Y] /# błędny zapis !!!

[ $X = $Y ] # zapis prawidłowy

Ponadto bardzo istotne jest także używanie znaków cudzysłowu we wszystkich warunkach w

których operator przyjmuje postać –n (na początku kursu zostało wyjaśnione dlaczego).

8. Operatory instrukcji warunkowej IF.

Najczęściej używanymi operatorami w instrukcji warunkowej if są:

-n – operand ma niezerową długość (jeden operand)

-z – operand ma zerową długość (jeden operand)

-d – istnieje katalog o nazwie operand (jeden operand)

-f – sprawdza czy operand jest plikiem (jeden operand)
-e – sprawdza czy zbiór (plik, katalog) o nazwie operand (jeden operand) istnieje

-L – sprawdzenie czy plik o nazwie operand jest dowiązaniem symbolicznym (jeden operand)

-eq – sprawdza czy operandy są równymi liczbami (dwa operandy)

-neq – sprawdza czy operandy są różnymi liczbami (dwa operandy)

= - sprawdza czy operandy są jednakowymi ciągami znaków (dwa operandy)

!= - sprawdza czy operandy są różnymi ciągami znaków (dwa operandy)

-lt – sprawdza czy operand 1 jest mniejszy operand2 (dwa operandy które są liczbami

całkowitymi)

-le – sprawdza czy operand1 jest równy lub mniejszy od operand2 (dwa operandy które SA

liczbami całkowitymi)

-gt – sprawdza czy operand1 jest większy od operand2 (dwa operandy które SA liczbami

całkowitymi)

-ge – sprawdza czy operand1 jest równy lub większy od operand2 (dwa operandy które SA

liczbami całkowitymi)

FOR

Składnia pętli for wygląda następująco:

for ZMIENNA in …; do

instrukcje;

done

Przykładem użycia pętli for może być skrypt, który wyświetli, linijka po linijce, wszystkie

parametry, z jakimi ten skrypt został uruchomiony niezależnie od liczby tych parametrów.

Kod takiego skryptu wygląda następująco:

#!/bin/bash

for ZMIENNA in $*; do

echo “$ZMIENNA”;

done

Oczywiście pętle for można używać na wiele różnych sposobów np.:

#!/bin/bash

DZIEN1=poniedziałek

DZIEN2=wtorek

DZIEN3=środa

for ZMIENNA in ”$DZIEN1” ”$DZIEN2” ”$DZIEN3”; do

echo ”Dzisiaj jest: $ZMIENNA”;

done

Jak pokazuje powyższy skrypt, pętla for wykonuje instrukcje zawarte wewnątrz pętli na

parametrach, które są oddzielone spacjami dlatego też zaleca się umieszczanie tych

parametrów cudzysłowach chyba, że parametry te nie zawierają znaku spacji.
WHILE

Składnia pętli while wygląda następująco:

while warunek; do

instrukcje;

done

W pętli while warunek zbudowany jest dokładnie tak samo jak w instrukcji warunkowej IF (ta

sama konstrukcja te same operatory).
UNTIL

Pętla until na dokładnie taką samą składnie jak pętla while i działa tak samo jak pętla while z

tą różnica, że warunek znajdujący się w pętli until jest zanegowany. Pętla until działa tak

długo dopóki warunek jest nieprawdziwy w przeciwnym razie pętla kończy swoje działanie.

Zgodnie z tym składnia pętli until wygląda następująco:

until warunek; do

instrukcje;

done

Przykładowy skrypt wykorzystujący pętlę while może wyglądać następująco:

#!/bin/bash

X=$1

until [ $X –gt $2 ]; do

echo ”liczba $X jest mniejsza od liczby $2”;

X=$(($X + 1));

Done


Wyszukiwarka

Podobne podstrony:
cwiczenia 15 1.04.2008, cwiczenia - dr skladowski
cwiczenie 15
Cwiczenie 15 o
Ćwiczenie 1 (15 03 2016)
Z Ćwiczenia 15.03.2008, Zajęcia, II semestr 2008, Analiza matematyczna
Ćwiczenie 15, MIBM WIP PW, fizyka 2, laborki fiza(2), 29-Optyczna analiza widmowa
Cwiczenie 15 opis teotetyczny, STUDIA, Biofizyka, Elektryczny model komórki, Biofizyka
Mikorekonomia ćwiczenia (15 stron)
mechanika, 14+, Ćwiczenie 15
45 Arkuszy ćwiczeniowych Matura angielski rozmowy sterowane, Arkusz ćwiczeniowy 15, Arkusz ćwiczenio
Mikorekonomia ćwiczenia (15 stron)
cwiczenie 15
Moje notatki ćwiczenia 15 04 2011
cwiczenie 15 new
Chemia fizyczna 15, chemia fizyczna, chemia, FIZYCZNA, 15, Ćwiczenie 15
zrodla prawa cwiczenia 9 15
CWICZENIA, Ćwiczenia 8 - 15.04.05, MIKROTUBULE
lekarski-cwiczenie-1-15, Zakład Biologii Ogólnej

więcej podobnych podstron