Szczegóły ebooka

Skrypty powłoki systemu Linux. Zagadnienia zaawansowane. Wydanie II

Skrypty powłoki systemu Linux. Zagadnienia zaawansowane. Wydanie II

Mokhtar Ebrahim, Andrew Mallett

Ebook

Mimo że nowe wydania dystrybucji Linuksa są coraz łatwiejsze w obsłudze, a ważniejsze czynności administracyjne mogą być wykonywane za pomocą intuicyjnego interfejsu graficznego, wciąż nie można się obejść bez powłoki Bourne'a, znanej jako bash. Dobrze napisany skrypt powłoki pozwala na automatyzację nudnych obowiązków, umożliwia monitorowanie stanu systemu, optymalizację jego wydajności czy dostosowanie go do potrzeb. Warto też wypróbować ciekawą alternatywę dla tradycyjnych skryptów powłoki bash, czyli kod Pythona.

Dzięki tej książce nauczysz się wszystkiego, co jest potrzebne do pisania profesjonalnych skryptów powłoki. Dowiesz się, czym są powłoki systemu Linux, dlaczego tak ważna jest powłoka bash i w jaki sposób edytuje się skrypty. Nauczysz się pracy na zmiennych, debugowania kodu i tworzenia skryptów interaktywnych. Będziesz korzystać z instrukcji warunkowych i pętli, a także z edytora vim, pakietu Visual Studio Code oraz edytora strumieniowego sed. Zapoznasz się z zasadami pisania funkcji, dzięki którym będziesz mógł wielokrotnie używać uniwersalnych fragmentów kodu. Ponadto zdobędziesz umiejętność przetwarzania danych tekstowych, zarówno za pomocą polecenia AWK, jak i wyrażeń regularnych. Na koniec przekonasz się, jak ciekawą alternatywą dla skryptów powłoki bash jest kod napisany w Pythonie!

W tej książce między innymi:

  • wyczerpujące wprowadzenie do tworzenia i debugowania skryptów powłoki
  • składnia alternatywna i operacje arytmetyczne
  • praca z blokami kodu i korzystanie z funkcji
  • automatyzacja tworzenia hostów wirtualnych
  • zaawansowane korzystanie z polecenia AWK
  • skrypty do analizy plików dziennika i tworzenia raportów

Opanuj sztukę pisania doskonałych skryptów powłoki!


O autorach 9

O recenzencie 10

Przedmowa 11

Rozdział 1. Co i dlaczego w skryptach powłoki bash 15

  • Wymagania techniczne 16
  • Rodzaje powłok systemu Linux 16
  • Czym są skrypty powłoki bash? 17
  • Hierarchia poleceń powłoki bash 18
    • Typy poleceń 18
    • Zmienna środowiskowa PATH 19
  • Przygotowywanie edytorów tekstu do pisania skryptów 20
    • Konfigurowanie edytora vim 20
    • Konfigurowanie edytora nano 21
    • Konfigurowanie edytora gedit 21
  • Tworzenie i wykonywanie skryptów 23
    • Witaj, świecie! 23
    • Wykonywanie skryptu 24
    • Sprawdzanie statusu wyjścia 25
    • Zapewnienie unikalnej nazwy 25
    • Witaj, Gandalf! 26
    • Wyświetlanie nazwy skryptu 29
  • Deklarowanie zmiennych 30
    • Zmienne definiowane przez użytkownika 30
    • Zmienne środowiskowe 32
  • Zasięg zmiennych 32
  • Podstawianie wyników działania poleceń 33
  • Debugowanie skryptów 34
  • Podsumowanie 38
  • Pytania 39
  • Co dalej? 40

Rozdział 2. Tworzenie interaktywnych skryptów powłoki 41

  • Wymagania techniczne 42
  • Używanie polecenia echo wraz z opcjami 42
  • Prosty skrypt wykorzystujący polecenie read 43
  • Komentarze w skryptach 44
  • Rozszerzanie funkcjonalności skryptów przy użyciu polecenia read 45
  • Ograniczanie liczby maksymalnej wprowadzanych znaków 46
  • Kontrolowanie widoczności wprowadzonego tekstu 46
  • Przekazywanie opcji 47
    • Przekazywanie parametrów wraz z opcjami 49
    • Odczytywanie wartości opcji 50
  • Staraj się używać standardowych rozwiązań 51
  • Kilka prostych i funkcjonalnych skryptów 52
    • Tworzenie kopii zapasowych za pomocą skryptu 52
    • Połączenie z serwerem 53
    • Ping - skrypt 1. 54
    • SSH - skrypt 2. 54
    • MySQL/MariaDB - skrypt 3. 55
  • Odczytywanie zawartości plików 56
  • Podsumowanie 56
  • Pytania 57
  • Co dalej? 57

Rozdział 3. Instrukcje warunkowe 59

  • Wymagania techniczne 59
  • Proste ścieżki decyzyjne wykorzystujące listy poleceń 60
  • Weryfikowanie danych wprowadzanych przez użytkownika 61
  • Używanie wbudowanego polecenia test powłoki bash 62
    • Porównywanie ciągów znaków 63
    • Porównywanie liczb całkowitych 64
    • Testowanie typów plików 64
  • Tworzenie instrukcji warunkowych z użyciem polecenia if 65
  • Rozszerzanie polecenia if za pomocą słowa kluczowego else 67
  • Używanie polecenia test z poleceniem if 68
    • Porównywanie ciągów znaków 68
    • Sprawdzanie plików i katalogów 70
    • Porównywanie wartości liczbowych 70
    • Łączenie testów 71
  • Tworzenie dodatkowych warunków z użyciem klauzuli elif 72
    • Tworzenie skryptu backup2.sh wykorzystującego klauzule elif 73
  • Używanie polecenia case 74
  • Przykłady - budowanie interfejsu z użyciem polecenia grep 76
  • Podsumowanie 77
  • Pytania 78
  • Co dalej? 79

Rozdział 4. Tworzenie wstawek kodu 81

  • Wymagania techniczne 81
  • Skróty 82
  • Tworzenie i używanie wstawek kodu 83
    • Jak używać kolorów w oknie terminala? 84
  • Tworzenie wstawek kodu z użyciem programu Visual Studio Code 86
  • Podsumowanie 89
  • Pytania 90
  • Co dalej? 90

Rozdział 5. Składnia alternatywna 91

  • Wymagania techniczne 91
  • Polecenie test - drugie podejście 92
    • Sprawdzanie plików 92
    • Dodawanie logiki 92
    • Nawiasy kwadratowe, których nigdy wcześniej nie spotkałeś 92
  • Definiowanie domyślnych wartości parametrów 94
    • Zmienne 94
    • Parametry specjalne 94
    • Definiowanie wartości domyślnych 95
  • Masz wątpliwości? Cytuj! 96
  • Zaawansowane testy z użyciem podwójnych nawiasów kwadratowych [[ ]] 98
    • Białe znaki 99
    • Inne zaawansowane funkcje 99
  • Operacje arytmetyczne z użyciem podwójnych nawiasów okrągłych (( )) 101
    • Prosta matematyka 101
    • Operacje na parametrach 102
    • Standardowe testy arytmetyczne 102
  • Podsumowanie 103
  • Pytania 104
  • Co dalej? 104

Rozdział 6. Praca z pętlami 105

  • Wymagania techniczne 106
  • Pętle for 106
  • Zaawansowane pętle for 109
  • IFS - wewnętrzne separatory pól 109
  • Sprawdzanie zawartości katalogów i plików 111
  • Pętle for w stylu języka C 112
  • Pętle zagnieżdżone 112
  • Przekierowywanie wyjścia pętli 113
    • Sterowanie działaniem pętli 113
  • Pętle while i until 115
  • Odczytywanie danych wejściowych z plików 116
  • Tworzenie menu użytkownika 118
  • Podsumowanie 120
  • Pytania 121
  • Co dalej? 122

Rozdział 7. Tworzenie bloków kodu przy użyciu funkcji 123

  • Wymagania techniczne 124
  • Wprowadzenie do funkcji 124
  • Przekazywanie parametrów do funkcji 126
    • Przekazywanie tablic 130
  • Zasięg zmiennych 131
  • Zwracanie wyników działania funkcji 132
  • Funkcje rekurencyjne 133
  • Używanie funkcji w menu 134
  • Podsumowanie 136
  • Pytania 136
  • Co dalej? 137

Rozdział 8. Edytor strumieniowy sed 139

  • Wymagania techniczne 140
  • Zastosowanie polecenia grep do wyświetlania tekstu 140
    • Wyświetlanie danych odebranych z interfejsu eth0 140
    • Wyświetlanie danych konta użytkownika 141
    • Wyświetlanie liczby procesorów w systemie 142
    • Parsowanie plików CSV 144
  • Wprowadzenie do polecenia sed 147
    • Wyszukiwanie i zastępowanie wzorca 148
    • Globalna zamiana wszystkich wystąpień wzorca 149
    • Ograniczanie zamian wzorca 150
    • Edytowanie pliku 151
  • Inne komendy polecenia sed 152
    • Usuwanie wierszy - komenda delete 152
    • Wstawianie i dołączanie tekstu - komendy insert i append 152
    • Modyfikacja tekstu - komenda change 153
    • Transformacja tekstu - komenda transform 153
  • Używanie wielu komend w jednym poleceniu sed 154
  • Podsumowanie 155
  • Pytania 155
  • Co dalej? 156

Rozdział 9. Automatyzacja hostów wirtualnych serwera Apache 157

  • Wymagania techniczne 158
  • Hosty wirtualne na serwerze Apache 158
    • Tworzenie szablonu konfiguracji hosta wirtualnego 159
    • Pierwsze kroki 159
    • Wybieranie wierszy 160
    • Pliki skryptów edytora sed 161
  • Automatyzacja procesu tworzenia hosta wirtualnego 163
    • Pobieranie danych od użytkownika podczas tworzenia witryny 165
  • Podsumowanie 168
  • Pytania 168
  • Co dalej? 168

Rozdział 10. Wprowadzenie do polecenia awk 169

  • Wymagania techniczne 169
  • Historia polecenia AWK 170
  • Wyświetlanie i filtrowanie zawartości plików 171
  • Zmienne w języku AWK 173
    • Zmienne definiowane przez użytkownika 176
  • Instrukcje warunkowe 177
    • Polecenie if 177
    • Pętle while 178
    • Pętle for 179
  • Formatowanie wyników 180
  • Wyświetlanie wyników według identyfikatorów UID 182
  • Skrypty w języku AWK 182
    • Wbudowane funkcje języka AWK 183
  • Podsumowanie 184
  • Pytania 184
  • Co dalej? 185

Rozdział 11. Wyrażenia regularne 187

  • Wymagania techniczne 187
  • Silniki wyrażeń regularnych 187
  • Definiowanie prostych wyrażeń regularnych (BRE) 188
    • Znaki zakotwiczenia reprezentujące początek lub koniec wiersza 189
    • Kropka 191
    • Klasy znaków 192
    • Zakresy znaków 193
    • Specjalne klasy znaków 194
    • Gwiazdka 195
  • Definiowanie złożonych wyrażeń regularnych (ERE) 197
    • Znak zapytania 197
    • Znak plus 198
    • Nawiasy klamrowe 199
    • Znak potoku 200
    • Grupowanie wyrażeń 201
  • Polecenie grep 202
  • Podsumowanie 203
  • Pytania 204
  • Co dalej? 204

Rozdział 12. Analizowanie logów przy użyciu polecenia awk 205

  • Wymagania techniczne 206
  • Format pliku dziennika serwera Apache HTTPD 206
  • Wyświetlanie danych z dzienników serwera WWW 207
    • Wybieranie wierszy według daty 207
    • Podsumowywanie błędów 404 209
    • Podsumowywanie kodów dostępu HTTP 209
    • Żądania dostępu do stron i zasobów 211
    • Identyfikowanie bezpośrednich łączy do obrazów (hotlinking) 212
  • Wyświetlanie najczęściej powtarzających się adresów IP 213
  • Wyświetlanie danych o przeglądarkach sieciowych 214
  • Praca z dziennikami serwera poczty elektronicznej 214
  • Podsumowanie 215
  • Pytania 216
  • Co dalej? 216

Rozdział 13. Analizowanie dziennika lastlog przy użyciu polecenia awk 217

  • Wymagania techniczne 218
  • Używanie wzorców do filtrowania danych 218
    • Polecenie lastlog 218
    • Filtrowanie wierszy za pomocą polecenia awk 219
    • Zliczanie pasujących wierszy 220
  • Warunki oparte na liczbie pól 220
  • Modyfikowanie separatora rekordów AWK do tworzenia raportów na bazie danych XML 222
    • Hosty wirtualne serwera Apache 222
    • Katalog XML 223
  • Podsumowanie 225
  • Pytania 225
  • Co dalej? 226

Rozdział 14. Python jako alternatywny język dla skryptów powłoki bash 227

  • Wymagania techniczne 228
  • Czym jest Python? 228
  • Program "Witaj, świecie!" w języku Python 231
  • Argumenty wywołania programów w języku Python 231
  • Przekazywanie argumentów wywołania 232
  • Zliczanie argumentów 232
  • Znaczące białe znaki 234
  • Pobieranie danych wprowadzanych przez użytkownika 235
  • Używanie języka Python do zapisywania danych w plikach 236
  • Operowanie na ciągach znaków 236
  • Podsumowanie 238
  • Pytania 239
  • Co dalej? 239

Odpowiedzi 241

Skorowidz 247

  • Tytuł: Skrypty powłoki systemu Linux. Zagadnienia zaawansowane. Wydanie II
  • Autor: Mokhtar Ebrahim, Andrew Mallett
  • Tytuł oryginału: Mastering Linux Shell Scripting - Second Edition
  • Tłumaczenie: Grzegorz Kowalczyk
  • ISBN: 978-83-283-5071-7, 9788328350717
  • Data wydania: 2019-03-05
  • Format: Ebook
  • Identyfikator pozycji: skrzz2
  • Wydawca: Helion