Books & Videos

Table of Contents

  1. Chapter 1 Wprowadzenie do pracy z powłoką bash

    1. Dlaczego bash?

    2. Powłoka bash

    3. 1.1. Rozszyfrowanie znaku zachęty

    4. 1.2. Ustalenie katalogu bieżącego

    5. 1.3. Wyszukiwanie i wykonywanie poleceń

    6. 1.4. Uzyskiwanie informacji na temat plików

    7. 1.5. Wyświetlenie plików ukrytych z bieżącego katalogu

    8. 1.6. Cudzysłowy i apostrofy w instrukcjach powłoki

    9. 1.7. Wykorzystywanie i zastępowanie poleceń wbudowanych i zewnętrznych

    10. 1.8. Sprawdzenie, czy powłoka pracuje w trybie interaktywnym

    11. 1.9. Ustawienie interpretera bash jako domyślnej powłoki

    12. 1.10. Pobranie interpretera bash dla systemu Linux

    13. 1.11. Pobranie interpretera bash dla systemu BSD

    14. 1.12. Pobranie interpretera bash dla systemu Mac OS X

    15. 1.13. Pobranie interpretera bash dla systemu Unix

    16. 1.14. Pobranie interpretera bash dla systemu Windows

    17. 1.15. Korzystanie z powłoki bash bez jej pobierania

    18. 1.16. Dodatkowa dokumentacja powłoki bash

  2. Chapter 2 Standardowy strumień wyjściowy

    1. 2.1. Przekazywanie danych wyjściowych do okna terminala

    2. 2.2. Wyświetlanie tekstu z zachowaniem znaków spacji

    3. 2.3. Formatowanie danych wyjściowych

    4. 2.4. Wyświetlanie wyniku bez znaku nowego wiersza

    5. 2.5. Zapisywanie danych wyjściowych polecenia

    6. 2.6. Zapisywanie wyniku w plikach innych katalogów

    7. 2.7. Zapisywanie wyniku polecenia ls

    8. 2.8. Przekazanie danych wyjściowych i komunikatów o błędach do różnych plików

    9. 2.9. Przekazanie danych wyjściowych i komunikatów o błędach do tego samego pliku

    10. 2.10. Dodawanie danych wyjściowych zamiast nadpisywania ich

    11. 2.11. Wykorzystanie jedynie początkowego lub końcowego fragmentu pliku

    12. 2.12. Pomijanie nagłówka pliku

    13. 2.13. Odrzucanie danych wyjściowych

    14. 2.14. Zapisywanie i grupowanie danych wyjściowych większej liczby poleceń

    15. 2.15. Łączenie dwóch programów przez wykorzystanie danych wyjściowych jako wejściowych

    16. 2.16. Zapisywanie kopii danych wyjściowych mimo wykorzystywania ich jako danych wejściowych

    17. 2.17. Łączenie dwóch programów z wykorzystaniem danych wyjściowych jako parametrów

    18. 2.18. Wielokrotne przekierowania w jednym wierszu

    19. 2.19. Zapisywanie danych wyjściowych, gdy wydaje się, że przekierowanie nie działa

    20. 2.20. Zamiana strumieni STDERR i STDOUT

    21. 2.21. Zabezpieczanie pliku przed przypadkowym nadpisaniem

    22. 2.22. Celowe nadpisanie pliku

  3. Chapter 3 Standardowy strumień wejściowy

    1. 3.1. Pobieranie danych wejściowych z pliku

    2. 3.2. Umieszczenie danych w skrypcie

    3. 3.3. Wyeliminowanie nietypowego działania osadzonych dokumentów

    4. 3.4. Wcinanie osadzonych dokumentów

    5. 3.5. Pobieranie danych od użytkownika

    6. 3.6. Wprowadzanie odpowiedzi typu tak-nie

    7. 3.7. Wybór opcji z listy

    8. 3.8. Wprowadzanie haseł

  4. Chapter 4 Wykonywanie poleceń

    1. 4.1. Uruchamianie pliku wykonywalnego

    2. 4.2. Sprawdzenie, czy polecenie zostało wykonane poprawnie

    3. 4.3. Sekwencyjne wykonanie kilku poleceń

    4. 4.4. Jednoczesne wykonanie kilku poleceń

    5. 4.5. Ustalenie poprawności wykonania polecenia

    6. 4.6. Zmniejszenie liczby instrukcji if

    7. 4.7. Wykonywanie poleceń bez nadzoru

    8. 4.8. Wyświetlenie komunikatów o błędach

    9. 4.9. Wykonywanie poleceń zapisanych w zmiennych

    10. 4.10. Uruchomienie wszystkich skryptów w katalogu

  5. Chapter 5 Podstawy tworzenia skryptów — zmienne powłoki

    1. 5.1. Dokumentowanie skryptu

    2. 5.2. Osadzanie dokumentacji w treści skryptu

    3. 5.3. Zachowanie czytelności skryptu

    4. 5.4. Oddzielenie nazw zmiennych od otaczającego je tekstu

    5. 5.5. Eksportowanie zmiennych

    6. 5.6. Wyświetlanie wartości wszystkich zmiennych

    7. 5.7. Wykorzystanie parametrów w skryptach powłoki

    8. 5.8. Iteracyjna analiza parametrów przekazanych do skryptu

    9. 5.9. Obsługa parametrów zawierających znaki spacji

    10. 5.10. Przetwarzanie listy parametrów zawierających znaki spacji

    11. 5.11. Zliczanie parametrów

    12. 5.12. Wykorzystanie parametrów

    13. 5.13. Pobieranie wartości domyślnych

    14. 5.14. Ustawianie wartości domyślnych

    15. 5.15. Wykorzystanie pustego ciągu tekstowego jako poprawnej wartości domyślnej

    16. 5.16. Wykorzystanie wartości innych niż stały ciąg tekstowy jako wartości domyślnych

    17. 5.17. Generowanie komunikatów o błędach w przypadku niezdefiniowania parametrów

    18. 5.18. Modyfikacja fragmentów ciągu tekstowego

    19. 5.19. Wykorzystanie zmiennych tablicowych

  6. Chapter 6 Logika i arytmetyka powłoki

    1. 6.1. Wykonywanie działań arytmetycznych w skrypcie powłoki

    2. 6.2. Rozgałęzianie kodu w instrukcjach warunkowych

    3. 6.3. Sprawdzanie właściwości plików

    4. 6.4. Sprawdzanie więcej niż jednego warunku

    5. 6.5. Sprawdzanie właściwości ciągów tekstowych

    6. 6.6. Sprawdzanie równości dwóch wartości

    7. 6.7. Sprawdzanie zgodności wartości ze wzorcem

    8. 6.8. Sprawdzanie wartości z użyciem wyrażeń regularnych

    9. 6.9. Zmiana sposobu działania skryptu w zależności od rodzaju przekierowania danych

    10. 6.10. Pętla while

    11. 6.11. Pętla z wykorzystaniem instrukcji read

    12. 6.12. Pętla ze zliczaniem iteracji

    13. 6.13. Pętla z wykorzystaniem wartości zmiennoprzecinkowych

    14. 6.14. Wielokrotne rozgałęzianie kodu

    15. 6.15. Przetwarzanie parametrów wiersza polecenia

    16. 6.16. Utworzenie prostego menu

    17. 6.17. Zmiana znaku zachęty w tekstowym menu

    18. 6.18. Kalkulator wykorzystujący notację RPN

    19. 6.19. Kalkulator obsługiwany z poziomu wiersza poleceń

  7. Chapter 7 Dodatkowe narzędzia powłoki I

    1. 7.1. Wyszukiwanie określonego ciągu w pliku tekstowym

    2. 7.2. Wyświetlenie jedynie nazwy pliku zawierającego poszukiwany ciąg tekstowy

    3. 7.3. Zakończenie wyszukiwania wynikiem typu „prawda - fałsz”

    4. 7.4. Wyszukiwanie ciągu tekstowego niezależnie od wielkości liter

    5. 7.5. Przeszukiwanie danych przekazywanych w potoku

    6. 7.6. Odrzucenie niepotrzebnych danych z procedury wyszukiwania

    7. 7.7. Wyszukiwanie z użyciem bardziej rozbudowanych wzorców

    8. 7.8. Wyszukiwanie numeru NIP

    9. 7.9. Wykorzystanie polecenia grep do wyszukiwania informacji w zarchiwizowanych plikach

    10. 7.10. Zachowanie części listingu wynikowego

    11. 7.11. Zachowanie fragmentu wiersza wynikowego

    12. 7.12. Odwrócenie kolejności słów w każdym wierszu

    13. 7.13. Sumowanie zbioru wartości

    14. 7.14. Zliczanie wartości tekstowych

    15. 7.15. Wyświetlanie danych w formie histogramu

    16. 7.16. Wyświetlenie fragmentu tekstu występującego za wyszukaną frazą

  8. Chapter 8 Dodatkowe narzędzia powłoki II

    1. 8.1. Sortowanie danych wyjściowych

    2. 8.2. Sortowanie wartości liczbowych

    3. 8.3. Sortowanie adresów IP

    4. 8.4. Wycinanie fragmentów listingu wynikowego

    5. 8.5. Usuwanie zduplikowanych wierszy

    6. 8.6. Kompresja plików

    7. 8.7. Rozpakowywanie plików

    8. 8.8. Sprawdzenie docelowego katalogu dla plików archiwum

    9. 8.9. Zamiana znaków

    10. 8.10. Zamiana dużych liter na małe

    11. 8.11. Konwersja plików DOS do formatu systemu Linux

    12. 8.12. Usuwanie cudzysłowów drukarskich

    13. 8.13. Zliczanie wierszy, słów i znaków pliku

    14. 8.14. Zmiana podziału wierszy

    15. 8.15. Dodatkowe funkcje polecenia less

  9. Chapter 9 Wyszukiwanie plików — polecenia find, locate, slocate

    1. 9.1. Wyszukiwanie wszystkich plików MP3

    2. 9.2. Przetwarzanie nazw plików zawierających niestandardowe znaki

    3. 9.3. Zwiększenie szybkości przetwarzania wyszukanych plików

    4. 9.4. Wyszukiwanie plików wskazywanych przez dowiązania symboliczne

    5. 9.5. Wyszukiwanie plików bez względu na wielkość liter występujących w nazwach

    6. 9.6. Wyszukiwanie plików na podstawie daty

    7. 9.7. Wyszukiwanie plików określonego typu

    8. 9.8. Wyszukiwanie plików o określonym rozmiarze

    9. 9.9. Wyszukiwanie plików o określonej treści

    10. 9.10. Szybkie wyszukiwanie plików i ich treści

    11. 9.11. Wyszukiwanie plików z wykorzystaniem listy potencjalnych lokalizacji

  10. Chapter 10 Dodatkowe mechanizmy skryptowe

    1. 10.1. „Demonizowanie” skryptu

    2. 10.2. Wielokrotne wykorzystanie kodu — polecenia include i source

    3. 10.3. Wykorzystanie skryptów konfiguracyjnych w skrypcie

    4. 10.4. Definiowanie funkcji

    5. 10.5. Wykorzystanie funkcji. Parametry i zwracane wartości

    6. 10.6. Przechwytywanie przerwań

    7. 10.7. Zmiana definicji poleceń za pomocą aliasów

    8. 10.8. Pomijanie aliasów i funkcji

  11. Chapter 11 Przetwarzanie informacji o dacie i czasie

    1. 11.1. Formatowanie dat podczas wyświetlania

    2. 11.2. Dostarczanie domyślnej wartości daty

    3. 11.3. Automatyczne generowanie dat z określonego zakresu

    4. 11.4. Przekształcenie daty i czasu w znacznik czasu

    5. 11.5. Przekształcanie znaczników czasu w ciągi dat i czasu

    6. 11.6. Pobranie daty poprzedniego lub kolejnego dnia w języku Perl

    7. 11.7. Obliczanie daty i czasu

    8. 11.8. Obsługa stref czasowych, czasu letniego oraz lat przestępnych

    9. 11.9. Wykorzystanie polecenia date i mechanizmu cron do uruchomienia skryptu w wybranym dniu

  12. Chapter 12 Skrypty usprawniające pracę użytkownika

    1. 12.1. Na początek coś łatwego — wyświetlanie myślników

    2. 12.2. Przeglądanie albumu ze zdjęciami

    3. 12.3. Zapis danych w odtwarzaczu MP3

    4. 12.4. Nagrywanie płyt CD

    5. 12.5. Porównywanie dwóch dokumentów

  13. Chapter 13 Interpretacja danych i podobne zadania

    1. 13.1. Przetwarzanie parametrów skryptu powłoki

    2. 13.2. Przetwarzanie parametrów z własnymi komunikatami o błędach

    3. 13.3. Interpretacja kodu HTML

    4. 13.4. Zapisywanie danych wynikowych w tablicy

    5. 13.5. Pobieranie danych wynikowych z wykorzystaniem wywołania funkcji

    6. 13.6. Interpretacja tekstu z wykorzystaniem instrukcji read

    7. 13.7. Zapisywanie danych w tablicy za pomocą instrukcji read

    8. 13.8. Liczba mnoga angielskich rzeczowników

    9. 13.9. Przetwarzanie danych znak po znaku

    10. 13.10. Wyczyszczenie drzewa kodu źródłowego w systemie SVN

    11. 13.11. Utworzenie bazy danych MySQL

    12. 13.12. Wyodrębnianie określonych pól listingu danych

    13. 13.13. Modyfikacja określonych pól listingu danych

    14. 13.14. Usuwanie krańcowych znaków odstępu

    15. 13.15. Kompresowanie znaków odstępu

    16. 13.16. Przetwarzanie pól o stałej długości

    17. 13.17. Przetwarzanie plików niezawierających znaków nowego wiersza

    18. 13.18. Zapis pliku danych w formacie CSV

    19. 13.19. Przetwarzanie plików z danymi CSV

  14. Chapter 14 Bezpieczne skrypty powłoki

    1. 14.1. Unikanie częstych problemów związanych z bezpieczeństwem

    2. 14.2. Unikanie spoofingu w pracy interpretera

    3. 14.3. Wyznaczanie bezpiecznej wartości $PATH

    4. 14.4. Usuwanie wszystkich aliasów

    5. 14.5. Czyszczenie tablicy odwzorowań plików wykonywalnych

    6. 14.6. Zapobieganie zrzutom pamięci

    7. 14.7. Wyznaczenie bezpiecznej wartości $IFS

    8. 14.8. Wyznaczanie bezpiecznej wartości umask

    9. 14.9. Wyszukiwanie w zmiennej $PATH katalogów umożliwiających modyfikowanie zawartości

    10. 14.10. Dodawanie bieżącego katalogu do listy $PATH

    11. 14.11. Bezpieczne pliki tymczasowe

    12. 14.12. Walidacja wprowadzanych danych

    13. 14.13. Definiowanie praw dostępu

    14. 14.14. Ujawnienie haseł na liście procesów

    15. 14.15. Tworzenie skryptów z prawami setuid i setgid

    16. 14.16. Ograniczenie praw konta gościa

    17. 14.17. Wykorzystanie środowiska chroot

    18. 14.18. Wykonywanie skryptu z prawami zwykłego użytkownika

    19. 14.19. Bezpieczne wykorzystanie mechanizmu sudo

    20. 14.20. Wykorzystanie haseł w skryptach

    21. 14.21. Wykorzystanie usługi SSH bez hasła

    22. 14.22. Ograniczenie liczby poleceń SSH

    23. 14.23. Rozłączanie nieaktywnych sesji

  15. Chapter 15 Zaawansowane mechanizmy skryptowe

    1. 15.1. Przenośność skryptu — problem wiersza #!

    2. 15.2. Ustawianie zmiennej $PATH zgodnie z zaleceniami POSIX

    3. 15.3. Tworzenie przenośnych skryptów powłoki

    4. 15.4. Testowanie skryptów w środowisku VMware

    5. 15.5. Przenośność kodu pętli

    6. 15.6. Przenośność instrukcji echo

    7. 15.7. Dzielenie danych wyjściowych tylko wtedy, gdy jest to konieczne

    8. 15.8. Przeglądanie danych wynikowych w formacie szesnastkowym

    9. 15.9. Wykorzystanie mechanizmów przekierowania sieciowego

    10. 15.10. Ustalenie własnych adresów IP

    11. 15.11. Pobieranie danych z innego komputera

    12. 15.12. Przekierowanie wyjścia na czas działania skryptu

    13. 15.13. Eliminacja błędów typu „argument list too long”

    14. 15.14. Wysyłanie komunikatów syslog z poziomu skryptu

    15. 15.15. Wysyłanie wiadomości e-mail ze skryptu

    16. 15.16. Automatyzacja zadań z wykorzystaniem podziału procesu na etapy

  16. Chapter 16 Konfiguracja i dostosowanie powłoki bash

    1. 16.1. Opcje startowe powłoki bash

    2. 16.2. Dostosowanie znaku zachęty

    3. 16.3. Trwała zmiana wartości $PATH

    4. 16.4. Chwilowa zmiana wartości $PATH

    5. 16.5. Wyznaczanie wartości $CDPATH

    6. 16.6. Skracanie i zmienianie nazw poleceń

    7. 16.7. Dostosowanie domyślnego sposobu działania powłoki i jej środowiska

    8. 16.8. Zmiana sposobu działania mechanizmu readline za pomocą skryptu .inputrc

    9. 16.9. Własny zbiór narzędzi — dodanie ścieżki ~/bin

    10. 16.10. Wykorzystanie dodatkowych znaków zachęty — $PS2, $PS3, $PS4

    11. 16.11. Synchronizowanie historii poleceń wprowadzanych w różnych sesjach

    12. 16.12. Włączanie opcji związanych z historią poleceń

    13. 16.13. Utworzenie lepszego polecenia cd

    14. 16.14. Utworzenie katalogu i przejście do niego w jednym kroku

    15. 16.15. Przejście do katalogów najniższego poziomu

    16. 16.16. Dodawanie nowych funkcji przez zastosowanie ładowanych poleceń wbudowanych

    17. 16.17. Usprawnienie mechanizmu uzupełniania poleceń

    18. 16.18. Właściwe wykorzystanie plików startowych

    19. 16.19. Tworzenie samodzielnych, przenośnych plików RC

    20. 16.20. Uruchomienie powłoki z własną konfiguracją

  17. Chapter 17 Zadania administracyjne

    1. 17.1. Zmiana nazwy wielu plików

    2. 17.2. Dokumentacja GNU Texinfo i Info w systemie Linux

    3. 17.3. Rozpakowywanie wielu plików ZIP

    4. 17.4. Przywracanie przerwanych sesji za pomocą narzędzia screen

    5. 17.5. Współdzielenie pojedynczej sesji powłoki

    6. 17.6. Rejestrowanie danych z całej sesji lub zadania wsadowego

    7. 17.7. Czyszczenie ekranu po wylogowaniu

    8. 17.8. Rejestracja metadanych plików w celu ich późniejszego odtworzenia

    9. 17.9. Tworzenie indeksu plików

    10. 17.10. Wykorzystanie poleceń diff i patch

    11. 17.11. Zliczanie różnic między plikami

    12. 17.12. Usuwanie lub zmiana nazwy plików zawierających znaki specjalne w nazwie

    13. 17.13. Dołączanie danych na początku pliku

    14. 17.14. Edycja treści pliku

    15. 17.15. Wykorzystanie mechanizmu sudo w odniesieniu do grupy poleceń

    16. 17.16. Wyszukiwanie wierszy tylko jednego pliku

    17. 17.17. Zachowanie N ostatnich obiektów

    18. 17.18. Filtrowanie wyniku polecenia ps za pomocą instrukcji grep, ale z pominięciem w zestawieniu samej instrukcji grep

    19. 17.19. Sprawdzenie, czy dany proces działa

    20. 17.20. Dodawanie prefiksu lub sufiksu do danych wynikowych

    21. 17.21. Numerowanie wierszy

    22. 17.22. Generowanie sekwencji liczbowych

    23. 17.23. Emulacja instrukcji pause systemu DOS

    24. 17.24. Wyświetlanie separatora tysięcy

  18. Chapter 18 Mniej pisania — szybsza praca

    1. 18.1. Szybkie przechodzenie między określonymi katalogami

    2. 18.2. Powtarzanie ostatniego polecenia

    3. 18.3. Uruchomienie polecenia zbliżonego do wykonywanego wcześniej

    4. 18.4. Podmiana wartości składających się z większej liczby słów

    5. 18.5. Powtórne wykorzystanie parametrów

    6. 18.6. Automatyczne uzupełnianie nazw

    7. 18.7. Bezpieczne działania

  19. Chapter 19 Często popełniane błędy — rozwiązania i podpowiedzi

    1. 19.1. Zapominanie o ustawieniu praw wykonywania

    2. 19.2. Usuwanie błędu „Nie ma takiego pliku ani katalogu”

    3. 19.3. Zapominanie o braku bieżącego katalogu w zmiennej $PATH

    4. 19.4. Nadawanie skryptowi nazwy test

    5. 19.5. Spodziewana zmiana eksportowanych wartości

    6. 19.6. Brak cudzysłowów w operacjach przypisania wywołuje błędy „command not found”

    7. 19.7. Wartości pasujące do wzorca są układane w kolejności alfabetycznej

    8. 19.8. Potoki powołują podpowłoki

    9. 19.9. Uzdrawianie terminala

    10. 19.10. Usuwanie plików z użyciem pustej zmiennej

    11. 19.11. Niestandardowe zachowanie instrukcji printf

    12. 19.12. Sprawdzanie składni skryptu powłoki

    13. 19.13. Śledzenie przebiegu skryptów

    14. 19.14. Unikanie komunikatów „command not found” podczas korzystania z funkcji

    15. 19.15. Pomyłki w stosowaniu symboli wieloznacznych powłoki i wyrażeń regularnych

  1. Appendix Podręczna pomoc

    1. Wywołanie powłoki bash

    2. Dostosowanie znaku zachęty

    3. Symbole specjalne ANSI

    4. Polecenia wbudowane i słowa kluczowe

    5. Wbudowane zmienne powłoki

    6. Opcje instrukcji set

    7. Opcje instrukcji shopt

    8. Zmiana sposobu działania powłoki za pomocą instrukcji set, shopt i zmiennych środowiskowych

    9. Operatory wyrażeń warunkowych

    10. Przekierowanie strumieni wejścia-wyjścia

    11. Opcje i znaki specjalne instrukcji echo

    12. Instrukcja printf

    13. Formatowanie daty i czasu z wykorzystaniem funkcji strftime

    14. Znaki wzorców dopasowywania

    15. Operatory rozszerzonego mechanizmu dopasowywania do wzorca extglob

    16. Symbole specjalne polecenia tr

    17. Składnia pliku konfiguracyjnego mechanizmu readline

    18. Polecenia trybu emacs

    19. Polecenia sterujące trybu vi

    20. Tabela wartości ASCII

  2. Appendix Przykłady dołączone do oprogramowania bash

    1. Przykłady zapisane w katalogu startup-files

  3. Appendix Przetwarzanie poleceń

    1. Etapy przetwarzania polecenia

  4. Appendix Kontrola wersji

    1. CVS

    2. Subversion

    3. RCS

    4. Inne rozwiązania

  5. Appendix Kompilacja powłoki bash

    1. Pobranie pakietu bash

    2. Rozpakowanie archiwum

    3. Co zawiera archiwum?

    4. Do kogo się zwrócić?

  6. Appendix O autorach

  7. Kolofon