POZNA SUPERCOMPUTING AND NETWORKING. Wprowadzenie do systemu operacyjnego Linux programowanie powłoki



Podobne dokumenty
POZNA SUPERCOMPUTING AND NETWORKING. Wprowadzenie do systemu operacyjnego Linux uytkowanie cz. 1

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

1 Przygotował: mgr inż. Maciej Lasota

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

Powłoka interpreter poleceń systemu UNIX

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

Pracownia Komputerowa wykład III

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

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

Pracownia komputerowa. Dariusz wardecki, wyk II

Powłoka, redyrekcja, potok

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Pracownia Komputerowa wykład III

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

Powłoka (shell) Powłoka ksh

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

Bash - wprowadzenie. Bash - wprowadzenie 1/39

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

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

PODSTAWY INFORMATYKI

Współczesne systemy komputerowe

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

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

BASH - WPROWADZENIE Bioinformatyka 4

Znaki globalne w Linuxie

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

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Zakład Systemów Rozproszonych

Przekierowanie wejścia wyjścia:

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

Pracownia Komputerowa wyk ad III

%$-,./+,-.0! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

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

Proces tworzenia programu:

Sieci i systemy operacyjne I Ćwiczenie 3. Przekierowania strumieni we/wy. Filtry.

Technologie Informacyjne - Linux 2

Systemy operacyjne Programowanie w języku powłoki sh

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

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

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

Interpreter poleceń oraz zmienne środowiskowe

Wprowadzenie do programowania w powłoce

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

Powłoka bash. Kurs systemu Unix 1

Wstęp do obsługi Linux a

Laboratorium 5 Podstawy budowy skryptów w systemie UNIX cz. 1

Tworzenie skryptu: Skrypty powłoki

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

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

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Pierwsze spotkanie kóªka linuksowego

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Narzędzia informatyczne w językoznawstwie

Skrypty powłoki w systemie Linux

Konsola i interpreter poleceń

Systemy operacyjne 10

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Programowanie w języku Python. Grażyna Koba

Podstawy informatyki

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver Aplikacja WWW ver. 2.1 Instrukcja Obsługi

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

Technologie Informacyjne - Linux 3

Klonowanie MAC adresu oraz TTL

Podstawy używania konsoli tekstowej w systemie Linux. Andrzej Zbrzezny

Pracownia Komputerowa

Wstęp do systemu Linux

Wstęp do obsługi Linux a

Kompilacja image z CVS

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

Wstęp do informatyki Shell podstawy

Bash i algorytmy. Elwira Wachowicz. 20 lutego

System operacyjny Linux wybrane zagadnienia. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Dodatek nr 1: Niektóre polecenia systemu Linux (shell tcsh) A) Informacje wstępne

Opera Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Opera wersja 1.1 UNIZETO TECHNOLOGIES SA

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

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

Sposoby przekazywania parametrów w metodach.

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Program do konwersji obrazu na cig zero-jedynkowy

UŻYTKOWNIK. APLIKACJE UŻYTKOWE (wszelkie programy zawarte domyślnie w systemie operacyjnym jak i samodzielnie zainstalowane przez użytkownika systemu)

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

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

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

Wstęp do systemu Linux

Programowanie skryptów powłoki

System Linux - użytkowanie

Pracownia Komputerowa wyk ad II

Instrukcja obsługi programu Pilot PS 5rc

Moduł 4: Strumienie, potoki, sterowanie procesami

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

1. Wprowadzenie do C/C++

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

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

ZAJĘCIA Komendy Linux WB -> w konsoli tty2 finger exit man pwd pwd finger ls man ls. -> po 2 minusach interpretacja słowa

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Podstawy systemów UNIX

Szkolenie AGH Linux. Nie bój się konsoli i zdaj kolosa na 5.0!!! Tytuł wcale nie przesadzony ;)

Transkrypt:

Wprowadzenie do systemu operacyjnego Linux programowanie powłoki

plan powłoka dostpne powłoki zmienne rodowiskowe przekierowanie wejcia/wyjcia procesów przetwarzanie potokowe wieloprogramowo programowanie w powłoce 2

plan programowanie w powłoce: wprowadzenie zmienne powłoki procedury powłoki wykorzystanie struktur sterujcych funkcje wewntrzne powłoki bibliografia 3

powłoka inna nazwa powłoki (ang. shell), to prostu interpreter polece za pomoc interpretera polece uytkownik moe uruchamia własne programy aplikacyjne albo ogólnie dostpne programy systemowe 4

powłoka powłok nazywa si te powłok systemow [Sobaniec2002] powłoka systemowa jest porednikiem midzy uytkownikiem a funkcjami systemu operacyjnego 5

powłoka podstawowe funkcje systemu operacyjnego (np. zarzdzanie procesami) s realizowane przez jdro (ang. kernel), std powłoka jest porednikiem midzy uytkownikiem a jdrem systemu operacyjnego [Sobaniec 2002], [KS1993] 6

powłoka z punktu widzenia systemu operacyjnego powłoka jest zwykłym procesem, niemniej moe kontrolowa wykonanie innych procesów [Sobaniec2002], [KS1993] 7

powłoka praca powłoki składa si z nastpujcych czynnoci: przyjcie polecenia od uytkownika (odczyt) dekodowanie polecenia (interpretacja) wykonanie polecenia 8

dostpne powłoki istniej róne wersje powłoki [Sobaniec2002], uruchamiane poleceniami: interpreter Bourne a sh interpreter C-shell csh interpreter Korna ksh interpreter tcsh tcsh kolejny interpreter Bourne a bash 9

dostpne powłoki powłoki chronologicznie/s.o.: interpreter Bourne a sh, 1977, Unix interpreter C-shell csh,1978, BSD Unix interpreter Korna ksh, 1983, róne, AIX interpreter tcsh tcsh,1983, róne kolejny interpreter Bourne a bash, róne, 1989 10

dostpne powłoki sprawdzenie powłoki: user@koziolek:~$ echo $SHELL /bin/bash wywołanie powłoki: user@koziolek:~$ sh $ exit user@koziolek:~$ 11

dostpne powłoki zmiana powłoki zgłoszeniowej (login shell), czyli zmiana domylnego interpretera polece, realizowana jest poleceniem chsh (ang. change shell) 12

zmienne rodowiskowe słu do konfigurowania powłoki tworzrodowisko wykonania procesu, przypisywane do kadego procesu niezalenie uytkownik moe definiowa dowoln liczb własnych zmiennych [KS1993], [Sobaniec2002] 13

zmienne rodowiskowe list zmiennych rodowiskowych uzyskujemy poleceniem env: user@koziolek:~$ env poniewa wynik tego polecenia jest do długi, skoncentrujemy si tylko na podstawowych zmiennych, prezentujc wynik stronami: user@koziolek:~$ env pg 14

zmienne rodowiskowe typ aktualnie wykorzystywanego terminalu: TERM=xterm pełna cieka do powłoki: SHELL=/bin/bash nazwa uytkownika: USER=user USERNAME=user LOGNAME=user 15

zmienne rodowiskowe cieka przeszukiwa katalogów: PATH=/usr/lib/lightdm:/usr/local/sbin: katalog domowy uytkownika: PWD=/home/user jzyk (polski, Polska, kod): LANG=pl_PL.UTF-8 16

zmienne rodowiskowe oprócz tych zmiennych, mog by te inne zmienne [Sobaniec2002], [KS1993]: cieka przeszukiwa stron pomocy: MANPATH znak zachty: PS1 znak zachty w drugiej linii: PS2 domylny edytor tekstu: EDITOR domylna przegldarka plików tekstowych: PAGER domylna drukarka: PRINTER i wiele innych 17

zmienne rodowiskowe porównajmy rezultaty polece: user@koziolek:~$ echo $HOME /home/user oraz: user@koziolek:~$ echo $$HOME 1600HOME 18

zmienne rodowiskowe poniewa$$ jest numerem procesu aktualnie wykonywanej powłoki, wynik jest zrozumiały po wydaniu polecenia: user@koziolek:~$ ps p 1600 PID TTY TIME CMD 1600 pts/0 00:00:00 bash gdzie ps jest poleceniem okrelajcym stan procesów 19

zmienne rodowiskowe zakresem wanoci zmiennych jest aktualny proces powłoki, jeeli zakres ma by rozszerzony, to zmienna musi by przesłana do procesów podrzdnych poleceniem export export nazwa_zmiennej 20

zmienne rodowiskowe w powłoce csh mona zmienne lokalne i globalne ustawia i usuwa poleceniami set i unset oraz setenv i unsetenv 21

zmienne rodowiskowe w powłoce bash ustawienie i eksport zmiennej w jednym kroku [Sobaniec2002]: user@koziolek:~$ export ABC=123 user@koziolek:~$ echo $ABC 123 user@koziolek:~$ 22

przekierowanie wejcia/wyjcia przekierowanie wejcia/wyjcia procesów polega na zmianie standardowych urzdze wprowadzania i wyprowadzania informacji na inne wygodne dla uytkownika [KS1993] 23

przekierowanie wejcia/wyjcia kademu procesowi w chwili uruchamiania przypisuje si automatycznie standardowy strumie wejciowy (stdin), standardowy strumie wyjciowy (stdout) oraz standardowy strumie diagnostyczny (stderr) normalnie stdin jest dołczony do klawiatury, a stdout i stderr do ekranu 24

przekierowanie wejcia/wyjcia normalnie stdin jest dołczony do klawiatury, a stdout i stderr do ekranu komputera (terminala) strumie to abstrakcja ródła albo ujcia danych: ródłem moe by klawiatura albo dysk, a ujciem moe by ekran komputera (terminal) albo plik [Sobaniec 2002] 25

przekierowanie wejcia/wyjcia wikszo programów wpisuje wyniki do standardowego strumienia wyjciowego i oczekuje danych ze standardowego strumienia wejciowego uytkownik nie musi wic podawa, gdzie naley kierowa wyniki 26

przekierowanie wejcia/wyjcia kierunki wprowadzania i wyprowadzania s oznaczone odpowiednio znakami < i > przykładowo, uywajc polecenia ls mona wyprowadzi wykaz plików zawartych w katalogu do dowolnego pliku stosujemy kolejno nastpujce polecenia: 27

przekierowanie wejcia/wyjcia user@koziolek:~$ ls otrzymujemy wykaz 9 plików w 5 kolumnach user@koziolek:~$ ls > plik_ls user@koziolek:~$ ls otrzymujemy wykaz 10 plików w 5 kolumnach user@koziolek:~$ cat plik_ls otrzymujemy wykaz 10 plików w 1 kolumnie 28

przekierowanie wejcia/wyjcia przekierowanie: > pusty spowoduje utworzenie pustego pliku o nazwie pusty co mona sprawdzi: ls l pusty -rw-rw-r - 1 user user 0 2012-03-23 00:47 pusty 29

przekierowanie wejcia/wyjcia kolejne wykonanie polece [KS1993]: ls > plik_ls ls >> plik_ls spowoduje, e w pliku plik_ls znajduje si np. 20 wpisów, czyli 2 razy po 10 takich samych wpisów. sprawdzamy: cat plik_ls 30

przekierowanie wejcia/wyjcia zmiana standardowego strumienia wejciowego [KS1993]: sort< telefony > telefony_sort program sortujcy sort pobiera dane z pliku telefony, a wyniki przesyła do pliku telefony_sort 31

przekierowanie wejcia/wyjcia konkatenacja dwóch plików i wyprowadzenie wyników na ekran komputera: cat plik1 plik2 konkatenacja dwóch plików i wyprowadzenie wyników do pliku plik3 : cat plik1 plik2 > plik3 32

przetwarzanie potokowe powłoka umoliwia tworzenie łczy komunikacji midzy procesami, i tworzy tzw. potok. (ang. pipeline). Łcza kieruj wynik jednego programu (procesu) na wejcie drugiego czyli stdout jednego procesu wchodzi na stdin drugiego 33

przetwarzanie potokowe user@koziolek:~$ ls al wc 37 290 2193 (wc liczy wiersze, słowa, bajty) rozwamy jeszcze kolejny potok, bdcy filtrem: user@koziolek:~$ ls al grep cookie -rw------- 1 user user 256 2012-03-08 11:39.pulse-cookie 34

wieloprogramowo współbiene wykonywanie w danej chwili wielu programów (dokładniej współbienej pracy wielu procesów wykonujcych programy) w systemie Linux odrónia si proces, czyli obiekt dynamiczny tworzony przez system od wykonywanego przez proces programu, czyli obiektu statycznego zapisanego jako plik 35

wieloprogramowo w systemie Linux moliwe jest uruchomienie pewnego programu i w czasie jego pracy wykonywanie innych czynnoci na komputerze moliwe jest te uruchomienie dwa razy tego samego programu dla rónych zestawów danych 36

wieloprogramowo aby spowodowa równoczesne wykonanie dwóch programów lub polece, uytkownik musi nakaza powłoce uruchomienie polecenia2 bez czekania na zakoczenie pracy polecenia1 daniem nieczekania jest znak & (ampersand) na kocu polecenia1 37

wieloprogramowo polecenie1& polecenie2 programy wykonujce oba polecenia bd pracowały równoczenie, ale polecenie1 bdzie realizowane w tle, a polecenie2 bdzie wykonywane jako praca pierwszoplanowa 38

wieloprogramowo user@koziolek:~$ (sleep 60; who)& 7288 zawieszenie wykonania procesu na 60s 39

programowanie w powłoce wprowadzenie zmienne powłoki procedury powłoki wykorzystanie struktur sterujcych funkcje wewntrzne powłoki 40

wprowadzenie programowanie w powłoce polega na: operowaniu zmiennymi tworzeniu procedur powłoki (skryptów) uyciu struktur sterujcych wykorzystaniu polece wewntrznych 41

wprowadzenie polecenia mona zagnieda za pomoc nawiasów okrgłych lub klamrowych cig polece w nawiasach okrgłych bdzie wykonany jako samodzielny podrzdny proces powłoki, zmiany w otoczeniu nie bd wpływa na aktualny proces powłoki na przykład: 42

wprowadzenie $pwd /usr/studenci $(cd /bin; ls la mkdir) -rwx r 1 bin 2048 2012-03-08 mkdir $pwd /usr/studenci polecenie cd w nawiasach okrgłych nie spowodowało zmiany katalogu biecego 43

wprowadzenie cig polece w nawiasach klamrowych bdzie wykonany przez aktualny proces powłoki, spowoduje to zmian katalogu biecego, na przykład: 44

wprowadzenie $pwd /usr/studenci ${ cd /bin; ls la mkdir;} -rwx r 1 bin 2048 2012-03-08 mkdir $pwd /bin 45

wprowadzenie nawiasy klamrowe oddzielaj te nazw zmiennej od innych znaków: a= To jest echo ${a}test na ekranie wywietli si napis To jest test 46

zmienne powłoki nazwy zmiennych stanowi cigi znaków zaczynajce si od litery, złoone z liter, cyfr i znaków podkrelenia warto zmiennej to łacuch znaków przypisanie wartoci zmiennej: Nazwa_zmiennej=warto 47

zmienne powłoki warto zmiennej oznaczana przez $ przed nazw zmiennej aktualn warto zmiennej poznamy poleceniem: echo $nazwa_zmiennej wartoci zmiennej moe by nazwa polecenia albo potok polece 48

zmienne powłoki uytkownik moe definiowa własne zmienne, w celu skrócenia zapisu zmienne o wartociach zdefiniowanych pierwotnie to zmienne rodowiskowe wartoci tych zmiennych mona zmienia kwestia ta była ju poruszona wczeniej 49

procedury powłoki jeeli cigi polece umiecimy w pliku, to taki plik jest nazywany procedur powłoki, albo skryptem plik taki wykonuje si przez uruchomienie nowego procesu powłoki i przekazanie mu tego pliku jako danych wejciowych 50

procedury powłoki $ sh procedura albo $ sh<procedura najwygodniej jest zmieni plik tekstowy w plik z prawem wykonywania: $ chmod a+x procedura np. mona stworzy procedur dir zawierajca ls al., i zmieni jej prawa wykonywania 51

procedury powłoki np. mona stworzy procedur dir zawierajca ls al, i zmieni jej prawa wykonywania 52

wykorzystanie struktur sterujcych w jzyku polece powłoki kademu poleceniu po jego wykonaniu przypisuje si kod zakoczenia, albo TRUE, albo FALSE w zalenoci o wartoci tego kodu, powłoka moe podj dalsze operacje, n.p.: 53

wykorzystanie struktur sterujcych polecenie1 && polecenie2 polecenie2 si wykona jeli polecenie1 zakoczyło si powodzeniem (koniunkcja warunkowa) polecenie1 polecenie2 polecenie2 wykona si tylko wtedy, gdy polecenie1 zakoczy si niepowodzeniem (alternatywa warunkowa) 54

funkcje wewntrzne powłoki funkcje wykonywane s wewntrznie przez powłok i nie prowadzce do utworzenia nowego procesu, std efektywne zwane te poleceniami wbudowanymi podamy tutaj jedn funkcj (polecenie kropka (.):.plik funkcja ta czyta i wykonuje polecenia z pliku, a nastpnie wraca do miejsca wywołania 55

uwagi kocowe dzisiejsze szkolenie powicone programowaniu powłoki nie wyczerpuje oczywicie wszelkich aspektów zostały wyjanione kwestie podstawowe jestemy nadal na pocztku drogi, szereg niuansów wyjani si w codziennej praktyce 56

bibliografia [KS1993] Z. Królikowski, M. Sajkowski, System operacyjny UNIX dla pocztkujcych i zaawansowanych, Nakom, Pozna 1993. [Sobaniec2002] C. Sobaniec, System operacyjny Linux przewodnik uytkownika, Nakom, Pozna 2002. 57

bibliografia uzupełniajca [Bis2011] M. Bis, Linux w systemach embedded, BTC, Warszawa 2011. [Bauer2005] M.D. Bauer, Linux. Serwery. Bezpieczestwo, Helion, Gliwice 2005. [Frisch1996] E. Frisch, Unix. Administracja systemu, Read Me, Warszawa 1996. [Garrels2005] M. Garrels, Bash Guide for Beginners, Fultus.com, 2005. [GA2007] G. Glass, K. Ables, Linux dla programistów i uytkowników, Helion, Gliwice 2007. [HGS1999] K. Haviland, D. Gray, B. Salama, Unix. Programowanie systemowe, RM, Warszawa 1999. 58

bibliografia uzupełniajca [KD2000] O. Kirch, T. Dawson, Linux podrcznik administratora sieci, RM, Warszawa 2000. [Matthew2002] N. Matthew, R. Stones, Zaawansowane programowanie w systemie Linux, Helion 2002. [McCarty2005] B. McCarty, Red Hat Enterprise Linux i Fedora Core 2. Wprowadzenie, Helion, Gliwice 2005. [Mitchell2002] M. Mitchell, J. Oldham, A. Samuel, Linux. Programowanie dla zaawansowanych, RM, Warszawa 2002. [Strobel1997] S. Strobel, T. Uhl, Linux, WNT, Warszawa 1997. 59