Jesteś tutaj

Programowanie skryptów powłoki

Efektywne wykorzystanie potencjału systemów uniksowych

  • Automatyzacja zadań
  • Przeszukiwanie plików i katalogów
  • Przenoszenie skryptów pomiędzy systemami

W dobie graficznych narzędzi programistycznych często pomijamy tradycyjne metody rozwiązywania przeróżnych zadań związanych z działaniem systemu operacyjnego. Skrypty powłoki, niegdyś podstawowe narzędzie administratorów i programistów systemów uniksowych, dziś są zdecydowanie mniej popularne. Skrypty powłoki są przydatne zarówno administratorom systemu, jak i szeregowym użytkownikom, ponieważ są jednym z najlepszych sposobów na zaprzęgnięcie do pracy setek narzędzi, w jakie wyposażony jest Unix. Z narzędzi tych w języku programowania powłoki łatwo stworzyć rozwiązanie niemal dowolnego zadania związanego z przetwarzaniem danych.

Książka "Programowanie skryptów powłoki" to kompendium wiedzy dotyczącej tej nieco już zapomnianej techniki. Przedstawia nie tylko język programowania powłoki, ale także narzędzia systemu Unix. Dostarcza informacji o tym, do jakich zadań się nadają, jak je wywoływać i jak łączyć je z innymi programami, konstruując z nich mechanizm przetwarzania danych. W książce opisano nie tylko sposoby pisania użytecznych skryptów powłoki, ale również metody dostosowywania powłoki do własnych potrzeb oraz przenoszenia skryptów pomiędzy różnymi wariantami Uniksa i różnymi implementacjami powłoki.

  • Podstawowe elementy skryptów powłoki
  • Wyszukiwanie i zastępowanie fragmentów tekstów
  • Stosowanie wyrażeń regularnych
  • Korzystanie z potoków
  • Instrukcje warunkowe
  • Definiowanie i stosowanie zmiennych
  • Przetwarzanie plików
  • Standardowe wejście i wyjście
  • Korzystanie z możliwości awk
  • Przenoszenie skryptów pomiędzy różnymi powłokami
  • Bezpieczeństwo skryptów powłoki

Książka "Programowanie skryptów powłoki" zawiera wszystkie informacje niezbędne do mistrzowskiego opanowania narzędzi oferowanych przez systemy uniksowe.

SPIS TREŚCI:

Przedmowa (7)
Wstęp (9)

1. Tło historyczne (21)

  • 1.1. Historia systemu Unix (21)
  • 1.2. Filozofia narzędzi programowych (24)
  • 1.3. Podsumowanie (26)

2. Zaczynamy (27)

  • 2.1. Języki skryptowe a języki kompilowane (27)
  • 2.2. Po co nam skrypty powłoki? (28)
  • 2.3. Prosty skrypt (28)
  • 2.4. Autonomia skryptów - wiersz #! (29)
  • 2.5. Podstawowe konstrukcje powłoki (31)
  • 2.6. Odwołania do argumentów skryptów (42)
  • 2.7. Śledzenie wykonania skryptu (43)
  • 2.8. Umiędzynarodowienie i lokalizacja (44)
  • 2.9. Podsumowanie (47)

3. Wyszukiwanie i podstawianie (49)

  • 3.1. Wyszukiwanie tekstu (49)
  • 3.2. Wyrażenia regularne (51)
  • 3.3. Manipulowanie polami (75)
  • 3.4. Podsumowanie (84)

4. Narzędzia przetwarzania tekstu (87)

  • 4.1. Sortowanie tekstu (87)
  • 4.2. Usuwanie duplikatów (95)
  • 4.3. Formatowanie akapitów (96)
  • 4.4. Zliczanie wierszy, słów i znaków (97)
  • 4.5. Drukowanie (98)
  • 4.6. Wycinanie początkowych i końcowych wierszy pliku (104)
  • 4.7. Podsumowanie (105)

5. Niezwykła moc potoków (107)

  • 5.1. Wyłuskiwanie danych ze strukturalizowanych plików tekstowych (107)
  • 5.2. Strukturalizacja danych dla potrzeb WWW (114)
  • 5.3. Gierki słowne i krzyżówki (120)
  • 5.4. Słowniki (121)
  • 5.5. Znaczniki (124)
  • 5.6. Podsumowanie (127)

6. Zmienne, podejmowanie decyzji i powtarzanie operacji (129)

  • 6.1. Zmienne w obliczeniach arytmetycznych (129)
  • 6.2. Kody powrotne poleceń i funkcji (140)
  • 6.3. Instrukcja case (148)
  • 6.4. Pętle (149)
  • 6.5. Funkcje (155)
  • 6.6. Podsumowanie (158)

7. Wejście i wyjście, pliki i przetwarzanie poleceń (161)

  • 7.1. Standardowe wejście, wyjście i wyjście diagnostyczne (161)
  • 7.2. Wczytywanie wierszy danych - read (162)
  • 7.3. Jeszcze o przekierowywaniu (164)
  • 7.4. Jeszcze o poleceniu printf (168)
  • 7.5. Rozwijanie tyldy i symbole wieloznaczne (173)
  • 7.6. Podstawianie poleceń (176)
  • 7.7. Cytaty w powłoce (182)
  • 7.8. Etapy przetwarzania poleceń i polecenie eval (183)
  • 7.9. Polecenia wbudowane (190)
  • 7.10. Podsumowanie (197)

8. Skrypty produkcyjne (199)

  • 8.1. Przeszukiwanie ścieżki (199)
  • 8.2. Automatyczna kompilacja oprogramowania (213)
  • 8.3. Podsumowanie (242)

9. Nieuzbrojony a niebezpieczny - awk (243)

  • 9.1. Wywołanie awk (244)
  • 9.2. Model programistyczny awk (245)
  • 9.3. Elementy programu (246)
  • 9.4. Rekordy i pola (256)
  • 9.5. Wzorce i akcje (258)
  • 9.6. "Jednowierszowce" w awk (260)
  • 9.7. Instrukcje awk (264)
  • 9.8. Funkcje definiowane przez użytkownika (272)
  • 9.9. Funkcje operujące na ciągach (275)
  • 9.10. Funkcje matematyczne (283)
  • 9.11. Podsumowanie (285)

10. Praca z plikami (287)

  • 10.1. Generowanie list plików (287)
  • 10.2. Aktualizacja czasu modyfikacji (292)
  • 10.3. Tworzenie i stosowanie plików tymczasowych (294)
  • 10.4. Wyszukiwanie plików (298)
  • 10.5. Uruchamianie poleceń - xargs (312)
  • 10.6. Informacje o zajętości systemu plików (313)
  • 10.7. Porównywanie plików (317)
  • 10.8. Podsumowanie (325)

11. Z życia wzięte - scalanie baz danych kont systemowych (327)

  • 11.1. Problem (327)
  • 11.2. Pliki kont (328)
  • 11.3. Scalanie plików kont (329)
  • 11.4. Aktualizacja uprawnień dostępu do plików (335)
  • 11.5. Kwestie poboczne (339)
  • 11.6. Podsumowanie (341)

12. Sprawdzanie pisowni (343)

  • 12.1. Program spell (343)
  • 12.2. Prototyp oryginalnego uniksowego programu kontroli pisowni (344)
  • 12.3. Ulepszenia, rozszerzenia, ispell i aspell (345)
  • 12.4. Kontrola pisowni w awk (348)
  • 12.5. Podsumowanie (367)

13. Procesy (369)

  • 13.1. Tworzenie procesu (370)
  • 13.2. Listy procesów (371)
  • 13.3. Tworzenie i usuwanie procesu (377)
  • 13.4. Śledzenie wywołań systemowych (384)
  • 13.5. Mechanizmy rozliczania procesów (388)
  • 13.6. Opóźnianie i planowanie wykonania procesów (389)
  • 13.7. System plików /proc (394)
  • 13.8. Podsumowanie (395)

14. Przenośność skryptów i rozszerzenia powłoki (397)

  • 14.1. Kruczki (397)
  • 14.2. Polecenie shopt (powłoka bash) (401)
  • 14.3. Rozszerzenia wspólne (405)
  • 14.4. Pobieranie i instalacja (417)
  • 14.5. Inne rozszerzone powłoki wzorowane na powłoce Bourne'a (421)
  • 14.6. Wersje powłoki (421)
  • 14.7. Inicjalizacja i finalizacja sesji powłoki (422)
  • 14.8. Podsumowanie (428)

15. Bezpieczeństwo skryptów powłoki (431)

  • 15.1. Wskazówki dla piszących skrypty powłoki (431)
  • 15.2. Powłoki okrojone (434)
  • 15.3. Konie trojańskie (436)
  • 15.4. Skrypty powłoki z bitem setuid (437)
  • 15.5. Tryb uprzywilejowany w ksh93 (439)
  • 15.6. Podsumowanie (440)

A Tworzenie dokumentacji dla systemu man (443)
B Pliki i systemy plików (457)
C Najważniejsze polecenia systemu Unix (493)
Bibliografia (499)
Słowniczek (505)
Skorowidz (533)
 

openSuSE Linux

openSuSE jest dystrybucją Linuksa sponsorowaną przez firmę Novell. Jest to Linux doskonale sprawdzający się jako system serwerowy, choć głównym zamierzeniem jego twórców było stworzenie Linuksa typu desktop. OpenSuSE Linux jest doskonałą alternatywą dla systemów Microsoft. Zawiera dopracowane graficzne narzędzia konfiguracyjne YaST i SaX2. Doskonale nadaje się dla początkujących użytkowników Linuksa.

Mandriva Linux

Mandriva Linux jest jedną z najpopularniejszych dystrybucji ogólnego użytku ostatnich lat. Dzięki swojej innowacyjności zdobyla uznanie zarówno początkujących jak i zaawansowanych użytkowników Linuksa. W kolejnych, wydawanych cyklicznie w odstępach półrocznych wersjach Mandriva Linux jest liderem we wprowadzaniu nowych narzędzi i funkcjonalności, niedostępnych jeszcze w innych dystrybucjach Linuksa.

Slackware Linux

Slackware Linux jest jedną z najstarszych dystrybucji Linuksa, rozwijaną aktywnie aż do chwili obecnej. Pierwsza wersja Slackware Linux została wydana w lipcu 1993 roku jako dystrybucja dla zaawansowanych użytkowników. Do chwili obecnej, jako jedna z niewielu dystrybucji, Slackware Linux wykorzystuje podczas instalacji tekstową wersję instalatora, przez co uznawana jest niesłusznie za trudniejszą w instalacji niż inne popularne dystrybucje.

Copyright 2003-2011 PHU Altkomp

stat4u