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

Podobne dokumenty
Powłoka bash. Kurs systemu Unix 1

System operacyjny Linux

J ezyk AWK Kurs systemu UNIX

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Przekierowanie wejścia wyjścia:

1 Przygotował: mgr inż. Maciej Lasota

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

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

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

System operacyjny Linux

Powłoka (shell) Powłoka ksh

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

Technologie Informacyjne - Linux 3

- wszystkie elementy - wszystkie elementy

Wstęp do systemów wielozadaniowych laboratorium 19 awk

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Systemy operacyjne 11

Skrypty powłoki w systemie Linux

Wstęp do Informatyki dla bioinformatyków

Pracownia Komputerowa wykład III

Pracownia Komputerowa wykład III

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

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

Środowisko programisty Zestaw 7

Interpreter poleceń oraz zmienne środowiskowe

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

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

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

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

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

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

PODSTAWY INFORMATYKI

Powłoka interpreter poleceń systemu UNIX

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

Wprowadzenie do programowania w powłoce

Programowanie skryptów powłoki

Programowanie w BASH u Skrypt do ćwiczeń

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

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

Pracownia Komputerowa wyk ad III

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

Programowanie w języku Python. Grażyna Koba

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

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

Metody numeryczne Laboratorium 2

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

Umieszczanie kodu. kod skryptu

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Systemy operacyjne Programowanie w języku powłoki sh

BASH - WPROWADZENIE Bioinformatyka 4

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

KARTA KURSU. Języki skryptowe

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

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Tworzenie skryptu: Skrypty powłoki

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

Ćwiczenie 1. Wprowadzenie do programu Octave

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

Skrypty startowe. Tryb interaktywny tryb logowania: nie logowanie: Tryb nieinteraktywny

Wiersz poleceń Windows

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Ćwiczenie nr 14: System Linux

Wstęp do systemu Linux

1 Wielokrotne powtarzanie tych samych operacji

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ć

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

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

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

Linuks skrypty Część teoretyczna

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Kiedy i czy konieczne?

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

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

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

Stosowanie poleceń związanych z zarządzaniem plikami oraz katalogami: nazwa_polecenia -argumenty ścieżka/ścieżki do katalogu/pliku

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Laboratorium nr 1. i 2.

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

1 Podstawy c++ w pigułce.

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Trochę o plikach wsadowych (Windows)

Algorytmy i struktury danych

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

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Laboratorium Systemów SCADA

T A B E L E i K W E R E N D Y

Ćwiczenie 1. Wprowadzenie do programu Octave

Systemy operacyjne. Laboratorium 5. Awk podstawy. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

TEMAT : System operacyjny MS DOS pliki wsadowe

Chemiateoretyczna. Monika Musiał. Ćwiczenia

Technologie informacyjne lab. 4

1. Wyrażenia regularne. Symbole w wyrażeniach regularnych 1 :

Wstęp do Programowania Lista 1

Transkrypt:

Ćwiczenie 6 Skrypty powłoki - programowanie w powłoce bash 1. Cel ćwiczenia Celem ćwiczenia jest poznanie możliwości powłoki bash od strony programistycznej. System UNIX (Linux) pozwala tworzyć skrypty, czyli wykonywalne pliki tekstowe, zawierające polecenia powłoki oraz inne instrukcje sterujące (wzorem innych języków programowania). 2. Przygotowanie ćwiczenia zapoznać się z treścią pliku systemy-06a.pdf, definicja powłoki systemu operacyjnego Linux (UNIX), typy powłok i ich właściwości, przetwarzanie potokowe. 3. Skrypty powłoki Powłoka przyjmuje i interpretuje naciskane klawisze jako polecenia. W systemach UNIX stępnych jest kilka powłok, m. in. Bourne, Korn, C. Powłoki te mają wiele cech wspólnych, na przykład możliwość wykonywania skryptów (działających pobnie jak pliki BAT w DOS-ie). Dla poleceń będących zewnętrznymi programami powłoka tworzy procesy potomne, w których są one uruchamiane. Po utworzeniu taki proces potomny dziedziczy zmienne śrowiska i bieżący katalog roboczy powłoki. Skrypty, czyli pliki tekstowe zawierające polecenia powłoki nie muszą mieć określonej nazwy i rozszerzenia, jednak muszą mieć nadane prawa wykonywania. skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: #!/bin/bash # opis/komentarz polecenia pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz polecenia: sekwencja napisów (komend), oddzielonych białymi znakami, argumenty skryptu: pierwszy napis ($0) to nazwa polecenia lub skryptu powłoki, pozostałe parametry ($1...$n) przekazywane jako argumenty polecenia, aby skrypt mógł być wykonany musi mieć nadane prawa wykonywania dla użytkownika. 2. Zmienne i podstawienie w skryptach przypisywanie wartości: imie = ala, obliczanie wartości arytmetycznych: echo $[1+1] (polecenie echo wypisuje argument na standarwym wyjściu: echo $imie),

polecenie katalog = ls przypisuje zmiennej katalog wynik działania polecenia ls, polecenie shift zmienia kolejność parametrów przekazywanych skryptu: $n = $(n+1). zmienne powłoki $HOME katalog mowy użytkownika $PATH lista (:) kartotek przeszukiwania $USER identyfikator użytkownika $TERM typ terminala (vt100) $PS1 znak zachęty pierwszego poziomu $PS2 znak zachęty drugiego poziomu $SECONDS liczba sekund działania powłoki $HISTFILE nazwa pliku z historią $RANDOM liczba pseulosowa (zawsze inna) 3. Instrukcje sterujące Pętla for: Pozwala powtarzać pewne czynności dla kolejnych wyrazów z listy: for zm in lista for plik in *.txt cp $plik $plik.bak Pętla while: while wyrazenie n=1 while [ $1 ] echo $n $ -- $1 n = $[ n + 1 ]; shift Instrukcja warunkowa if: if wyrazenie

then else fi if [ -f.profile ]; then echo "Jest!"; fi Polecenie test: Używane z poleceniami sterującymi powłoki: if [ "$1" == "hej" ] then echo Pierwszy parametr to \"hej\" fi t1 = t2 równość tekstów t1!= t2 różność tekstów t1 prawdziwy, gdy t1 jest zdefiniowana operatory tekstowe -n t1 prawdziwy, gdy tekst jest niepusty -z t1 prawdziwy, gdy tekst jest pusty -d plik prawdziwy, gdy plik jest kartoteką -f plik prawdziwy, gdy plik istnieje i jest regularny -r plik prawdziwy, gdy plik może być czytany operatory plikowe -w plik prawdziwy, gdy pliku można pisać -s plik prawdziwy, gdy plik ma długość datnią -x plik prawdziwy, gdy plik jest wykonywalny!w wyrażenie w jest fałszywe w1 -a w2 oba wyrażenia są prawdziwe operatory logiczne w1 -o w2 przynajmniej jedno jest prawdziwe Instrukcja case: case zmienna in wzorzec [ wzorzec]... ) instrukcje wzorzec [ wzorzec]... ) instrukcje... esac case "$poradnia" in "tak" "t" "Tak" "TAK") echo Dzien bry! [nn]) echo "Dobry wieczor"

*) echo "Odpowiedz tak lub nie" esac 4. AWK język przetwarzania plików tekstowych wyświetlanie plików, wierszy, pól (cut), analizowanie tekstów ze względu na występowanie określonych ciągów znaków (grep, egrep), przygotowywanie raportów w oparciu o dane z pliku, filtrowanie tekstów, operacje arkusza kalkulacyjnego. podstawowymi parametrami awk są pliki przetworzenia, pliki podzielone są na wiersze (rekordy), wiersze zaś na pola, myślnym separatorem jest ciąg białych znaków, separatorem może być wolny znak, w takim formacie przechowywana jest większość unixowych plików konfiguracyjnych, powyższy format mają również bardzo często dane wyjściowe poleceń (np. ls). Zmienna $1 to pierwsze pole, $2 drugie, itd. Bieżąca linia to $0. wybranie z pliku dwóch kolumn i zamiana miejscami: awk '{print $3,$2 }' inna możliwość: awk -f program.awk dane_we1 dane_we2 > dane_wy Zamiast wzorca może pojawić się warunek: awk '$4 > 100 {print $1*$4}' Inne warunki arytmetyczne: ==,!=, >, <, >=, <= Program obliczający sumę wielkości plików w kartotece: ls -l awk '/^-/{licznik = licznik+$5} END {print licznik}' Program wyświetlający te linie, które są liczbami: /^[0-9]+(\.[0-9]+)?$/ { print $0 } zmienne wewnętrzne NR liczba przeczytanych rekordów FNR to samo, ale w bieżącym pliku FILENAME nazwa bieżącego pliku FS separator pól NF liczba pól w bieżącym rekordzie ARGC liczba argumentów linii poleceń ARGV tablica argumentów linii poleceń 5. Zadania samodzielnego wykonania

1. Napisz skrypt con_files, który uruchamia się z 4 parametrami 3 pierwsze to nazwy istniejących plików tekstowych, np. jeden.txt, dwa.txt i trzy.txt, a ostatni wynik.txt. Jeśli 3 pierwsze pliki istnieją skrypt łączy je w jeden plik tekstowy wynik.txt. 2. Napisz skrypt show, który wyświetli wszystkie przekazane niego argumenty, liczbę przekazanych argumentów, itp. ($0 $1 $@ $*); następnie użyj komendy shift i wyświetl ponownie. 3. Napisz skrypt interactive, który wyświetla poniższe menu: [1] Wyswietl biezaca date" [2] Dopisz aktualna date pliku jeden.txt" [3] Wylistuj biezacy katalog" [q] Koniec" Skrypt oczekuje na podanie odpowiedniego znaku (polecenie read) i wykonuje wskazane działanie przypisane danemu znakowi (polecenie case). W przypadku podania innego znaku, bądź sekwencji skrypt powinien zgłosić błąd i zakończyć działanie. 4. Zmodyfikuj powyższy skrypt, aby kończył swoje działanie UtylkoU po naciśnięciu q (po wykonaniu bieżącego zadania powinien oczekiwać na następne polecenie z menu (pętla while...). 5. Napisz skrypt show_proc, który jako argument przyjmuje numer procesu i wyświetla informacje o procesie z danym numerem. 6. Napisz skrypt lss, który działa pobnie jak ls i wyświetla informacje o plikach w trzech kolumnach w kolejności: nazwa pliku, rozmiar pliku i prawa (awk). 7. Zmodyfikuj powyższy przykład, aby dane w kolumnach: nazwa pliku i prawa były wyrównane lewej, a dane w kolumnie rozmiar pliku prawej (awk, printf). 6. Literatura [1] Z. Królikowski, M. Sajkowski: "System operacyjny UNIX dla początkujących i zaawansowanych", Wydawnictwo NAKOM, Poznań 1995, [2] Arnold Robbins, Nelson H. F. Beebe: "Programowanie skryptów powłoki", Wydawnictwo HELION, Gliwice 2005, [3] http://www.freeos.com/guides/lsst/ch01sec07.html.