E-book details

Skrypty powłoki systemu Linux. Receptury. Wydanie III

Skrypty powłoki systemu Linux. Receptury. Wydanie III

Clif Flynt, Sarath Lakshman, Shantanu Tushar

Ebook

Obecnie systemy uniksowe wyposaża się w intuicyjne GUI, a pojawiające się dystrybucje Linuksa stają się coraz łatwiejsze w obsłudze i administracji. Wciąż jednak jednym z najważniejszych narzędzi administratora i użytkownika systemu uniksowego pozostaje opracowana w zeszłym stuleciu powłoka Bourne, czyli bash. Umiejętność pisania i używania skryptów powłoki jest bezcenna: można w ten sposób automatyzować monotonne zadania, monitorować stan i działanie systemu, włączając w to identyfikację problematycznych procesów. Łatwiejsze też stają się operacje na plikach, optymalizacje wydajności czy dostosowanie systemu do specyficznych potrzeb.

Niniejsza książka przyda się zarówno użytkownikom, jak i administratorom systemów uniksowych. Znalazły się tu receptury opisujące wykonywanie prostych czynności, takich jak wyszukiwanie plików, a także złożonych zadań administracyjnych, w tym monitorowania i dostosowywania systemu, obsługi sieci, bezpieczeństwa i korzystania z chmury. Nie zabrakło receptur ułatwiających rozwiązywanie złożonych problemów, takich jak tworzenie kopii zapasowych, kontroli wersji i śledzenie pakietów, a także korzystanie z kontenerów, maszyn wirtualnych oraz chmury. Znalazły się tu także receptury przydatne dla programistów, którzy nauczą się analizy aplikacji systemowych i korzystać z takich narzędzi, jak git i fossil.

W tej książce:

  • pisanie i debugowanie skryptów oraz konfigurowanie powłoki,
  • sterowanie pracą skryptu i praca z plikami,
  • rozwiązywanie problemów z aplikacjami internetowymi,
  • kopie zapasowe, monitorowanie systemu i inne zadania administracyjne,
  • analiza sieci i rozwiązywanie problemów z bezpieczeństwem,
  • skrypty do korzystania z kontenerów, maszyn wirtualnych i chmury.

Skrypty powłoki - najlepsze wsparcie admina!


Clif Flynt ma kilkadziesiąt lat doświadczenia jako programista i administrator systemów Linux i Unix. Jego aplikacje były wykorzystywane m.in. przez Marynarkę Wojenną USA. W wolnym czasie gra na gitarze i bawi się z kotami swojej żony.

Sarath Lakshman jest programistą w firmie Zynga w Indiach. Entuzjasta systemu GNU/Linux, jest szeroko znany jako jeden z twórców dystrybucji SLYNUX. Jego pasją są skalowalne systemy rozproszone.

Shantanu Tushar jest programistą i uczestniczy w projektach związanych z oprogramowaniem KDE. Pracuje też nad projektami Calligra, Gluon i Plasma.

Przedmowa (13)

Rozdział 1. Poznanie możliwości powłoki (17)

  • Wprowadzenie (18)
  • Wyświetlanie w oknie terminalu (18)
  • Używanie zmiennych i zmiennych środowiskowych (24)
  • Funkcja dołączająca wartość na początku zmiennych środowiskowych (29)
  • Wykonywanie obliczeń matematycznych za pomocą powłoki (30)
  • Eksperymentowanie z deskryptorami plików i przekierowywaniem (32)
  • Tablice zwykłe i tablice asocjacyjne (38)
  • Korzystanie z aliasów (40)
  • Uzyskiwanie informacji o terminalu (42)
  • Uzyskiwanie i ustawianie dat oraz opóźnienia (43)
  • Debugowanie skryptu (47)
  • Funkcje i argumenty (49)
  • Przekazywanie danych wyjściowych do drugiego polecenia (53)
  • Odczytywanie n znaków bez naciskania klawisza Enter (55)
  • Wykonywanie polecenia aż do osiągnięcia zamierzonego celu (56)
  • Separatory pól i iteratory (58)
  • Porównania i testy (60)
  • Dostosowywanie powłoki za pomocą plików konfiguracyjnych (64)

Rozdział 2. Dobre polecenie (67)

  • Wprowadzenie (68)
  • Łączenie za pomocą polecenia cat (68)
  • Rejestrowanie i odtwarzanie sesji terminalowych (71)
  • Znajdowanie plików i wyświetlanie ich listy (72)
  • Eksperymentowanie z poleceniem xargs (82)
  • Przekształcanie za pomocą polecenia tr (88)
  • Suma kontrolna i weryfikowanie (92)
  • Narzędzia kryptograficzne i funkcje mieszające (97)
  • Sortowanie, unikatowość i duplikaty (98)
  • Liczby losowe i nadawanie nazw plikom tymczasowym (103)
  • Podział plików i danych (104)
  • Podział nazw plików na podstawie rozszerzenia (107)
  • Zmiana nazw plików i przenoszenie ich w trybie wsadowym (110)
  • Sprawdzanie pisowni i przetwarzanie słownika (112)
  • Automatyzowanie interaktywnego wprowadzania danych (114)
  • Przyspieszanie wykonywania poleceń poprzez uruchamianie procesów równoległych (117)
  • Analizowanie katalogu oraz zawartych w nim plików i podkatalogów (119)

Rozdział 3. Plik na wejściu, plik na wyjściu (121)

  • Wprowadzenie (122)
  • Generowanie plików dowolnej wielkości (122)
  • Część wspólna i różnica zbiorów (A-B) w przypadku plików tekstowych (124)
  • Znajdowanie i usuwanie duplikatów plików (127)
  • Uprawnienia plików, prawo właściciela pliku i bit lepkości (130)
  • Zapewnianie niezmienności plików (135)
  • Masowe generowanie pustych plików (136)
  • Znajdowanie dowiązania symbolicznego i jego obiektu docelowego (137)
  • Wyliczanie statystyk dotyczących typów plików (139)
  • Korzystanie z plików pętli zwrotnej (141)
  • Tworzenie plików ISO i hybrydowych plików ISO (145)
  • Znajdowanie różnicy między plikami oraz stosowanie poprawek (148)
  • Korzystanie z poleceń head i tail w celu wyświetlenia 10 pierwszych lub ostatnich wierszy (150)
  • Wyświetlanie wyłącznie katalogów - inne metody (153)
  • Szybka nawigacja na poziomie wiersza poleceń za pomocą poleceń pushd i popd (154)
  • Określanie liczby wierszy, słów i znaków w pliku (155)
  • Wyświetlanie drzewa katalogów (157)
  • Przetwarzanie plików wideo i graficznych (158)

Rozdział 4. Przetwarzanie tekstu i sterowanie (163)

  • Wprowadzenie (164)
  • Używanie wyrażeń regularnych (164)
  • Wyszukiwanie tekstu wewnątrz pliku za pomocą polecenia grep (169)
  • Oparte na kolumnach wycinanie zawartości pliku za pomocą polecenia cut (175)
  • Stosowanie polecenia sed w celu zastępowania tekstu (178)
  • Korzystanie z polecenia awk w celu zaawansowanego przetwarzania tekstu (182)
  • Częstość wystąpień słów używanych w danym pliku (188)
  • Kompresowanie i dekompresowanie kodu JavaScript (190)
  • Scalanie wielu plików jako kolumn (193)
  • Wyświetlanie n-tego słowa lub n-tej kolumny pliku lub wiersza (194)
  • Wyświetlanie tekstu między wierszami o określonych numerach lub między wzorcami (195)
  • Wyświetlanie wierszy w odwrotnej kolejności (196)
  • Analizowanie adresów e-mail i URL zawartych w tekście (197)
  • Usuwanie z pliku zdania zawierającego dane słowo (199)
  • Zastępowanie wzorca tekstem we wszystkich plikach znajdujących się w katalogu (200)
  • Podział tekstu i operacje na parametrach (201)

Rozdział 5. Zagmatwany internet? Wcale nie! (203)

  • Wprowadzenie (204)
  • Pobieranie ze strony internetowej (204)
  • Pobieranie strony internetowej jako zwykłego tekstu (207)
  • Narzędzie cURL - wprowadzenie (208)
  • Uzyskiwanie dostępu do nieprzeczytanych wiadomości e-mail usługi Gmail z poziomu wiersza poleceń (213)
  • Analizowanie danych z witryny internetowej (215)
  • Przeglądarka obrazów i narzędzie do ich pobierania (216)
  • Generator internetowego albumu ze zdjęciami (219)
  • Klient wiersza poleceń serwisu Twitter (221)
  • Dostęp do definicji słów za pośrednictwem serwera sieci Web (224)
  • Znajdowanie uszkodzonych łączy w witrynie internetowej (226)
  • Śledzenie zmian w witrynie internetowej (228)
  • Wysyłanie danych do strony internetowej i wczytywanie odpowiedzi (230)
  • Pobieranie wideo z internetu (232)
  • Tworzenie podsumowania tekstu za pomocą OTS (233)
  • Tłumaczenie tekstu za pomocą wiersza poleceń (234)

Rozdział 6. Zarządzanie repozytorium (235)

  • Wprowadzenie (236)
  • Korzystanie z systemu Git (237)
  • Tworzenie nowego repozytorium Git (237)
  • Klonowanie zdalnego repozytorium Git (238)
  • Dodawanie i zatwierdzanie zmian w repozytorium Git (238)
  • Tworzenie i łączenie gałęzi w repozytorium Git (240)
  • Udostępnienie swojej pracy (242)
  • Przesyłanie gałęzi na serwer (244)
  • Pobieranie najnowszej wersji kodu źródłowego do bieżącej gałęzi (244)
  • Sprawdzanie stanu repozytorium Git (245)
  • Wyświetlanie historii repozytorium Git (246)
  • Znajdowanie błędów (247)
  • Oznaczanie migawek znacznikami (248)
  • Etyka komentarzy stosowanych podczas zatwierdzania kodu (250)
  • Używanie narzędzia Fossil (250)
  • Tworzenie nowego repozytorium Fossil (251)
  • Klonowanie zdalnego repozytorium Fossil (253)
  • Otwieranie projektu Fossil (253)
  • Dodawanie i zatwierdzanie zmian za pomocą narzędzia Fossil (254)
  • Używanie gałęzi i kopii projektu w repozytorium Fossil (255)
  • Udostępnianie pracy za pomocą repozytorium Fossil (258)
  • Aktualizowanie lokalnego repozytorium Fossil (258)
  • Sprawdzanie stanu repozytorium Fossil (259)
  • Wyświetlanie historii repozytorium Fossil (260)

Rozdział 7. Plan tworzenia kopii zapasowych (265)

  • Wprowadzenie (265)
  • Archiwizowanie za pomocą programu tar (266)
  • Archiwizowanie za pomocą programu cpio (272)
  • Kompresowanie za pomocą programu gunzip (gzip) (273)
  • Archiwizowanie i kompresowanie za pomocą programu zip (277)
  • Szybsze archiwizowanie za pomocą programu pbzip2 (278)
  • Tworzenie systemów plików z kompresją (279)
  • Tworzenie migawek kopii zapasowych za pomocą programu rsync (281)
  • Archiwa różnicowe (284)
  • Tworzenie obrazów całego dysku za pomocą programu fsarchiver (285)

Rozdział 8. Poczciwa sieć (289)

  • Wprowadzenie (290)
  • Konfigurowanie sieci (290)
  • Używanie narzędzia ping (296)
  • Śledzenie tras IP (300)
  • Wyświetlanie wszystkich komputerów dostępnych w sieci (301)
  • Uruchamianie poleceń na hoście zdalnym za pomocą narzędzia SSH (304)
  • Uruchamianie poleceń graficznych na hoście zdalnym (307)
  • Przesyłanie plików (308)
  • Łączenie się z siecią bezprzewodową (311)
  • Automatyczne logowanie protokołu SSH bez wymogu podania hasła (314)
  • Przekazywanie portów za pomocą protokołu SSH (316)
  • Podłączanie dysku zdalnego za pomocą lokalnego punktu podłączenia (317)
  • Analiza ruchu sieciowego i portów (318)
  • Pomiar przepustowości sieci (320)
  • Tworzenie dowolnych gniazd (321)
  • Tworzenie mostu (323)
  • Udostępnianie połączenia z internetem (324)
  • Tworzenie prostej zapory sieciowej za pomocą iptables (326)
  • Tworzenie sieci typu Virtual Private Network (327)

Rozdział 9. Postaw na monitorowanie (335)

  • Wprowadzenie (336)
  • Monitorowanie wykorzystania przestrzeni dyskowej (336)
  • Obliczanie czasu wykonywania polecenia (342)
  • Informacje o zalogowanych użytkownikach, dziennikach rozruchu i niepowodzeniu rozruchu (345)
  • Wyświetlanie 10 procesów zajmujących w ciągu godziny najwięcej czasu procesora (347)
  • Monitorowanie danych wyjściowych poleceń za pomocą narzędzia watch (350)
  • Rejestrowanie dostępu do plików i katalogów (351)
  • Rejestrowanie za pomocą narzędzia syslog (352)
  • Zarządzanie plikami dziennika za pomocą narzędzia logrotate (354)
  • Monitorowanie logowania użytkowników w celu wykrycia intruzów (356)
  • Monitorowanie poziomu wykorzystania przestrzeni dysków zdalnych (358)
  • Określanie liczby godzin aktywności użytkownika w systemie (361)
  • Pomiar i optymalizowanie aktywności dysku (363)
  • Monitorowanie aktywności dysków (364)
  • Sprawdzanie dysków i systemów plików pod kątem błędów (365)
  • Analiza kondycji dysku (367)
  • Uzyskiwanie statystyk dotyczących dysku (370)

Rozdział 10. Administrowanie (373)

  • Wprowadzenie (373)
  • Gromadzenie informacji o procesach (374)
  • Objaśnienie narzędzi: which, whereis, whatis i file (380)
  • Kończenie procesów oraz wysyłanie sygnałów i odpowiadanie na nie (383)
  • Wysyłanie komunikatów do terminali użytkowników (386)
  • System plików /proc (389)
  • Gromadzenie informacji o systemie (390)
  • Planowanie za pomocą programu cron (392)
  • Rodzaje i sposoby użycia baz danych (396)
  • Zapisywanie bazy danych SQLite i jej odczytywanie (398)
  • Zapisywanie bazy danych MySQL i odczytywanie jej z poziomu powłoki Bash (400)
  • Skrypt do zarządzania użytkownikami (405)
  • Masowa zmiana wymiarów obrazów i konwersja formatów (409)
  • Wykonywanie zrzutów ekranowych z poziomu okna terminalu (413)
  • Zarządzanie wieloma terminalami za pomocą jednego z nich (414)

Rozdział 11. Podążanie za śladami (415)

  • Wprowadzenie (415)
  • Śledzenie pakietów za pomocą polecenia tcpdump (415)
  • Znajdowanie pakietów za pomocą polecenia ngrep (419)
  • Śledzenie tras sieciowych za pomocą polecenia ip (421)
  • Śledzenie wywołań systemowych za pomocą polecenia strace (423)
  • Śledzenie funkcji biblioteki dynamicznej za pomocą polecenia ltrace (427)

Rozdział 12. Dostosowywanie systemu Linux (431)

  • Wprowadzenie (431)
  • Identyfikowanie usług (433)
  • Gromadzenie danych z gniazd za pomocą polecenia ss (437)
  • Gromadzenie danych o operacjach wejścia-wyjścia w systemie za pomocą polecenia dstat (439)
  • Identyfikowanie procesów nadmiernie wykorzystujących zasoby za pomocą polecenia pidstat (442)
  • Dostosowywanie jądra systemu Linux za pomocą polecenia sysctl (443)
  • Dostosowywanie systemu Linux za pomocą plików konfiguracyjnych (445)
  • Zmiana priorytetu zarządcy procesów za pomocą polecenia nice (446)

Rozdział 13. Kontenery, maszyny wirtualne i chmura (449)

  • Wprowadzenie (449)
  • Używanie kontenerów systemu Linux (450)
  • Stosowanie Dockera (459)
  • Używanie maszyn wirtualnych w systemie Linux (463)
  • Linux w chmurze (464)

Skorowidz (471)

  • Title: Skrypty powłoki systemu Linux. Receptury. Wydanie III
  • Author: Clif Flynt, Sarath Lakshman, Shantanu Tushar
  • Original title: Linux Shell Scripting Cookbook - Third Edition
  • Translation: Joanna Zatorska
  • ISBN: 978-83-283-4032-9, 9788328340329
  • Date of issue: 2018-04-27
  • Format: Ebook
  • Item ID: sposy3
  • Publisher: Helion