Bash - wprowadzenie. Bash - wprowadzenie 1/39

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

1 Przygotował: mgr inż. Maciej Lasota

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Powłoka bash. Kurs systemu Unix 1

System operacyjny Linux

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Przekierowanie wejścia wyjścia:

Bash i algorytmy. Elwira Wachowicz. 20 lutego

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

- wszystkie elementy - wszystkie elementy

Pracownia Komputerowa wykład III

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

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

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

Powłoka interpreter poleceń systemu UNIX

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Skrypty powłoki w systemie Linux

Powłoka (shell) Powłoka ksh

Wprowadzenie do programowania w powłoce

BASH - WPROWADZENIE Bioinformatyka 4

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

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

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

Znaki globalne w Linuxie

Tworzenie skryptu: Skrypty powłoki

Wstęp do Informatyki dla bioinformatyków

Programowanie skryptów powłoki

Interpreter poleceń oraz zmienne środowiskowe

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

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

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

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

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

Narzędzia informatyczne w językoznawstwie

Podstawy informatyki

Linuks skrypty Część teoretyczna

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Technologie Informacyjne - Linux 3

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

Podstawy programowania skryptów Sh

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

Środowisko programisty Zestaw 7

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

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

Systemy operacyjne. Laboratorium 1. Podstawy oraz powłoka BASH

Strona1. Linux. Skrypty powłoki

Pracownia Komputerowa wykład III

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

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

Wprowadzenie do programowania shella (bash)

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

Technologie Informacyjne - Linux 2

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

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

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

PODSTAWY INFORMATYKI

2.5 Podstawy programowania w bash'u

Systemy operacyjne 11

Trochę o plikach wsadowych (Windows)

Laboratorium Ubuntu Linux.

Linux: System Plików

Bash, skrypty. Wojciech Dudek. 15 listopada Uniwersytet Warszawski

Wstęp do systemu Linux

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

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

Kurs pisania skryptów w powłoce BASH

Powłoka, redyrekcja, potok

Programowanie w BASH u Skrypt do ćwiczeń

Ćwiczenie nr 14: System Linux

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Uruchamianie zadań w środowisku CLUSTERIX z wykorzystaniem klienta tekstowego systemu GRMS

KARTA KURSU. Języki skryptowe

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

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

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

Systemy operacyjne Programowanie w języku powłoki sh

Przypomnienie komend linux'a.

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

Bash - instrukcje warunkowe, pętle i funkcje

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

Wstęp do informatyki 2011/2012. Wyrażenia regularne (sed)

#!/bin/sh. if [ "$#"!= "1" ]; then echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" exit 1 fi

Podstawy użytkowania Linux a

Księgarnia PWN: Emmett Dulaney - Novell Certified Linux Professional (NCLP)

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

Wstęp do systemu Linux

Zastosowanie filtrów w Linuksie

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

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

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

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

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

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

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

Środowisko programisty

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

Wprowadzenie do tworzenia skryptów dla bash

Transkrypt:

Bash - wprowadzenie Bash - wprowadzenie 1/39

Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych

Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia: $ sort plik_z_danymi > plik_z_danymi.sorted Czynności powłoki: podział polecenia na słowa znaczenie poszczególnych słów ustawienie odpowiednich strumieni I/O odnalezienie komendy sort i uruchomienie jej z odpowiednimi argumentami

Bash - wprowadzenie 4/39 Do czego się przydaje? kompilacja, budowanie aplikacji, przetwarzanie plików (tworzenie, usuwanie, szukanie, itp.), prosta obróbka (np. tekstowa) plików, administracja systemem (np. konfiguracja, uruchamianie demonów), i inne

Bash - wprowadzenie 5/39 Do czego się nie przydaje? zadań trudnych obliczeniowo, wymagających szybkiego działania, operacji skomplikowanych algorytmicznie lub matematycznie, operacji niskopoziomowych, jak dostęp do sprzętu.

Bash - wprowadzenie 6/39 Przeszukiwanie dokumentacji man, np. man sh-utils info polecenie powłoki help

Bash - wprowadzenie 7/39 Przydatne polecenia narzędzie cat tac grep sort echo wc find head tail date paste cut przeznaczenie przekazuje wejście do wyjścia przekazuje wejście do wyjścia wyszukuje ciąg znaków w wejściu sortowanie linii wejścia wypisuje na wyjście tekst podany jako argument zlicza liczbę słów wyszukuje pliki spełniające zadane kryterium wypisuje pierwsze 10 linii tekstu wypisuje ostatnich 10 linii tekstu aktualna data łączy pliki linia po linii wypisuje wybrane części z każdego pliku

Bash - wprowadzenie 8/39 Przykłady $ cat plik.txt wyraz linia rzeczownik $ sort plik.txt linia rzeczownik wyraz $ head -1 plik.txt wyraz $ tail -1 plik.txt rzeczownik

$ echo "Witaj\nswiecie" Witaj\nswiecie $ echo -e "Witaj\nswiecie" Witaj swiecie Bash - wprowadzenie 9/39

Bash - wprowadzenie 10/39 $ find. -name "plik.txt"./plik.txt $ date +%T 10:15:30 $ grep lin plik.txt linia $ paste plik.txt plik.txt wyraz wyraz linia linia rzeczownik rzeczownik $ cut -f 1 plik.txt wyraz linia rzeczownik

Bash - wprowadzenie 11/39 Przekierowanie wejścia-wyjścia Każdy program ma skojarzone z nim strumienie: nr nazwa strumienia 1 standardowe wejście 2 standardowe wyjście 3 standardowe wyjście diagnostyczne (strumień błędów) Sposób przekierowywania strumieni Symbol Znaczenie < plik podstawienie pod standardowe wejścia pliku > plik wypisywanie wyjścia do pliku; jeśli plik istniał wcześniej to jest nadpisywany >> plik wypisywanie wyjścia do pliku; jeśli plik istniał wcześniej to wyjście jest dopisywane na jego końcu

Bash - wprowadzenie 12/39 Potoki Gdy połączymy dwa programy znakiem, standardowe wyjście pierwszego programu będzie dostarczone w standardowym wejściu drugiego programu Przykład $ ls -t head -1 plik.txt

Bash - wprowadzenie 13/39 Wzorce dopasowywania nazw plików W argumentach polecenia, gdy odwołujemy się do plików, możemy używać wzorców do określenia o jakie pliki nam chodzi. Służą do tego znaki: * dowolny ciąg znaków (być może pusty),? dokładnie jeden dowolny znak, [set] dowolny znak ze zbioru, [!set] dowolny znak nie występujący w zbiorze.

Bash - wprowadzenie 14/39 Wzorce dopasowywania nazw plików przykłady $ touch a b ab abcd bbdd $ ls a ab abcd b bbdd $ ls? a b $ ls b* b bbdd $ ls *b* ab abcd b bbdd $ ls *b?* abcd bbdd $ ls?b?d abcd bbdd $ ls a[ab]* ab abcd

Bash - wprowadzenie 15/39 Znaki specjalne, apostrofy, cudzysłowy Backslash (\) Anuluje specjalne znaczenie znaku: $ echo \aa\*\?\ \<\>\\ aa*? <>\ Apostrof ( ) Para anuluje specjalne znaczenie znaków: $ echo aa*? <>\ aa*? <>\ $ echo \aa\*\?\ \<\>\\ \aa\*\?\ \<\>\\

Bash - wprowadzenie 16/39 Znaki specjalne, apostrofy, cudzysłowy Cudzysłów ( ) Anuluje specjalne znaczenie znaków, z wyjątkiem $ \ : $ echo "aa*? <>\\" aa*? <>\

Bash - wprowadzenie 17/39 Znaki specjalne bash znak opis katalog domowy użytkownika # komentarz; wszystko po tym znaku jest ignorowane ; umożliwia umieszczenie wielu poleceń w linii

Bash - wprowadzenie 18/39 Zmienne $ zm=wart $ echo $zm wart $ echo zm zm $ zm=słowo1 słowo2 bash: słowo2: command not found $ zm="słowo1 słowo2" $ echo $zm słowo1 słowo2

Bash - wprowadzenie 19/39 Zmienne i podwójny cudzysłów $ zm=wart $ echo $zm wart $ echo "Wartość zmiennej \$zm to $zm" Wartość zmiennej $zm to wart

Bash - wprowadzenie 20/39 Podstawianie wyników innych poleceń Sposób 1. $ echo ls ls $ echo ls plik1 plik2 Sposób 2. $ echo ls ls $ echo $(ls) plik1 plik2

Bash - wprowadzenie 21/39 Skrypty powłoki Rysunek : Sposoby uruchamiania poleceń

Bash - wprowadzenie 22/39 Skrypty powłoki Skrypty powinny mieć uprawnienia do wykonywania: $ chmod +x nazwa_skryptu $./nazwa_skryptu W pierwszej linii umieszcza się: #!/bin/bash Znak # oznacza początek komentarza.

Bash - wprowadzenie 23/39 Skrypty powłoki Prosty skrypt: #!/bin/bash echo "Hello world" i rezultat jego uruchomienia: Hello world

Bash - wprowadzenie 24/39 Argumenty skryptów znak opis $# zwraca liczbę argumentów $0 zwraca nazwę bieżącego programu $1, $2 kolejne argumenty skryptu $@ rozwija się do listy wszystkich argumentów

Bash - wprowadzenie 25/39 Przykład: Zawartość skryptu #!/bin/bash # Testowanie argumentów echo "Uruchomiłeś program $(basename $0)" echo "Znajdujący się " $0 echo Wszystkie: $@ echo "Pierwsze trzy: $1, $2, $3 " shift 2 echo "shift 2" echo "Wszystkie: $@" echo "Pierwsze trzy: $1, $2, $3 "

Bash - wprowadzenie 26/39 Przykład: Efekty uruchomienia $./test1.sh arg_1 arg_2 "arg 3" i Uruchomiłeś program test1.sh Znajdujący się./test1.sh Wszystkie: arg_1 arg_2 arg 3 i Pierwsze trzy: arg_1, arg_2, arg 3 shift 2 Wszystkie: arg 3 i Pierwsze trzy: arg 3, i,

Bash - wprowadzenie 27/39 Obliczanie wartości wyrażeń Sposób 1. Polecenie expr dla operatorów arytmetycznych +,-,*,/,% oraz logicznych <, <=, ==,!=, >=, > Przykład: $expr 2\*3 2*3 $expr 2 \* 3 6 $expr 2 * 3 2 * 3 $ expr 2 \* \( 7-1 \) 12 $ a=5; a=$(expr $a + 1); echo $a 6 $ expr 3 \<= 4 1

Bash - wprowadzenie 28/39 Obliczanie wartości wyrażeń Sposób 2. Za pomocą składni (( wyrażenie )) dla wszystkich operatorów znanych z języka C Przykład: $ a=0; a=$((a + 1)); ((a=a+1)); ((a++)); ((a += 1)) $ echo $a 4 $ x=5; echo "1 +... + $x = $((x * (x + 1) >> 1))" 1 +... + 5 = 15

Bash - wprowadzenie 29/39 Polecenie let let wyrazenie1 wyrazenie2... jest równoważne ((wyrazenie1)) ((wyrazenie2))... Przykład: $ x=0; let x+=2 x+=3; echo $x 5 $ x=0; let "x += 2" "x += 3"; echo $x 5

Bash - wprowadzenie 30/39 Wczytywanie wejścia wczytywanie wejścia komenda read Przykład skryptu: #!/bin/bash read echo $REPLY read a echo $a read a b c echo "a= $a, b= $b, c= $c " read x echo " $x "

Bash - wprowadzenie 31/39 Wczytywanie wejścia Wejście dla poprzedniego skryptu: Pierwsza linia Druga linia Raz Dwa Trzy Cztery Daje w rezultacie: Pierwsza linia Druga linia a= Raz, b= Dwa, c= Trzy Cztery

Bash - wprowadzenie 32/39 Status wyjścia Kod wyjścia każdego programu można sprawdzić wyrażeniem $? $ ls *.txt test.txt $ echo $? 0 $ ls *.nieznane ls: *.nieznane: Nie ma takiego pliku ani katalogu $ echo $? 2

Bash - wprowadzenie 33/39 Instrukcje warunkowe Instrukcja if if polecenie_warunek; then instrukcje fi Instrukcja if z else if polecenie_warunek; then instrukcje else instrukcje_inne fi

Bash - wprowadzenie 34/39 Instrukcje warunkowe Przykład: if cd $katalog; then echo "Jesteśmy w katalogu $katalog" else echo "Nie udało się wejść do katalogu $katalog" fi

Bash - wprowadzenie 35/39 Instrukcje warunkowe Pełna składnia if if warunek1; then instrukcje1 elif warunek2; then instrukcje2;... else instrukcje_else; fi

Bash - wprowadzenie 36/39 Wyrażenia logiczne Polecenie test test -z "" test abc \< def test 3 \> 17 test 3 -lt 17 Porównanie łańcuchów znaków Dostępne możliwości: -z, -n, ==,!=, <, > Porównanie liczb znaków Dostępne możliwości: -eq, -ne, -lt, -le, -gt, -ge, odpowiadające =, <>, <, <=, >, >=

Bash - wprowadzenie 37/39 Wyrażenia logiczne Inne możliwości wykorzystania polecenia test if test -a $plik; then echo "$plik istnieje" if test -f $plik; then echo "$plik jest zwykłym plikiem" elif test -d $plik; then echo "$plik jest katalogiem" fi fi Forma skrócona Polecenie test warunek można zapisać jako [ warunek ]

Bash - wprowadzenie 38/39 Wyrażenia logiczne Można również wykorzystać instrukcję arytmetyczną $ if (( 0 )); then echo prawda; else echo fałsz; fi fałsz $ if (( 1 )); then echo prawda; else echo fałsz; fi prawda $ if (( 3 < 4 )); then echo prawda; else echo fałsz; fi prawda $ if (( 0 < -1 )); then echo prawda; else echo fałsz; fi fałsz $ if (( 3 * 6-2 * 9 )); then echo prawda; else echo fałsz fałsz $ if (( 1/0 )); then echo prawda; else echo fałsz; fi bash: ((: 1/0 : division by 0 (error token is " ") fałsz

Bash - wprowadzenie 39/39 W wykładzie wykorzystano materiały Środowisko programisty, http://mediawiki.ilab.pl/index.php/%c5%9arodowisko programisty C. Newham, B. Rosenblatt, bash. Wprowadzenie, Helion, 2006