Skrypty shella programowanie w języku powłoki.



Podobne dokumenty
Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

Bash - wprowadzenie. Bash - wprowadzenie 1/39

1 Przygotował: mgr inż. Maciej Lasota

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

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

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Chemiateoretyczna. Monika Musiał. Ćwiczenia

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

Konsola Linux. autor: Mariusz Barnaś

WPROWADZENIE. Warto pamiętać o opcji autouzupełniania, której używamy naciskając klawisz [Tab]

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

Podstawy użytkowania Linux a

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Linux cz.3: polecenia systemowe, ćwiczenia

Znaki globalne w Linuxie

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

Ćwiczenia Linux konsola

Zakład Systemów Rozproszonych

Technologie Informacyjne - Linux 2

Proces instalacji systemu operacyjnego Linux Red Hat 7.3 (1)

Ćwiczenie 9 Linux - operacje systemu plików

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

BASH - WPROWADZENIE Bioinformatyka 4

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

Linux: System Plików

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

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

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

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Ćwiczenie nr 14: System Linux

System plików - wprowadzenie. Ścieżki dostępu. Informatyka ćw 1

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

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

Wstęp do systemu Linux

System Linux - użytkowanie

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

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

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Systemy operacyjne- tematy do opracowania

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

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

Wstęp do obsługi Linux a

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Umożliwia ona pokazanie ukrytych plików i katalogów, nazwa ich zaczyna się od kropki.

Laboratorium Ubuntu Linux.

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

Linux. Wprowadzenie do systemu.

Wstęp do informatyki Shell podstawy

Pracownia komputerowa. Dariusz wardecki, wyk II

Pracownia Komputerowa wykład II

Wstęp do obsługi Linux a

System plików. Podstawy systemu Linux

Podstawy Linuksa. Wiesław Płaczek Postawy Linuksa 1

Podstawy systemów UNIX

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

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

System operacyjny Linux

Wstęp do systemu Linux

Powłoka (shell) Powłoka ksh

Ćwiczenie 1.1. Korzystając z internetu dowiedz się, czym jest system uniksopodobny (*NIX) oraz jak rozwijały się systemy z tej rodziny.

Powstanie Linuxa Linus Torvalds fiński programista, twórca Linuxa

Strona1. Linux. Skrypty powłoki

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

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

Pracownia Komputerowa wykład III

Ćwiczenia z podstaw systemu Linux

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

Pracownia Komputerowa wyk ad II

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Powłoka interpreter poleceń systemu UNIX

Przypomnienie komend linux'a.

Okiełznać Pingwina.... czyli podstawy systemu GNU/Linux

Systemy Operacyjne I: System plików

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

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

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Ćwiczenie 1. Podstawowe wiadomości

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

Wprowadzenie do programowania w powłoce

Pracownia Komputerowa wykład III

Informatyka III : Instrukcja 1

Wstęp do systemów wielozadaniowych laboratorium 03 Praca z plikami, c.d.

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 25 ARCHITEKTURA SYSTEMU LINUX. Opracował Sławomir Zieliński

host name: protokół SSH System plików - wprowadzenie Ścieżki dostępu

System operacyjny UNIX system plików. mgr Michał Popławski, WFAiIS

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

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

LINUX polecenia Uwaga Linux rozróżnia wielkość liter!!!

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

Współczesne systemy komputerowe

2. System uprawnień w linuxie

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

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

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

- wszystkie elementy - wszystkie elementy

Transkrypt:

Skrypty shella programowanie w języku powłoki. Zacznijmy od przypomnienia. Shell, czyli powłoka, to program przeznaczony do prowadzenia interakcji z użytkownikiem. Innymi słowy jest to narzędzie, dzięki któremu użytkownik może wykonywać pewne operacje, korzystając z dostarczanego przez powłokę języka. Działanie powłoki oczywiście jest możliwe dzięki funkcjom dostarczanym przez jądro systemu operacyjnego 1. Shell odbiera od użytkownika polecenia do wykonania - w większości w trybie tekstowym. Polecenia te powinny należeć do zestawu rozkazów rozumianych przez powłokę ( język powłoki ) nazywamy je wówczas poleceniami wewnętrznymi (lub wbudowanymi). Przykładowo polecenie for jest elementem wbudowanym shella. Do jego zrozumienia (i prawidłowej interpretacji) powłoka nie potrzebuje żadnej pomocy ani programów zewnętrznych. W przypadku, gdy wprowadzone polecenie nie jest rozpoznane jako polecenie wbudowane, powłoka uznaje je za program zewnętrzny, który należy wykonać (dlatego mówimy czasem o poleceniach zewnętrznych shella). Istnieją wówczas dwie możliwości albo taki program jest programem wykonywalnym (czyli skompilowaną wersją programu źródłowego), albo jest zwykłym plikiem tekstowym, zawierającym skrypt. Skrypt to oczywiście nic innego jak zbiór poleceń (wewnętrznych lub zewnętrznych). Oczywiście, jeśli shell nie znajduje programu o podanej nazwie, to zgłasza użytkownikowi błąd. W ten sposób, można podać schemat interpretacji każdego polecenia wprowadzonego do shella (nie jest to może poprawny formalnie schemat blokowy, ale wystarczająco dobra ilustracja działania shella) por. rysunek obok 1 Jak dalej zobaczymy, shell potrafi także korzystać z innych programów ale one też działają dzięki usługom shella

W tym miejscu warto przypomnieć, że w systemach linuksowych zwykle użytkownik ma do wyboru jedną z wielu równorzędnych powłok. Przykładowe możliwości to: sh, bsh, csh, ksh, bash i zsh. Przypomnijmy raz jeszcze rysunek zamieszczony poprzednio. Użytkownik wydaje polecenie shellowi zostanie on albo rozpoznany jako polecenie wewnętrzne, albo nastąpi próba uruchomienia programu zewnętrznego. Nawiasem mówiąc, pojęcie shella można także skojarzyć ze starymi (naprawdę starymi!) grami tzw. text adventure. Poniższe dwa ekrany pokazują możliwości kultowej (w swoim czasie) gry The Hobbit, wydanej na ośmiobitowy komputer ZX Spectrum w 1982 roku (ćwierć wieku temu!). Z uwagi na bardzo ograniczone możliwości sprzętowe, program raczej opisywał niż pokazywał graczowi otaczającą go scenę. W takich warunkach trudno było o stworzenie wygodnego (wg dzisiejszych standardów) interfejsu użytkownika. W związku z tym gracz musiał korzystać z ograniczonego zestawu poleceń, wpisywanych z konsoli (np. TAKE, ATTACK, LOOK, GO, SAY itp.). Przykładowo, można było wykonać taką sekwencję: TAKE RING (weź pierścień) WEAR RING (załóż pierścień) DRAW SWORD (wyciągnij miecz) ATTACK ORC WITH SWORD (zaatakuj orka mieczem)

W niektórych grach (późniejszych), można było budować całe zestawy poleceń i odpalać je jednym rozkazem. Wyglądało to mniej więcej tak: ALIAS FIGHT = DRAW SWORD; DRINK MAGIC POTION; ATTACK NEAREST Wówczas, w sytuacji zagrożenia, nie trzeba było wywoływać długiej linii wystarczyło wpisać FIGHT co powodowało uruchomienie sekwencji poleceń. Dziś podobne skróty dostępne są w niektórych grach sieciowych. Jak łatwo zauważyć, ten rodzaj interakcji występuje także w linuksowym shellu. Można wydawać pojedyncze polecenia (takie jak TAKE RING w grze Hobbit), albo przygotowywać grupy poleceń (ALIAS FIGHT). Te ostatnie nazywamy po prostu skryptami. Po tym, nieco teoretycznym wstępie, spróbujmy napisać pierwsze polecenia shella. Spróbujmy działać na razie w trybie interaktywnym, to znaczy wydawać shellowi pojedyncze polecenia. echo "Hello world" Polecenie echo powoduje wyświetlenie podanego dalej tekstu na ekranie. Jeśli chcemy uzyskać na temat tego polecenia więcej informacji, możemy skorzystać z systemowego helpa jest on dostępny dzięki poleceniu man (manual). Pierwszych kilka linii pokazującego się helpa pokazano niżej: man echo ECHO(1) User Commands ECHO(1) NAME echo - display a line of text SYNOPSIS echo [OPTION]... [STRING]... DESCRIPTION Echo the STRING(s) to standard output. -n do not output the trailing newline -e enable interpretation of backslash escapes -E disable interpretation of backslash escapes (default) --help display this help and exit Manual zwykle dzieli się na sekcje NAME (nazwa i krótki opis polecenia), SYNOPSIS (sposób wywoływania) i DESCRIPTION (szczegółowe informacje na temat parametrów). Warto nauczyć

się czytać te informacje dzięki niemu zawsze będzie można uzyskać pomoc na temat mniej znanych poleceń. Zauważmy też pewien standard zapisu, używany w sekcji SYNOPSIS: cos oznacza konieczność pojawienia się obiektu coś [cos] oznacza, że coś może (ale nie musi wystąpić) cos1 cos2 - oznacza alternatywę: musi wystąpić cos1 lub cos2 cos1 cos2] oznacza alternatywę: może wystąpić cos1 lub cos2 Możemy także skorzystać z polecenia help, które podaje polecenia wbudowane aktualnie użytkowanego shella: help GNU bash, version 3.2.39(1)-release (i386-redhat-linux-gnu) These shell commands are defined internally. Type `help' to see this list. Type `help name' to find out more about the function `name'. Use `info bash' to find out more about the shell in general. Use `man -k' or `info' to find out more about commands not in this list. A star (*) next to a name means that the command is disabled. JOB_SPEC [&] (( expression )). filename [arguments] : [ arg... ] [[ expression ]] alias [-p] [name[=value]... ] bg [job_spec...] bind [-lpvspvs] [-m keymap] [-f fi break [n] builtin [shell-builtin [arg...]] caller [EXPR] Podamy teraz kilkanaście najważniejszych poleceń, których będziemy używali do pisania skryptów. Dla każdego z nich warto zobaczyć jego manual, aby zorientować się w możliwościach ich wykorzystania (różne opcje zwane też przełącznikami) ls pokazuje zawartość wskazanego katalogu ls l pokazuje długą formę (więcej informacji o plikach) ls a pokazuje także pliki ukryte

dir pwd cd mkdir rmdir cp rm mv ps kill man zip gzip tar chmod chown finger who whoami passwd du df działa jak ls bez parametrów pokazuje bieżący katalog (ten, w którym pracujemy) zmiana katalogu cd xxx zmienia katalog na xxx cd.. zmienia katalog na nadrzędny cd zmienia katalog na katalog domowy stworzenie katalogu usunięcie katalogu skopiowanie pliku cp xxx yyy kopiuje plik xxx do pliku yyy cp R /home/pjwstk/wojmos/skrypty. kopiuje podany katalog i pliki w nim usunięcie pliku przenosi plik pokazuje procesy aktualnie działające w systemie ps aux pokazuje wszystkie procesy wszystkich użytkowników wysyła sygnał do procesu (najczęściej sygnał zabicia) kill -9 8888 zabicie procesu o numerze 8888 (wysłanie sygnału zabicia; 9) manual, czyli pomoc systemowa program do archiwizacji program do archiwizacji dostępny na licencji GNU użyteczny do dziś w archiwizacji program, wywodzący się z dawnych nośników taśmowych służy do umieszczania wielu plików w postaci jednego archiwum ustawia prawa dostępu do pliku zmienia właściciela pliku pokazuje dane użytkownika (program często wycofywany i blokowany z uwagi na wymogi bezpieczeństwa) pokazuje zalogowanych użytkowników pokazuje nazwę zalogowanego użytkownika zmienia hasło (użytkownik root może zmienić hasło dowolnego użytkownika) pokazuje użycie dysku lub katalogu du sh xxx pokazuje ile miejsca zajmuje katalog xxx pokazuje ilość wolnego miejsca dostępnego na dysku

touch grep wc cat diff find head tail nano df h /dev/sda1 pokazuje ile wolnego miejsca zostało na dysku /dev/sda1 tworzy pusty plik touch zzz tworzy pusty plik o nazwie zzz filtr służący m.in. do przepuszczania linii zawierających podany wzór cat /etc/passwd grep wojmos czy w pliku jest linia zawierajaca słowo wojmos potrafi zliczać linie, słowa i bajty wc-l xxx podaje ile linii ma plik xxx proste polecenie o zadziwiająco wielkich możliwościach. Pozwala ono na przeniesienie tego, co dostaje na wejściu na wyjście. Często używane w połączeniach poleceń z użyciem > lub cat xxx wczytuje plik xxx i wysyła go na ekran cat <xxx wczytuje plik xxx i wysyła go na ekran cat xxx > yyy wczytuje plik xxx i kopiuje go do pliku yyy cat > yyy pozwala wprowadzać z klawiatury dane do pliku yyy porównuje pliki diff xxx yyy porównuje zawartość plików xxx i yyy wyszukuje pliki find /home -name *.jpg print wyszukuje wszystkie jpgi w katalogach użytkowników Wyświetla pierwsze linie pliku head n10 /var/log/messages pokazuje 10 pierwszych linii logu systemowego Wyświetla ostatnie linie pliku tail n10 /var/log/messages pokazuje 10 ostatnich linii logu systemowego Przyjazny edytor tekstowy dla linuxa, następca programu pico