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

Podobne dokumenty
Pracownia Komputerowa wykład III

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Powłoka interpreter poleceń systemu UNIX

1 Przygotował: mgr inż. Maciej Lasota

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Powłoka (shell) Powłoka ksh

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

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

System operacyjny Linux

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

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

Interpreter poleceń oraz zmienne środowiskowe

Pracownia Komputerowa wykład III

Powłoka bash. Kurs systemu Unix 1

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

Technologie Informacyjne - Linux 3

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.

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Systemy operacyjne Programowanie w języku powłoki sh

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

Skrypty powłoki w systemie Linux

Wprowadzenie do programowania w powłoce

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

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

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Znaki globalne w Linuxie

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Wstęp do Informatyki dla bioinformatyków

Przekierowanie wejścia wyjścia:

Programowanie skryptów powłoki

Środowisko programisty Zestaw 7

Strona1. Linux. Skrypty powłoki

Technologie Informacyjne - Linux 2

Tworzenie skryptu: Skrypty powłoki

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

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

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

Pracownia Komputerowa wyk ad III

Zakład Systemów Rozproszonych

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

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

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

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

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

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

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

Pracownia komputerowa. Dariusz wardecki, wyk II

PODSTAWY INFORMATYKI

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

Podstawy programowania skryptów Sh

Systemy operacyjne 11

Trochę o plikach wsadowych (Windows)

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

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

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

BASH - WPROWADZENIE Bioinformatyka 4

PODSTAWY INFORMATYKI

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

K. Konopko; Skrypty powłoki. Skrypty powłoki. dr inż. Krzysztof Konopko

Programowanie w BASH u Skrypt do ćwiczeń

- wszystkie elementy - wszystkie elementy

Linuks skrypty Część teoretyczna

Kurs pisania skryptów w powłoce BASH

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

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

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

Programowanie w języku Python. Grażyna Koba

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

Podstawy informatyki

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

System operacyjny Linux

chmod +x skrypt /bin/bash nazwa_skryptu ZMIENNA=123 ZMIENNA="wartość tekstowa" SCIEZKA="$HOME/plik" echo $SCIEZKA

Wprowadzenie do programowania shella (bash)

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ć

System Linux - użytkowanie

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

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

Umieszczanie kodu. kod skryptu

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

1 Podstawy c++ w pigułce.

Ćwiczenie nr 14: System Linux

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

KARTA KURSU. Języki skryptowe

Bash, skrypty. Wojciech Dudek. 15 listopada Uniwersytet Warszawski

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

Laboratorium Ubuntu Linux.

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

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Materiały do laboratorium MS ACCESS BASIC

Zastosowanie filtrów w Linuksie

1 Podstawy c++ w pigułce.

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

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

Wstęp do systemu Linux

Transkrypt:

Architektura systemów informatycznych Powłoka systemowa Architektura procesora

Powłoki systemowe Powłoka tekstowa Powłoka, nazywana inaczej shellem, odpowiada za wykonywanie poleceń wpisywanych przez użytkownika w trybie tekstowym. Samo jądro systemu nie "rozumie" wpisywanych przez użytkownika poleceń, to właśnie powłoka przyjmuje polecenia tekstowe, i odpowiednio je tłumaczy na funkcje kernela, jakie ma wykonać - porozumiewa się z kernelem w formie binarnej, bezpośrednio, bo właśnie taką formę poleceń kernel ma wbudowaną. Powłoka decyduje, czy przekazać polecenie do kernela, czy je wykonać za pomocą innego programu. Najpopularniejszą powłoką w GNU/Linuksie jest bash (Bourne Again Shell). Powłoka graficzna Można również wydawać polecenia systemowi za pośrednictwem interfejsu graficznego - jest to inaczej powłoka graficzna.

Powłoki tekstowe Powłoka Bourne a (sh) Podstawowy interpreter poleceń we wszystkich systemach Linux i Unix o ograniczonych możliwościach (brak edycji wiersza poleceń) Powłoka C (csh) Składnia poleceń nawiązuje do języka C (instrukcje warunkowe, historia wydawanych poleceń) nowsza wersja to tcsh Powłoka Korna (ksh) Połączenie możliwości powłok sh i csh i wzbogacenie o dodatkowe polecenia, udoskonalony mechanizm edycji wiersza poleceń Powłoka Bash (bash) Bourne Again Shell, domyślna powłoka Linuxa, połączenie możliwości powłok Korna i C, automatyczne uzupełnianie nazw plików i nazw ścieżek.

Składnia poleceń polecenie opcje argumenty Polecenie jedna z wielu komend, dostępnych w systemach Linux i Unix, lub własny program użytkownika tzw. skrypt. Polecenia działają na plikach, katalogach i urządzeniach. Opcje modyfikują funkcjonowanie polecenia, powodując, że wykonuje się ono w specjalny sposób. Opcje w systemach Linux i Unix to najczęściej pojedyncze litery poprzedzone znakiem minus -. Sposoby użycia: polecenie l a t polecenie lat polecenie la t Argumenty pliki, katalogi urządzenia czyli obiekty, na których wykonywane są polecenia.

Metaznaki Metazanki (znaki uogólniające) - znaki stosowane w celu łatwiejszego posługiwania się nazwami plików oraz katalogów. - służą do tworzenia wzorców, które są rozpoznawane i wykorzystywane przez powłokę - słowo zawierające metaznaki jest zastępowane przez alfabetycznie uporządkowaną listę nazw plików oraz katalogów, które odpowiadają konkretnemu wzorcowi - metaznakami są:. +? * ^ $ [ ]( ) \ {}

Wyrażenia regularne ang. Regular expressions (regexp) Wyrażenia regularne są narzędziem służącym do dopasowywania wzorców. Wykorzystywane są tam, gdzie potrzebne jest narzędzie do wyszukiwania tekstu spełniającego pewne kryteria np. w filtrach tekstowych, zapytaniach w bazach danych.

Wyrażenia regularne: składnia Znaki zwyczajne a, A, b, B, z, Z, 0, 1, 9,,! Znaki specjalne (metaznaki) Rozróżnia się dwa zbiory metaznaków: metaznaki rozpoznawane w dowolnym miejscu wzorca poza nawiasami kwadratowymi ^, $, *, +,?,., (, ), [, ], {, }, \ oraz metaznaki rozpoznawane wewnątrz nawiasów kwadratowych. \, ^, - Część wzorca ujęta w nawiasy kwadratowe jest zwana "klasą znaków".

Filtry tekstowe W systemie UNIX posługując się wieloma poleceniami można stosować wyrażenia regularne, np. grep, vi, sed, awk, ls, cat, head, less, more, tail, find, cp, ps, rm, gzip, tar. We wszystkich przypadkach chodzi o wyszukanie w pliku lub w jego nazwie pewnego ciągu znaków, który można opisać właśnie za pomocą wyrażenia regularnego. Oprócz zwykłych fragmentów tekstu, można posłużyć się znakami specjalnymi.

Wyrażenia regularne: filtry - grep grep (Global Regular Expression Print) Składnia: grep [opcje] wzorzec [plik] grep [opcje] [-e wzorzec -f plik] [plik] Program grep jest tzw. filtrem. generalnie filtr jest programem, który czyta dane ze standardowego wejścia, przetwarza je i wypisuje wynik na standardowym wyjściu. grep, egrep, fgrep - przeszukuje wskazane pliki wejściowe (lub standardowe wejście) szukając linii zawierających ciąg pasujący do podanego wzorca egrep jest tym samym, co grep E (złożone wyrażenia regularne), fgrep jest tym samym, co grep F(analiza pliku)

Grep i wyrażenia regularne: praktyczne zastosowania linie rozpoczynające się od litery l ls -l /lib grep '^l' nazwy plików i numery linii kończących się na k lub K ls grep -n '[kk]$' Użytkownicy powłoki bash: grep -n '/bash$' /etc/passwd Pliki z danym rozszerzeniem: ls grep '\.tar.gz' Nazwy plików zaczynające sie na lierę P i kończące się na e ls egrep "^P[a-z]+e$" Ilość wolnej pamięci RAM: grep 'MemFree' /proc/meminfo

Uruchamianie AWK AWK może być wywołany na wiele sposobów. Jeżeli program jest krótki, to najprościej jest umieścić go pomiędzy znakami pojedynczego cudzysłowu w linii poleceń, w następujący sposób: awk 'program' plik1 plik2... Kiedy program jest długi wygodniejsze jest jego umieszczenie w oddzielnym pliku; w tym wypadku uruchomienie programu wygląda następująco (program oznacza nazwę pliku zawierającego program): awk -f program plik1 plik2...

Filtr awk: rekordy i pola $0 - zmienna reprezentująca cały rekord $1 - zmienna reprezentująca pierwsze pole bieżącego rekordu $n - zmienna reprezentująca n-te pole bieżącego rekordu, może być wyrażeniem zwracającym liczbę np. $(FN - 5) oznacza piąte pole od końca. $1 $2 $0

Przykłady użycia filtru awk awk -F":" '{ print $1 " " $3 }' /etc/passwd

Przykłady użycia filtru awk ps aux awk '{if($1~/student/&&$11~/gnome/)print"pid: " $2 " proces: "$11}'

Filtry grep i awk Pliki zaczynające się na std z rozszerzeniem.h Procesy użytkownika związane z interfejsem graficznym

Jak działa skrypt powłoki? Zawartość pliku tekstowego skrypt.sh: #!/bin/bash # # Przykładowy skrypt powłoki echo Mam zamiar uruchomić polecenie ls ls -la Nadanie atrybutów wykonywalności: chmod +x skrypt.sh Uruchomienie skryptu:./skrypt.sh

Zmienne powłoki Zmienne programowe Zmienne parametryczne Zmienne środowiskowe

Zmienne programowe Przy programowaniu skryptów w powłoce Bourne a przyjeło się nazywanie zmiennych dużymi literami. Ustalenie ich początkowej wartości następuje poprzez podanie jej nazwy, znaku równości oraz wartości, np: ZMIENNA1="To jest tekst" ZMIENNA2=123 Dalsze odwołania do zmiennych dokonywane są przez poprzedzenie nazwy zmiennej znakiem "$", np. echo $ZMIENNA1 Pobieranie wartości do zmiennych #!/bin/sh echo Wpisz tekst: read TEST echo Napisałeś: echo $TEST

Zmienne parametryczne Do skryptu przekazać można parametry wywołania. Parametry można używać podobnie jak zmienne, jednak bez zmiany ich wartości. Każdy parametr wywołania skryptu posiada swój kolejny numer. $0 - parametr 0 - nazwa skryptu $1 - parametr 1... $9 - parametr 9 $* - wszystkie parametry począwszy od 1, rozwijane do $1 $2 $3... $@ - przekazywanie wszystkich parametrów, rozwijane do $1 $2 $3.. $# - liczba parametrów $$ - numer procesu (przydatne przy tworzeniu plików tymczasowych) $! numer procesu ostatniego polecenia działającego w tle $? kod wyjścia ostatnio wykonanego polecenia Uruchomienie skryptu z argumentami:./skrypt argument1 argument2 argument3...

Zmienne środowiskowe CDPATH ścieżka przeszukiwań dla polecenia cd HOME ścieżka katalogu domowego użytkownika ustanawiana w momencie otwarcia sesji MAIL nazwa pliku pocztowego użytkownika PATH ścieżka przeszukiwań katalogów z poleceniami PS1 podstawowy znak gotowości po otwarciu sesji: $ - dla zwykłych użytkowników #- dla supeurżytkownika PS2 pomocniczy znak gotowości wyświetlany po uruchomieniu podpowłoki: > HISTFILE nazwa pliku z historią poleceń HISTSIZE liczba pamiętanych poleceń IFS wewnętrzny separator pól wykorzystywany do dzielenia polecenia na części składowe PWD pełna nazwa ścieżkowa do bieżącego katalogu roboczego MAILCHECK czas (w sekundach ) między dwoma sprawdzeniami przez powłokę nowo nadesłanej poczty TMOUT czas (w sekundach) nieaktywności po upływie którego powłoka zakończy sesję

Zmienne tablicowe Inicjacja tablicy: $ set -A nazwa wartosc0 wartosc1... Przykład użycia % set miasta =(Rzeszow Lublin Wroclaw) % echo $miasta[1] Rzeszow % echo $miasta[2] Lublin % echo $miasta[3] Wroclaw

Cytowanie brak cytowania wszystkie słowa wydzielone za pomocą spacji są interpretowane apostrofy 'ciag_znakow' tekst w apostrofach jest chroniony, cały ciag_znakow jest przesyłany jako argument do polecenia cudzysłowy ciag_znakow - tylko znaki $, \ oraz znak_akcentu ` mają specjalne znaczenie ciągu_znaków. Wszystkie inne znaki są chronione. Cudzysłów zapewnia jednoznaczną interpretację ciągu znaków, nawet w przypadku użycia spacji. lewy ukośnik \c znak występujący po \ jest chroniony przed interpretacją przez powłokę akcenty `polecenie` - polecenie umieszczone w akcentach jest wykonywane przez podpowłoki i w jego miejsce podstawiany jest uzyskany wynik. Analiza dokonywana przez podpowłoki przebiega w zwykły sposób. Brane są pod uwagę włączone znaki cytowania

Wyrażenia warunkowe: if if warunek then wykonuje wszystkie polecenia jeżeli warunek jest równy zero (true) elif warunek 2 then wykonuje wszystkie polecenia jeżeli warunek 2 jest równy zero (true) else wykonuje wszystkie polecenia jeżeli żaden z powyższych warunków nie jest spełniony fi Warunek musi mieć następującą postać : [ wyrażenie1 operator wyrażenie2 ] Między nawiasami a treścią warunku muszą być postawione spacje. Operatory wykorzystywane w warunkach : -eq jest równe (= =) -ne jest różne (!=) -lt jest mniejsze (<) -le jest mniejsze lub równe (<=) -gt jest większe (>) -ge jest większe lub równe (>=)

Wyrażenia warunkowe: if Przykład:

Testy plików [ -f plik ]

Testy plików -e zwraca wartość prawdy (zero), jeżeli plik istnieje -s zwraca wartość prawdy (zero), jeżeli plik nie jest pusty operatory typu plików -f jest zwykłym plikiem -d katalogiem -h dowiązaniem symbolicznym -b urządzeniem blokowym -p potokiem nazwanym operatory uprawnień plików -r można odczytywać -w można zapisywać -x można uruchamiać -u ma ustawiony bit setuid -g ma ustawiony bit setgid -k ma ustawiony lepki bit

Wyrażenia warunkowe: case Wyrażenie case pozwala na dokonanie wyboru z pośród kilku wzorców. case zmienna in "wzorzec1") polecenie1 ;; "wzorzec2") polecenie2 ;; "wzorzec3") polecenie3 ;; *) polecenie_domyślne esac Przykładowy skrypt :

Konstrukcje iteracyjne: pętla for Podczas wykonywania pętli for, zmiennej zostaje przypisana każda wartość z listy, wykonując jednocześnie instrukcje zawarte miedzy operatorami : do done w kolejnych etapach przypisania. for { nazwa zmiennej } in { lista } do instrukcje wykonywane są tyle razy ile jest elementów listy done Przykładowy skrypt : #!/bin/bash for i in 1 2 3 do echo $i done

Pętle while i until Pętla while wykonywana jest tak długo jak długo podany warunek jest prawdziwy. Pętla until wykonywana jest tak długo jak długo podany warunek jest nie prawdziwy. Obie pętle mają taką samą budowę. while [ warunek ] do polecenie1 polecenie2... done Przykładowy skrypt : #!/bin/bash x=1; while [ $x -le 10 ]; do echo $x x=$[x + 1] x= expr x + 1 done

Funkcje definicja: function nazwa_funkcji() { (...) } wywołanie: nazwa_funkcji arg1 arg2 przykład: function funkcja() { echo "to jest funkcja" } echo "pierwsze wywołanie funkcji:" funkcja echo "drugie wywołanie funkcji:" funkcja

Przykład skryptu powłoki