Pracownia specjalistyczna. Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka

Podobne dokumenty
Bash - wprowadzenie. Bash - wprowadzenie 1/39

Zakład Systemów Rozproszonych

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

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

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

vi - Edytor tekstu. 1. To, co każdy powinien wiedzieć o vi!!!

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

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

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

1 Przygotował: mgr inż. Maciej Lasota

- wszystkie elementy - wszystkie elementy

MGA Sp. z o.o Toruń ul. Piaskowa 6

Wstęp do Informatyki dla bioinformatyków

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

System operacyjny Linux

Trochę o plikach wsadowych (Windows)

Pracownia Komputerowa wykład III

Ćwiczenie 5 Menu programu

Ćwiczenie nr 14: System Linux

Systemy operacyjne 11

Technologie Informacyjne - Linux 3

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

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

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

Powłoka (shell) Powłoka ksh

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Tworzenie skryptu: Skrypty powłoki

Programowanie skryptów powłoki

PODSTAWY INFORMATYKI

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

Przekierowanie wejścia wyjścia:

Skrypty powłoki w systemie Linux

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Skróty klawiaturowe w programie Microsoft Excel 2013

Pracownia Komputerowa wykład III

Środowisko programisty Zestaw 7

Wprowadzenie do Scilab: podstawy języka Scilab

Skróty klawiaturowe w systemie Windows 10

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Wstęp do systemu Linux

Interpreter poleceń oraz zmienne środowiskowe

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

Linuks skrypty Część teoretyczna

Operatory d - kasuj (do bufora tymczasowego) c - zmień y - zapamiętaj (yank) > - przesuń w prawo < - przesuń w lewo. Informatyka MPDI2. np.

MS-DOS polecenia wewnętrzne i

Wprowadzenie do programowania w powłoce

Powłoka bash. Kurs systemu Unix 1

Bash - instrukcje warunkowe, pętle i funkcje

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

Programowanie w BASH u Skrypt do ćwiczeń

PODSTAWOWE INFORMACJE NA TEMAT KONSOLI W SYSTEMIE WINDOWS

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

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Technologie informacyjne lab. 4

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

Podręczna pomoc Microsoft Excel 2007

Technologie Informacyjne - Linux 2

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

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

Wstęp do systemu Linux

Narzędzia informatyczne w językoznawstwie

Wprowadzenie do programowania shella (bash)

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

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

Programowanie w języku Python. Grażyna Koba

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

WINDOWS XP PRO WINDOWS XP PRO

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Techniki zaznaczania plików i folderów

Dokument zawiera podstawowe informacje o użytkowaniu komputera oraz korzystaniu z Internetu.

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

JAVA?? to proste!! Autor: wojtekb111111

Powłoka interpreter poleceń systemu UNIX

Skróty klawiaturowe w PowerPoint

Podstawy programowania skryptów Sh

System operacyjny Linux

Podstawy informatyki

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Podstawy użytkowania Linux a

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

1. shell co to i co umożliwia, jakie są shell e. 2. skrypty powłoki. crone dr inż. Anna Zatwarnicka Skrypty i crone

lekcja 8a Gry komputerowe MasterMind

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

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

Blockly Kodowanie pomoc.

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

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

Podstawowe czynnos ci w programie Excel

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

Systemy operacyjne Skrypt do ćwiczeń laboratoryjnych

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

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

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

Transkrypt:

Pracownia specjalistyczna Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka

Edytory Linuxa Część 1. Podstawowe komendy edytora vim edytor vim przyjmuje w parametrach pliki edytowania np. : # vim plik.txt przełączanie pomiędzy trybami edytora: Przełączenie trybu edycji: i wstawia kursor przed karetką a wstawia kursor za karetką I wstawia kursor na początku linii po wszystkich spacjach i tabulatorach A wstawia kursor na końcu linii Przełączenie trybu zaznaczania tekstu: v zorientowanego na literki V zorientowanego na linie <Ctrl> v zorientowanego na bloki komendy trybu zaznaczania tekstu: y skopiuj (ang. yank wyrywać) tekst i przejdź trybu komend x wytnij tekst i przejdź trybu komend podstawowe komendy trybu komend: p wklej za kursorem P wklej w miejscu kursora

h j k l nawigowanie (zastępczo za strzałki) :w <nazwa pliku><enter> zapisz plik jako <nazwa pliku> :w<enter> zapisz plik :q<enter> wychodzi z programu :q!<enter> wymusza wyjście z programu w przypadku gdy plik nie jest zapisany :wq<enter> zapis i wyjście z programu :o <nazwa pliku><enter> otwieranie pliku <nazwa pliku> ZADANIA Zad 1. Za pomocą edytora vim stwórz plik plik.txt i napisz w nim kilkulinijkowy (sensowny) tekst. Następnie zapisz plik i wyjdź z edytora. Zad 2. Otwórz wcześniej utworzony plik. Skopiuj pierwszą linię i wklej na końcu pliku. Zapisz plik jako wyedytowany plik.txt. Zad 3. Wytnij drugie słówko z pierwszej linii i wstaw jako drugie słówko drugiej linii. Zamknij plik bez zapisywania.

Część 2. Rozszerzone komendy trybu komend. wyszukiwanie tekstu: /<wzorzec tekstu><enter> lub?<wzorzec tekstu><enter> szukaj następnego wystąpienia: /<Enter> lub N szukaj poprzedniego wystąpienia:?<enter> lub n u cofa wykonaną zmianę <Ctrl> r przywraca uprzednio wycofaną zmianę yy kopiuje wybraną linię tekstu y<liczba>y kopiuje liczbę <liczba> linii rozpoczynając od miejsca w znajduje się kursor yw kopiuje słowo rozpoczynając od miejsca w którym znajduje się kursor y<liczba>w kopiuje liczbę <liczba> słów rozpoczynając od miejsca w którym znajduje się kursor yl kopiuje literę z miejsca w którym znajduje się kursor y<liczba>l kopiuje liczbę <liczba> liter rozpoczynając od miejsca w którym znajduje się kursor y0 kopiuje wszystko od początku linijki miejsca w którym znajduje się kursor yg kopiuje wszystko od miejsca w którym znajduje się kursor końca pliku dd usuwa linię w której znajduje się kursor d<liczba>d usuwa liczbę <liczba> linii rozpoczynając od miejsca w znajduje się kursor pobnie jak w przypadku komendy kopiowania y można przez zastąpienie y na d można utworzyć komendy usuwające wybraną przez nas część pliku gg przechodzi na początek pliku g0 przechodzi na początek linii G przechodzi na koniec pliku :<liczba><enter> przechodzi linii <liczba> <liczba>% przechodzi linii która odpowiada procentowi <liczba> części pliku :s/<wzorzec>/<tekst>/<enter> zamienia pierwsze wystąpienie (po kursorze) wzorca <wzorzec> na wybrany tekst <tekst> :% s/<wzorzec>/<tekst>/<enter> zamienia wszystkie wystąpienia wzorca <wzorzec> na tekst <tekst> :<liczba1>[,<liczba2>] s/<wzorzec>/<tekst>/<enter> zamienia wszystkie wystąpienia wzorca <wzorzec> w linii <liczba1> (przedziale linii od <liczba1> <liczba2>) na tekst <tekst> ZADANIA Zad 1. Utwórz plik wierszyki.txt. Skopiuj tekst: NIEDŹWIEDŹ Proszę państwa, oto miś. Miś jest bardzo grzeczny dziś, Chętnie państwu łapę poda. Nie chce podać? A to szkoda. TYGRYS Co słychać, panie tygrysie? A nic. Nudzi mi się. Czy chciałby pan wyjść zza tych krat?

Pewnie. Przynajmniej bym pana zjadł. STRUŚ Struś ze strachu Ciągle głowę chowa w piachu, Więc ma opinię mazgaja. A nadto znosi jaja wielkości strusiego jaja. DZIK Dzik jest dziki, dzik jest zły, Dzik ma bardzo ostre kły. Kto spotyka w lesie dzika, Ten na drzewo szybko zmyka. PAPUGA Papużko, papużko, Powiedz mi coś na uszko. Nic nie powiem, boś ty plotkarz, Powtórzysz każdemu, kogo spotkasz. LIS Rudy ojciec, rudy dziadek, Rudy ogon to mój spadek, A ja jestem rudy lis. Ruszaj stąd, bo będę gryzł. WILK Powiem ci w słowach kilku, Co myślę o tym wilku: Gdyby nie był na obrazku, Zaraz by cię zjadł, głuptasku. ŻÓŁW Żółw chciał pojechać koleją, Lecz koleje nie tanieją. Żółwiowi szkoda pieniędzy: Pójdę pieszo, będę prędzej. ZEBRA Czy ta zebra jest prawdziwa? Czy to tak naprawdę bywa? Czy też malarz z bożej łaski Pomalował osła w paski? KANGUR Jakie pan ma stopy duże, Panie kangurze! Wiamo, dlatego kangury W skarpetkach robią dziury. I wklej go swojego pliku za pomocą skrótu <Ctrl> <Shift> v. Zapisz plik. Zad 2. Posortuj wierszyki za pomocą wycinania i wklejania alfabetycznie ze względu na zwierzęta. Zad 3. Zamień wszystkie wystąpienia słowa pan na Pan. Zad 4. Usuń ostatnie 6 linii pliku z wierszykami.

Część 3. Zaawansowane komendy edytora vim Zarządzanie kartami: :tabnew<enter> otwiera nową kartę edytora :tabnext<enter> przełącza następnej karty :tabprev<enter> przełącza poprzedniej karty :tabclose<enter> zamyka kartę :help :tab<enter> otwiera manuala tyczącego kart Zarządzanie okienkami: <Ctrl> w, n tworzy nowe okno <Ctrl> w, <Ctrl> w przejdź następnego okna <Ctrl> w, x wymienia aktywne okno na ostatnio używane :help winw wyświetla manuala tyczącego okien z ciekawostek :) :Sex<Enter> umożliwia otwarcie w nowym oknie wybranego pliku z bieżącej lokalizacji :set number<enter> wyświetla numery linii :set nonumber<enter> wyłącza wyświetlanie numerów linii :syntax on<enter> włącza podświetlanie składni :sh otwiera konsolę żeby wrócić edytora wystarczy wpisać w konsoli exit<enter> ZADANIA Zad 1. Przetestuj wyżej wymienione komendy.

Część 4. Edytor mcedit. komendy edytora mcedit: <F1> pomoc <F2> zapisz <F3> zaznacz <F4> zastąp <F5> skopiuj (i wklej w miejsce kursora) <F6> wytnij (i wklej w miejsce kursora) <F7> szukaj <F8> usuń <F9> otwórz menu <F10> zakończ ZADANIA Wykonaj zadania z pierwszej części skryptu korzystając z edytora mcedit

Skrypty bashowe Część 1. Składnia podstawowych instrukcji Nagłówek pliku skryptowego #!/bin/bash Komentarz #<wolny tekst> Deklarowanie zmiennych <etykieta>=<wartość> UWAGA!!! W instrukcjach basha bardzo ważna jest obecność (bądź ich brak) znaków białych w tym również enterów Korzystanie ze zmiennej: $<etykieta> lub ${<etykieta>} Zmienne specjalne: $$ id procesu skryptu $! id procesu ostatnio odpalonego w tle (za pomocą &) $0 odpowiada nazwie skryptu $<cyfra> odpowiada parametrowi o numerze <cyfra> $# w zmiennej przechowywana jest ilość parametrów przekazanych skryptu $? odpowiada wartości liczbowej zwróconej przez ostatni odpalony proces Instrukcja warunkowa: if [[ <warunek> ]] then <instrukcje> fi lub if [[ <warunek> ]] then <instrukcje> else <instrukcje> fi Przykławy skrypt:

#!/bin/bash W=2 if [[ $W eq 2 ]] then echo Ahaaa!!! ; fi wyrażenia warunkowe Składnia wyrażenia warunkowego całkowitoliczbowego: [[ <wartość> <operator> <wartość> ]] Lista operatorów dla liczb całkowitoliczbowych: eq testuje równość liczb ne testuje czy liczby nie są równe gt testuje czy pierwsza z podanych liczb jest większa od drugiej ge testuje czy pierwsza z podanych liczb jest większa lub równa drugiej lt testuje czy pierwsza z podanych liczb jest mniejsza od drugiej le testuje czy pierwsza z podanych liczb jest mniejsza lub równa drugiej Składnia binarnego wyrażenia warunkowego dla ciągów znaków: [[ "<zmienna>" <operator bin> "<zmienna>" ]] Lista operatorów binarnych dla ciągów znaków: ==!= < pierwsza zmienna jest mniejsza od drugiej w kontekście ciągów znaków > pierwsza zmienna jest większa od drugiej w kontekście ciągów znaków Składnia unarnego wyrażenia warunkowego dla ciągów znaków: [[ <operator un> "<zmienna>" ]] Lista operatorów unarnych dla ciągów znaków: z testuje czy zmienna jest nullem (tzn. czy ma długość 0) n testuje czy zmienna nie jest nullem (tzn. czy nie ma długości 0) wywoływanie skryptu bashowego (hash ma imitować znaki ścieżki): # bash <nazwa_skryptu> lub # chmod u+x <nazwa_skryptu> #./<nazwa_skryptu>

ZADANIA Zad 1. Utwórz i przetestuj skrypt wypisujący na ekran hello world Zad 2. Utwórz i przetestuj skrypt który testuje liczbę parametrów podanych skryptu i w przypadku gdy jest ona większa od 10 wypisuje liczba parametrów większa od 10. Zad 3. Utwórz i przetestuj skrypt, który sprawdza czy pierwszy parametr skryptu jest mniejszy od numeru wątku skryptu. Jeśli tak wypisuje zawartość bieżącego katalogu, jeśli nie ścieżkę bieżącego katalogu. (komenda wypisująca ścieżkę bieżącego katalogu to pwd).

Część 2. Pętle i rozszerzone instrukcje basha składnia podstawowej pętli while while [[ <warunek> ]] <instrukcje> ne sczytywanie linia za linią w pętli while read a <instrukcje> ne sczytywanie linia za linią w pętli z pliku while read a <instrukcje> ne < <nazwapliku> składnia pętli for for <zmienna> in <zakres> <instrukcja> ne Przykławo: for i in 1 2 3 4 5 echo $i ne lub for i in {1..5} echo "hello $1" ne zamiast niegdysiejszego: for i in `seq 1 5` echo "hello $i" ne Zakres można podawać również z wartością o którą interpreter ma

inkrementować zmienną iterowaną: {<wartość początkowa>..<wartość inkrementowana>..<wartość końcowa>} przerywanie pętli break; ciąg znaku wypisywany przez instrukcję jako wartość `<instrukcja>` Przykławo: wypis=`ls` zapiszę zmiennej $wypis wszystkie pliki z bieżącego katalogu ZADANIA Zad 1. Wypisz 10 linii z aktualnym czasem (date). Zad 2. Dla każdej z podanych przez użytkownika linii wypisz napis hello <tekst użytkownika> aż momentu kiedy w tekście nie będzie napisu exit. Zad 3. Zapisz pliku (podanego jako pierwszy parametr skryptu) każdą z linii podanych przez użytkownika momentu kiedy nie napisze exit. ZADANIA ZAAWANSOWANE Zad 1. Napisz skrypt zmieniający rozszerzenia wszystkich plików w bieżącym katalogu z wartości wskazanej pierwszym argumentem z wartością wskazanej drugim argumentem. Skorzystaj z polecenia basename. Przykławe wywołanie: # zmien.sh txt c Zad 2. Napisz skrypt sortujący zawartości wszystkich plików o rozszerzeniach wskazanych pierwszym argumentem i znajdujących się w podkatalogach katalogów wskazanych pozostałymi argumentami.