JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA



Podobne dokumenty
Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Powłoka interpreter poleceń systemu UNIX

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Wyrażenia regularne. Wyrażenia regularne 1/41

Systemy operacyjne Programowanie w języku powłoki sh

Przekierowanie wejścia wyjścia:

Powłoka (shell) Powłoka ksh

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Powłoka bash. Kurs systemu Unix 1

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Wstęp do informatyki 2011/2012. Wyrażenia regularne (sed)

Powłoka, redyrekcja, potok

PODSTAWY INFORMATYKI

Zmienne środowiskowe: Ścieżka przeszukiwana komendą.

1 Przygotował: mgr inż. Maciej Lasota

SED - Stream EDitor. edytor strumieniowy. Bogumił Konopka W-11/I-21 Politechnika Wrocławska

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej

Programowanie skryptów powłoki

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

Wstęp do Informatyki dla bioinformatyków

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

Programowanie 1. Wprowadzenie do bash-a. Elwira Wachowicz. 06 lutego 2012

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Linux Polecenia. Problem nadpisywania plików. Zmienna noclobber i noglob. Filtry i metaznaki. Problem nadpisywania plików. Opracował: Andrzej Nowak

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Skrypty powłoki w systemie Linux

System operacyjny Linux

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Języki i metodyka programowania. Wprowadzenie do języka C

Wstęp do programowania. Wykład 1

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Filtry, metaznaki, cytowania. Proste skrypty. Polecenia find, tee, mail.

Trochę o plikach wsadowych (Windows)

KARTA KURSU. Języki skryptowe

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Przedmiot: SYSTEMY OPERACYJNE Czas trwania: semestr IV Przedmiot: obowiązkowy Język wykładowy: polski POZIOM

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

J ezyk AWK Kurs systemu UNIX

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Technologie Informacyjne - Linux 3

Laboratorium Strumienie w systemach UNIX 4.2 Filtry strumieniowe

System operacyjny Linux

Znaki globalne w Linuxie

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Interpreter poleceń oraz zmienne środowiskowe

Struktura pliku wejściowego ipko biznes przelewy zagraniczne (MT103 / CSV)

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Zakład Systemów Rozproszonych

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Zastosowanie filtrów w Linuksie

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Środowisko programisty Zestaw 7

LABORATORIUM 6-7 WSTĘP DO SIECI TELEINFORMATYCZNYCH SYSTEM OPERACYJNY UNIX

Technologie Informacyjne - Linux 2

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

PODSTAWY INFORMATYKI

Strona1. Linux. Skrypty powłoki

Języki formalne i automaty Ćwiczenia 6

Podstawy Kompilatorów

Matematyczne Podstawy Informatyki

Środowisko programisty

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Wstęp do systemów wielozadaniowych laboratorium 19 awk

Systemy operacyjne Operating Systems

Autor: dr inż. Katarzyna Rudnik

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Systemy operacyjne 12

pozwalają na umieszczenie wielu komend w jednym pliku (z atrybutem wykonywania) - udostępnia środowisko do konfigurowania systemu i programowania

Systemy Operacyjne. Część II Zarządzanie/Administracja Systemem. 5: Skrypty. autor: mgr inż. Andrzej Woźniak

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

CitiDirect Ewolucja Bankowości

Jerzy Nawrocki, Wprowadzenie do informatyki

Elementy wyrażeń regularnych

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Struktury, unie, formatowanie, wskaźniki

Programowanie w języku Python. Grażyna Koba

Linux Filtr grep. Opracował: Arkadiusz Curulak WSIiE TWP w Olsztynie

Transkrypt:

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA, który zawiera: zmienne, konstrukcje warunkowe i iteracyjne (IF-THEN-ELSE, CASE, DO WHILE, DO UNTIL), konfigurowane środowisko użytkownika. METAZNAKI zestaw znaków specjalnych, za pomocą których można zastępować zwykłe znaki w nazwach plików i katalogów: krótsze pisanie, stosowanie konwencji nazw, uproszczenie programowania w języku Shell. Założenie /home/iksinski/dydaktyka/apl/w-1 W-2 W-3... W-19 W-1-old W-2-old Metaznak opis * dopasuj dowolny łańcuch znaków (również pusty) ls /home/iksinski/dydaktyka/apl/w-*? dopasuj pojedynczy znak alfanumeryczny ls /home/iksinski/dydaktyka/apl/w-? ls /home/iksinski/dydaktyka/apl/w-1? [...] dopasuj pojedynczy znak lub zestaw znaków z nawiasów [abcdefg] albo [a-g] ls /home/iksinski/dydaktyka/apl/w-[1-9] ls /home/iksinski/dydaktyka/apl/w-[1-9]* ls /home/iksinski/dydaktyka/apl/w-[1-46-9] ls /home/iksinski/dydaktyka/apl/w-[!5] KSH?(lista_wzorców) dopasuj dowolny wzorzec z listy; lista to zestaw jednego lub więcej wzorców rozdzielonych znakiem 1

ls W-?(1 2 7)!(lista_wzorców) dopasuj dowolny znak oprócz znaków zawartych we wzorcach listy ls W-!(1 2 7) +(lista_wzorców) dopasuj jeden lub więcej wzorców z listy (wzorzec musi wystąpić w nazwie przynajmniej raz) ls W-1+(back)* odp.: No such file or directory *(lista_wzorców) dopasuj zero lub więcej wzorców z listy ls W-1*(back)* odp.: W-1, W-10, W-11, W-12, W-13 @(lista_wzorców) dopasuj tylko jeden wzorzec z listy KSH/Bash ~ zastąp znak katalogiem osobistym ~- zastąp znaki poprzednim katalogiem roboczym ~+ zastąp znaki bieżącym katalogiem roboczym ~UID zastąp znaki katalogiem domowym użytkownika o podanej nazwie rozwijanie nawiasów (), {} ls ~/*/*{.doc,.txt} mkdir ~/(roki,rokii,rokiii,rokiv,rokv) 2

INNE ZNAKI SPECJALNE znak znaczenie ; separator poleceń & wykonaj w tle potok poleceń ( ) grupuj polecenia < przeadresuj wejście polecenia > przeadresuj wyjście polecenia ${zmienna} podstaw wartość zmiennej shella `polecenie` podstaw wynik polecenia (ze standardowego wyjścia) \ zacytuj znak w celu zasłonięcia znaczenia specjalnego ls \*test napis cytuj wszystkie znaki w napisie napis cytuj wszystkie znaki, ale wykonaj podstawienia ${zmn}$1 # komentarz {pol1;pol2} wykonaj polecenia w bieżącym shellu 3

WYRAŻENIA REGULARNE wyrażenia wzorcowe ułatwiające wyszukiwanie i filtrowanie informacji w plikach. Stosowane m.in. w poleceniach: grep, pg, awk Operator Opis i przykłady dowolny ciąg Proste wyrażenie regularne, w którym ciąg znaków oznacza sam siebie znaków np. iksinski oznacza słowo (wzorzec) iksinski. Dopasuj dowolny pojedynczy znak (? w metaznakach) np.:..z.. wszystkie wyrazy 5-literowe, z wielkim Z w środku $ Dopasuj poprzedzające operator wyrażenie regularne do końca wiersza np.: KONIEC$ - słowo KONIEC na końcu wiersza ^ Dopasuj występujące po operatorze wyrażenie regularne do początku wiersza np.: ^start - słowo start na początku wiersza * Dopasuj zero lub więcej wystąpień poprzedzającego operator wyrażenia (działanie * inne niż w metaznakach) np.: ro*k odpowiada zarówno wzrocowi rk, jak i roook roo*k odpowiada wzorcowi rok i rooooook \ Użyte przed dowolnym operatorem wyrażeń regularnych oznacza pominięcie specjalnego znaczenia tego znaku; znak \ przed dowolny innym znakiem oznacza sam siebie [ ] Dopasuj dowolny znak z zestawu między nawiasami np.: [a-z] wszystkie małe litery [A-Z] wszystkie wielkie litery [a-za-z] wszystkie litery [0-9] wszystkie cyfry [^ ] Dopasuj dowolny znak, który nie znajduje się w nawiasach np.: [^0-9] oznacza wszystkie znaki, które nie są cyframi \\ Puste wyrażenie regularne, które przyjmuje wartość ostatniego wyrażenia regularnego \ (wyr_reg\) Zapamiętaj wyrażenie regularne w ( ) do dalszego wykorzystania; każdy zapamiętany wzorzec otrzymuje numer kolejny od 1 do 9 licząc od lewej np.: \(.*\):\(.*\):\1:\2 zapamiętaj dowolny ciąg znaków z pierwszego 4

\ {m,n\} \ {m\} \ {m, \} pola (pola pooddzielane :), zapamiętaj dowolny ciąg znaków z drugiego pola i porównaj odpowiednio: pierwsze pole z trzecim, drugie z czwartym Konstrukcja nadzoruje liczbę dopasowań poprzedzającego wyrażenia regularnego, gdzie m minimum, n maksimum. Jeżeli wyrażenie wystąpi co najmniej m razy i co najwyżej n razy, wtedy zakłada się, że wystąpiło dopasowanie. np.: [+-]\{0,1\}[0-9] znak + lub może wystąpić najwyżej raz przed dowolną cyfrą albo wcale Jeżeli występuje tylko m (\ {m\}), to wyrażenie musi być dopasowane dokładnie m razy. np.: [+-]\{1\}[0-9] znak + lub musi wystąpić raz przed dowolną cyfrą Jeżeli n jest pominięte (\ {m, \}), to wyrażenie musi być dopasowane co najmniej m razy. np.: [+-]\{1,\}[0-9] znak + lub musi wystąpić raz lub więcej przed dowolna cyfrą ZADANIA: 1. Podać wyrażenie regularne (wzorzec): a) dowolnego napisu, b) dowolnej liczby całkowitej, c) dowolnej liczby całkowitej poprzedzonej znakiem + lub d) dowolnego ciągu znaków (litery, cyfry, znaki różne ), e) wiersza zawierającego same spacje, f) dowolnej liczby całkowitej bądź rzeczywistej. 5

PRZEADRESOWYWANIE WEJŚCIA-WYJŚCIA pozwala: tworzyć pliki, dołączać dane do plików, korzystać z istniejących plików jako wejścia dla innych poleceń, łączyć dwa strumienie wejściowe, korzystać z części skryptu shellowego jako wejścia. UNIX programowanie w shellu (1) Operator Funkcja < Przekieruj standardowe wejście > Przekieruj standardowe wyjście >> Dołącz standardowe wyjście do pliku <<ogr Przekaż na standardowe wejście dane od tego miejsca do ogranicznika ogr <& Użyj deskryptora 2 na wejściu zawsze wtedy, kiedy używany jest deskryptor 1 >& Połącz deskryptor 1 z deskryptorem 2 >>& Dołącz deskryptor 1 do deskryptora 2 Przekaż w potoku standardowe wyjście na standardowe wejście &- Zamknięcie otwartego pliku np.: exec 4>&- # zamknięcie pliku o deskryptorze 4 Deskryptor pliku liczba, dzięki której system UNIX identyfikuje pliki otwarte do przetwarzania. W jednym momencie można otworzyć 20 plików o deskryptorach z zakresu 0-19. 0 wejście (ang. stdin) 1 wyjście podstawowe (ang. stdout) 2 wyjście diagnostyczne (ang. stderr) 3-19 pliki wejścia-wyjścia określone przez użytkownika ZADANIA 1. Podać polecenie zamknięcia standardowego wyjścia. 6

ZMIENNE SHELLA służą do przechowywania danych, które mają być wykorzystywane w procedurach shella. Zmienna jest obszarem pamięci, do którego ma się dostęp za pomocą nazwy tworzonej w momencie przypisywania wartości zmiennej. Do wartości zmiennej odwołujemy się poprzez znak $. Rodzaje zmiennych shella: specjalne, środowiska shella, np. PATH, HOME, LOGNAME, programowe tworzone przez użytkownika. Zmienne specjalne shella Zmienna Funkcja $# Liczba argumentów pozycyjnych (parametrów wywołania) $0 Nazwa skryptu $1, $2,... Argumenty pozycyjne (parametry wywołania) przekazane do shella (skryptu) $* Rozwijane do $1 $2... $@ Rozwijane do $1 $2... $- Opcje shella z polecenia set $? Kod powrotu ostatniego polecenia $$ Numer procesu bieżącego shella $! Numer procesu ostatniego zadania wsadowego Wartości zmiennym można przypisywać bezpośrednio lub za pomocą podstawienia wyników innego polecenia shella, np.: MIESIAC=12 MIESIAC=`date + %m ` 7

KONSTRUKCJE SEKWENCYJNE Symbol Znaczenie ; Ogranicznik polecenia np.: pol1; pol2; pol3 ( ) Grupowanie poleceń do wykonania w podshellu np.: (pol1; pol2 pol3) pol4 { } Grupowanie poleceń do wykonania w bieżącym shellu ` ` && np.: { pol1; pol2 pol3;} pol4 UNIX programowanie w shellu (1) - nawias otwierający { musi być oddzielony spacją, a zamykający } poprzedzony średnikiem Podstawianie poleceń Sprawdzenie kodu powrotu, wykonanie polecenia w przypadku prawdy np.: pol1 && pol2 - wykonaj pol2, jeśli pol1 zakończyło się powodzeniem Sprawdzenie kodu powrotu, wykonanie polecenia w przypadku fałszu np.: pol1 pol2 powodzeniem - wykonaj pol2, jeśli pol1 nie zakończyło się ZADANIA 1. Porównaj następujące polecenia: pol1 { pol2; pol3;} pol1 pol2; pol3 8