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



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

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

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

Przekierowanie wejścia wyjścia:

1 Przygotował: mgr inż. Maciej Lasota

Technologie Informacyjne - Linux 2

Powłoka interpreter poleceń systemu UNIX

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

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Powłoka bash. Kurs systemu Unix 1

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

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

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Znaki globalne w Linuxie

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

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

Powłoka (shell) Powłoka ksh

Pracownia Komputerowa wykład III

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Skrypty powłoki w systemie Linux

Systemy operacyjne Programowanie w języku powłoki sh

PODSTAWY INFORMATYKI

BASH - WPROWADZENIE Bioinformatyka 4

Pracownia komputerowa. Dariusz wardecki, wyk II

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

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

Wstęp do Informatyki dla bioinformatyków

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

1. Wyrażenia regularne. Symbole w wyrażeniach regularnych 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

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

Wstęp do obsługi Linux a

Strona1. Linux. Skrypty powłoki

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

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

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

Wstęp do obsługi Linux a

Podstawy użytkowania Linux a

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

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

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

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

Programowanie skryptów powłoki

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

Pracownia Komputerowa wyk ad III

Systemy operacyjne 10

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

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

Tworzenie skryptu: Skrypty powłoki

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Pracownia Komputerowa wykład III

Współczesne systemy komputerowe

Systemy operacyjne Operating Systems

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

System operacyjny Linux

Proces instalacji systemu operacyjnego Linux Red Hat 7.3 (1)

Podstawy informatyki

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Wstęp do systemu Linux

Powłoka, redyrekcja, potok

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

Wstęp do systemu Linux

trainxx tramxx

Linux: System Plików

Środowisko programisty Zestaw 7

2.2 Polecenia i cechy powłoki bash

Interpreter poleceń oraz zmienne środowiskowe

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

Programowanie w BASH u Skrypt do ćwiczeń

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

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

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

Struktura katalogów. Prawa dostępu

Wprowadzenie do programowania w powłoce

Wstęp do informatyki Shell podstawy

Pracownia Komputerowa wyk ad II

Ćwiczenie nr 14: System Linux

5. Linux - powłoka Kilka słów o powłoce Zmienne systemowe

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

Elementy wyrażeń regularnych

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy ćwiczenie b

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

Wstęp do systemów wielozadaniowych laboratorium 14 Środowisko i aliasy

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

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.

Zakład Systemów Rozproszonych

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

System Linux - użytkowanie

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

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

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

Trochę o plikach wsadowych (Windows)

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

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

Transkrypt:

Filtry, metaznaki, cytowania. Proste skrypty. Polecenia find, tee, mail. Utwórz katalog lab_3 i przejdź do niego. Polecenie find Polecenie to jest niezwykle pożyteczne dla odszukiwania poszczególnych grup plików: find ścieżka(i) warunek(i) Polecenie to powoduje rekurencyjne przeszukiwanie drzewa katalogów, począwszy od każdej ścieżki i powoduje odnalezienie plików, które spełniają zadane warunki. $ find. -name '*e' print Odnajdzie pliki i katalogi mające w swojej nazwie końcową literę e $ find $HOME -size +30c -400k print Odnajdzie pliki zajmujące nie mniej niż 30B i nie większe niż 400kB w katalogu domowym $ find /bin -type f print Odnajdzie tylko pliki znajdujące się w katalogu /bin $ find /dev -type d -print Odnajdzie tylko katalogi znajdujące się w katalogu /dev Filtry Filtr jest poleceniem, które przetwarza strumień danych wejściowych i produkuje strumień danych wyjściowych. $ date tee data.out $ cat data.out $ date tee data.out wc Można używać wielu potoków w poleceniu Utwórz plik imiona: kasia janusz dominik ola $ cat imiona $ cat imiona tee imiona.wy grep dominik wc Metaznaki Używając polecenia cat lub touch utwórz następujące pliki: abc, abc12, abc2, file1.bak, file2.bak nonsense, nothing, one, abc1, abc123, file1, file2, none, noone, nowhere, masza Instytut Informatyki AP, rok akademicki 2007/08 Strona 1 z 9

a) metaznak * $ ls $ ls * $ ls *.bak $ echo a* metaznak * reprezentuje ciąg znaków składających się z 0 lub więcej dowolnych znaków w nazwie pliku. b) metaznak? $ ls $ ls a?c? $ ls?? $ echo abc??? $ echo?? metaznak? reprezentuje pojedynczy znak w nazwie pliku. c) metaznaki [abc] [a-z] [!a-z] $ ls $ ls abc[123] $ ls abc[1-3] $ ls [a-z][a-z][a-z] $ ls [!f-z]??? $ ls abc12[23] o noglob $ ls file[12].bak +o noglob $ ls file[12].bak Ustawienie noglob powoduje wyłączenie możliwości używania metaznaków w powłoce użytkownika. [abc] - reprezentuje jeden znak ze zbioru {a,b,c} [a-z] - reprezentuje jeden znak z zakresu od a do z [!a-z] - reprezentuje jeden znak nie będący w zakresie od a do z d) metaznak \ $ ls $ echo Jak sie masz?!!!(masza) $ echo Jak sie masz\? $ echo Czy ta linia\ [Enter] > kiedykolwiek sie zakonczy\? Jeżeli chcemy użyć dany metaznak w sensie dosłownym to \ może być użyty, aby dany metaznak nie był interpretowany. Instytut Informatyki AP, rok akademicki 2007/08 Strona 2 z 9

e) niektóre metaznaki poznaliśmy już wcześniej: ; ( ) > >> & $ (sleep 10; who)& date wc > nowa_data Polecenie tee $ date $ date wc $ date; who $ who; date wc $ (who; date) wc $ (date; who) tee listop tee - przesyła swoje dane wejściowe na standardowe wyjście i do pliku listop $ cat listop Metaznak $ Jak mówiliśmy wcześniej w shell-u istnieją zmienne; ciąg znaków zaczynający się metaznakiem $ jest interpretowany przez shell jako zmienna. $ x=ala należy zwracać uwagę na brak znaków spacji $ echo $x $ x=4.58 $ echo $x Z jedną zmienną już się spotkaliśmy $ echo $? Cytowania podwójny apostrof " " Wszystko co jest zawarte między " oraz " jest interpretowane dosłownie, za wyjątkiem następujących znaków, które zachowują swoje specjalne znaczenie: o $ : będzie interpretowany jako znak poprzedzający zmienną o ` : (pojedynczy apostrof odwrotny); będzie interpretowany jako początek polecenia(-eń) o " : jest interpretowany jako koniec podwójnego apostrofu pojedynczy apostrof '...' Wszystko co jest między ' oraz ' jest interpretowane dosłownie, za wyjątkiem jeszcze innego, dodatkowego znaku ' metaznak \ Używa się go, aby zapobiec interpretacji następującego po nim znaku specjalnego; używa się go w "... ", aby zapobiec interpretacji znaków ", $ oraz ` lub samego siebie, znaków spacji, tabulacji oraz znaku nowej linii. Instytut Informatyki AP, rok akademicki 2007/08 Strona 3 z 9

$ echo * $ echo '*' $ echo '*'*' $ echo "*" $ echo \*\* $ echo \\ $ who $ who wc $ echo 'who wc' $ echo `who wc` $ echo who wc $ echo 'Pojedyncze apostrofy "traktuja" doslownie podwojne apostrofy' $ echo "Czy jest cos w shellu Bourne'a \"wyjatkowego\"?" $ echo "Masz `ls wc -l` plików w `pwd`" $ echo "Dzisiaj kurs \$ wynosi $x" Metaznak! $ history $!! $!6 Również metaznak! nie jest traktowany dosłownie wewnątrz "... " oraz '... '; znak \ jest konieczny, aby uniknąć interpretacji znaku! Proste skrypty Utwórzmy plik first_script #!/bin/bash # moj pierwszy skrypt: 10.11.2004 echo "Dzisiaj jest:" date echo "Moj biezacy katalog to `pwd`" echo "Zawiera on `ls wc -l` plikow" Plik musi być wykonywalny! $ ls -l first_script $ chmod u+x first_script $ ls -l first_script Wykonywanie skryptu $./first_script Instytut Informatyki AP, rok akademicki 2007/08 Strona 4 z 9

Polecenie mail Wywołanie polecenia: mail [opcje] [użytkownicy] Utwórz plik list Witaj, Czy możesz mi pożyczyć książkę do systemów operacyjnych? Pozdrawiam... $ mail root < list Aby przeczytać pocztę: $ mail Chcąc przejrzeć konkretną wiadomość należy podąć jej numer porządkowy: &1 [Enter] Aby odpowiedzieć na bieżącą wiadomość używa się polecenia reply: & reply [Enter] lub & r [Enter] To: peter Subject: Re: Grill [Tutaj piszemy treść wiadomości. Koniec wpisywania zaznaczamy naciskając w pustym wierszu Ctrl + D lub wpisując kropkę] Usuwanie wiadomości wykonujemy poprzez polecenie delete: & delete 1 3 [Enter] lub & d 1 3 [Enter] Aby wysłać wiadomość wykorzystuje się następującą składnię: $ mail adres Informacje o innych poleceniach:? Wyjście z systemu pocztowego: q Inne systemy pocztowe: mailx, pine, elm. Instytut Informatyki AP, rok akademicki 2007/08 Strona 5 z 9

Zmienne środowiskowe i definiowane przez użytkownika. Zmienne specjalne i pozycyjne. Funkcje. Polecenia expr i read. Zmienne środowiskowe Podczas rejestracji użytkownika w systemie następuje wykonanie się szeregu procesów, które w szczególności przygotowują środowisko robocze, w którym będzie się wykonywał proces użytkownika. Lokalne/globalne zmienne środowiskowe shell-a: PATH ścieżka dostępu do poleceń HOME ścieżka katalogu domowego PS1 wygląd znaku zachęty PS2 wygląd zapasowego znaku zachęty PWD ścieżka dostępu do bieżącego katalogu SHELL pamięta nazwę aktualnego shell a USER nazwa użytkownika LOGNAME nazwa login-u użytkownika HOSTNAME nazwa komputera MAIL ścieżka dostępu do poczty TERM typ terminala HISTIZE długość historii poleceń RANDOM generuje pseudolosową liczbę całkowitą z przedziału od 0 do 32767 Przejdź do katalogu /etc i zbadaj zawartość plików: profile i bashrc W katalogu domowym zbadaj zawartość plików:.profile.bash_profile.bashrc.bash_history.bash_logout Odczytanie wartości zmiennych $ echo $PATH $ echo $PS1 $ echo $SHELL $ echo $USER $ echo $HOSTNAME $ echo $PS2 $ hostname Aby obejrzeć wartości wszystkich zmiennych lokalnych i globalnych more Aby obejrzeć tylko zmienne globalne $ env Instytut Informatyki AP, rok akademicki 2007/08 Strona 6 z 9

Zmienne definiowane przez użytkownika: $ osoba=james $ 2osoba=Leonardo BŁĄD? $ echo $osoba $ osoba="james bond" $ echo $osoba $ echo "$osoba" $ echo '$osoba' $ echo \$osoba $ x= $ echo $x $ unset x $ unset osoba Zmienne specjalne Zmienne te są zmiennymi predefiniowanymi - wbudowanymi w powłokę. Niektóre zmienne specjalne już poznaliśmy: $ bash $ ps $ echo $$ (PID powłoki) 476 $ cat /etc/passwd $ echo $? $ grep tomek /etc/passwd $ echo $? Status wyjścia ostatnio wykonywanego polecenia $ sleep 25& [1] 480 $ echo $! 480 PID ostatniego procesu który jest (był) wykonywany w tle $ ps $ who; date& $ ps $ echo $! 483 $ echo $- himbh aktualnie ustawiona opcja powłoki Instytut Informatyki AP, rok akademicki 2007/08 Strona 7 z 9

Zmienne pozycyjne ania tomek kasia Janusz polecenie set nadaje wartości zmiennym pozycyjnym $ echo $* ta zmienna pamięta zbiór pozycyjnych parametrów $ echo $1 zmienna pamięta wartość pierwszego parametru pozycyjnego $ echo $2 $3 $ echo $$ zmienna pamięta liczbę pozycyjnych parametrów a b c d e f g h i j k l m $ echo $$ $ echo $1 $ echo $13 $1 pamięta parametr pozycyjny a; tylko 9 parametrów pozycyjnych jest pamiętana przez zmienne $1 $2... $9 $ echo $* $ echo $0 ta zmienna pamięta nazwę ostatnio wykonywanego skryptu / powłoki Funkcje Funkcje są podobne do skryptów, ale bardziej efektywne; po zdefiniowaniu stają się częścią pamięci powłoki - gdy są wywoływane nie muszą być czytane z dysku; często są definiowane w pliku.profile; nie mogą być eksportowane. Format funkcji: nazwa_funkcji() { polecenia; polecenia; } Przykłady: a) $ raport() { pwd; ls; date; } $ raport $ raport() { pwd; ls; date } (??) $ unset raport $ raport b) $ halo() { echo "Witaj $LOGNAME, dzisiaj jest `date`"; } $ halo Instytut Informatyki AP, rok akademicki 2007/08 Strona 8 z 9

c) $ powitanie() { echo "Czesc $1 i $2"; } $ powitanie Ania Tomek Michal Ania Marcin $ echo $* $ powitanie Ania tomek $ echo $1 $2 Komentarz: wartości zmiennych pozycyjnych określone z linii poleceń nie są naruszone przez wartości określone w funkcji. Polecenie read Napisz skrypt happy #!/bin/bash # nazwa skryptu: happy echo "Czy jestes szczesliwy?" read odpowiedz echo "$odpowiedz jest sluszna odpowiedzia" echo "Podaj swoje imie i nazwisko: " read imie nazwisko echo "Halo $imie" $./happy Arytmetyka stałoprzecinkowa: polecenie expr $ expr 1 + 4 $ expr 1+4 $ expr 5 + 9 / 3 $ expr 5*4 $ expr 5 * 4 $ expr 5 \* 4-2 $ expr 11 % 3 $ num=1 $ num=`expr $num + 1` $ echo $num Ćwiczenie Utwórz skrypt o nazwie oblicz pobierający dwie wartości wprowadzone jako parametry skryptu, a następnie wypisujący w kolejnych wierszach sumę, różnicę, iloczyn oraz iloraz obu składników. Instytut Informatyki AP, rok akademicki 2007/08 Strona 9 z 9