Book description
Książka "bash. Receptury" zawiera opis powłoki bash oraz prezentuje praktyczne przykłady rozwiązań problemów spotykanych powszechnie podczas projektowania skryptów. W każdej chwili możesz się do nich odwołać, dostosowując system do własnych potrzeb.
Table of contents
- Bash. Receptury
- Przedmowa
-
1. Wprowadzenie do pracy z powłoką bash
- Dlaczego bash?
- Powłoka bash
- 1.1. Rozszyfrowanie znaku zachęty
- 1.2. Ustalenie katalogu bieżącego
- 1.3. Wyszukiwanie i wykonywanie poleceń
- 1.4. Uzyskiwanie informacji na temat plików
- 1.5. Wyświetlenie plików ukrytych z bieżącego katalogu
- 1.6. Cudzysłowy i apostrofy w instrukcjach powłoki
- 1.7. Wykorzystywanie i zastępowanie poleceń wbudowanych i zewnętrznych
- 1.8. Sprawdzenie, czy powłoka pracuje w trybie interaktywnym
- 1.9. Ustawienie interpretera bash jako domyślnej powłoki
- 1.10. Pobranie interpretera bash dla systemu Linux
- 1.11. Pobranie interpretera bash dla systemu BSD
- 1.12. Pobranie interpretera bash dla systemu Mac OS X
- 1.13. Pobranie interpretera bash dla systemu Unix
- 1.14. Pobranie interpretera bash dla systemu Windows
- 1.15. Korzystanie z powłoki bash bez jej pobierania
- 1.16. Dodatkowa dokumentacja powłoki bash
-
2. Standardowy strumień wyjściowy
- 2.1. Przekazywanie danych wyjściowych do okna terminala
- 2.2. Wyświetlanie tekstu z zachowaniem znaków spacji
- 2.3. Formatowanie danych wyjściowych
- 2.4. Wyświetlanie wyniku bez znaku nowego wiersza
- 2.5. Zapisywanie danych wyjściowych polecenia
- 2.6. Zapisywanie wyniku w plikach innych katalogów
- 2.7. Zapisywanie wyniku polecenia ls
- 2.8. Przekazanie danych wyjściowych i komunikatów o błędach do różnych plików
- 2.9. Przekazanie danych wyjściowych i komunikatów o błędach do tego samego pliku
- 2.10. Dodawanie danych wyjściowych zamiast nadpisywania ich
- 2.11. Wykorzystanie jedynie początkowego lub końcowego fragmentu pliku
- 2.12. Pomijanie nagłówka pliku
- 2.13. Odrzucanie danych wyjściowych
- 2.14. Zapisywanie i grupowanie danych wyjściowych większej liczby poleceń
- 2.15. Łączenie dwóch programów przez wykorzystanie danych wyjściowych jako wejściowych
- 2.16. Zapisywanie kopii danych wyjściowych mimo wykorzystywania ich jako danych wejściowych
- 2.17. Łączenie dwóch programów z wykorzystaniem danych wyjściowych jako parametrów
- 2.18. Wielokrotne przekierowania w jednym wierszu
- 2.19. Zapisywanie danych wyjściowych, gdy wydaje się, że przekierowanie nie działa
- 2.20. Zamiana strumieni STDERR i STDOUT
- 2.21. Zabezpieczanie pliku przed przypadkowym nadpisaniem
- 2.22. Celowe nadpisanie pliku
-
3. Standardowy strumień wejściowy
- 3.1. Pobieranie danych wejściowych z pliku
- 3.2. Umieszczenie danych w skrypcie
- 3.3. Wyeliminowanie nietypowego działania osadzonych dokumentów
- 3.4. Wcinanie osadzonych dokumentów
- 3.5. Pobieranie danych od użytkownika
- 3.6. Wprowadzanie odpowiedzi typu tak-nie
- 3.7. Wybór opcji z listy
- 3.8. Wprowadzanie haseł
-
4. Wykonywanie poleceń
- 4.1. Uruchamianie pliku wykonywalnego
- 4.2. Sprawdzenie, czy polecenie zostało wykonane poprawnie
- 4.3. Sekwencyjne wykonanie kilku poleceń
- 4.4. Jednoczesne wykonanie kilku poleceń
- 4.5. Ustalenie poprawności wykonania polecenia
- 4.6. Zmniejszenie liczby instrukcji if
- 4.7. Wykonywanie poleceń bez nadzoru
- 4.8. Wyświetlenie komunikatów o błędach
- 4.9. Wykonywanie poleceń zapisanych w zmiennych
- 4.10. Uruchomienie wszystkich skryptów w katalogu
-
5. Podstawy tworzenia skryptów — zmienne powłoki
- 5.1. Dokumentowanie skryptu
- 5.2. Osadzanie dokumentacji w treści skryptu
- 5.3. Zachowanie czytelności skryptu
- 5.4. Oddzielenie nazw zmiennych od otaczającego je tekstu
- 5.5. Eksportowanie zmiennych
- 5.6. Wyświetlanie wartości wszystkich zmiennych
- 5.7. Wykorzystanie parametrów w skryptach powłoki
- 5.8. Iteracyjna analiza parametrów przekazanych do skryptu
- 5.9. Obsługa parametrów zawierających znaki spacji
- 5.10. Przetwarzanie listy parametrów zawierających znaki spacji
- 5.11. Zliczanie parametrów
- 5.12. Wykorzystanie parametrów
- 5.13. Pobieranie wartości domyślnych
- 5.14. Ustawianie wartości domyślnych
- 5.15. Wykorzystanie pustego ciągu tekstowego jako poprawnej wartości domyślnej
- 5.16. Wykorzystanie wartości innych niż stały ciąg tekstowy jako wartości domyślnych
- 5.17. Generowanie komunikatów o błędach w przypadku niezdefiniowania parametrów
- 5.18. Modyfikacja fragmentów ciągu tekstowego
- 5.19. Wykorzystanie zmiennych tablicowych
-
6. Logika i arytmetyka powłoki
- 6.1. Wykonywanie działań arytmetycznych w skrypcie powłoki
- 6.2. Rozgałęzianie kodu w instrukcjach warunkowych
- 6.3. Sprawdzanie właściwości plików
- 6.4. Sprawdzanie więcej niż jednego warunku
- 6.5. Sprawdzanie właściwości ciągów tekstowych
- 6.6. Sprawdzanie równości dwóch wartości
- 6.7. Sprawdzanie zgodności wartości ze wzorcem
- 6.8. Sprawdzanie wartości z użyciem wyrażeń regularnych
- 6.9. Zmiana sposobu działania skryptu w zależności od rodzaju przekierowania danych
- 6.10. Pętla while
- 6.11. Pętla z wykorzystaniem instrukcji read
- 6.12. Pętla ze zliczaniem iteracji
- 6.13. Pętla z wykorzystaniem wartości zmiennoprzecinkowych
- 6.14. Wielokrotne rozgałęzianie kodu
- 6.15. Przetwarzanie parametrów wiersza polecenia
- 6.16. Utworzenie prostego menu
- 6.17. Zmiana znaku zachęty w tekstowym menu
- 6.18. Kalkulator wykorzystujący notację RPN
- 6.19. Kalkulator obsługiwany z poziomu wiersza poleceń
-
7. Dodatkowe narzędzia powłoki I
- 7.1. Wyszukiwanie określonego ciągu w pliku tekstowym
- 7.2. Wyświetlenie jedynie nazwy pliku zawierającego poszukiwany ciąg tekstowy
- 7.3. Zakończenie wyszukiwania wynikiem typu „prawda - fałsz”
- 7.4. Wyszukiwanie ciągu tekstowego niezależnie od wielkości liter
- 7.5. Przeszukiwanie danych przekazywanych w potoku
- 7.6. Odrzucenie niepotrzebnych danych z procedury wyszukiwania
- 7.7. Wyszukiwanie z użyciem bardziej rozbudowanych wzorców
- 7.8. Wyszukiwanie numeru NIP
- 7.9. Wykorzystanie polecenia grep do wyszukiwania informacji w zarchiwizowanych plikach
- 7.10. Zachowanie części listingu wynikowego
- 7.11. Zachowanie fragmentu wiersza wynikowego
- 7.12. Odwrócenie kolejności słów w każdym wierszu
- 7.13. Sumowanie zbioru wartości
- 7.14. Zliczanie wartości tekstowych
- 7.15. Wyświetlanie danych w formie histogramu
- 7.16. Wyświetlenie fragmentu tekstu występującego za wyszukaną frazą
-
8. Dodatkowe narzędzia powłoki II
- 8.1. Sortowanie danych wyjściowych
- 8.2. Sortowanie wartości liczbowych
- 8.3. Sortowanie adresów IP
- 8.4. Wycinanie fragmentów listingu wynikowego
- 8.5. Usuwanie zduplikowanych wierszy
- 8.6. Kompresja plików
- 8.7. Rozpakowywanie plików
- 8.8. Sprawdzenie docelowego katalogu dla plików archiwum
- 8.9. Zamiana znaków
- 8.10. Zamiana dużych liter na małe
- 8.11. Konwersja plików DOS do formatu systemu Linux
- 8.12. Usuwanie cudzysłowów drukarskich
- 8.13. Zliczanie wierszy, słów i znaków pliku
- 8.14. Zmiana podziału wierszy
- 8.15. Dodatkowe funkcje polecenia less
-
9. Wyszukiwanie plików — polecenia find, locate, slocate
- 9.1. Wyszukiwanie wszystkich plików MP3
- 9.2. Przetwarzanie nazw plików zawierających niestandardowe znaki
- 9.3. Zwiększenie szybkości przetwarzania wyszukanych plików
- 9.4. Wyszukiwanie plików wskazywanych przez dowiązania symboliczne
- 9.5. Wyszukiwanie plików bez względu na wielkość liter występujących w nazwach
- 9.6. Wyszukiwanie plików na podstawie daty
- 9.7. Wyszukiwanie plików określonego typu
- 9.8. Wyszukiwanie plików o określonym rozmiarze
- 9.9. Wyszukiwanie plików o określonej treści
- 9.10. Szybkie wyszukiwanie plików i ich treści
- 9.11. Wyszukiwanie plików z wykorzystaniem listy potencjalnych lokalizacji
-
10. Dodatkowe mechanizmy skryptowe
- 10.1. „Demonizowanie” skryptu
- 10.2. Wielokrotne wykorzystanie kodu — polecenia include i source
- 10.3. Wykorzystanie skryptów konfiguracyjnych w skrypcie
- 10.4. Definiowanie funkcji
- 10.5. Wykorzystanie funkcji. Parametry i zwracane wartości
- 10.6. Przechwytywanie przerwań
- 10.7. Zmiana definicji poleceń za pomocą aliasów
- 10.8. Pomijanie aliasów i funkcji
-
11. Przetwarzanie informacji o dacie i czasie
- 11.1. Formatowanie dat podczas wyświetlania
- 11.2. Dostarczanie domyślnej wartości daty
- 11.3. Automatyczne generowanie dat z określonego zakresu
- 11.4. Przekształcenie daty i czasu w znacznik czasu
- 11.5. Przekształcanie znaczników czasu w ciągi dat i czasu
- 11.6. Pobranie daty poprzedniego lub kolejnego dnia w języku Perl
- 11.7. Obliczanie daty i czasu
- 11.8. Obsługa stref czasowych, czasu letniego oraz lat przestępnych
- 11.9. Wykorzystanie polecenia date i mechanizmu cron do uruchomienia skryptu w wybranym dniu
- 12. Skrypty usprawniające pracę użytkownika
-
13. Interpretacja danych i podobne zadania
- 13.1. Przetwarzanie parametrów skryptu powłoki
- 13.2. Przetwarzanie parametrów z własnymi komunikatami o błędach
- 13.3. Interpretacja kodu HTML
- 13.4. Zapisywanie danych wynikowych w tablicy
- 13.5. Pobieranie danych wynikowych z wykorzystaniem wywołania funkcji
- 13.6. Interpretacja tekstu z wykorzystaniem instrukcji read
- 13.7. Zapisywanie danych w tablicy za pomocą instrukcji read
- 13.8. Liczba mnoga angielskich rzeczowników
- 13.9. Przetwarzanie danych znak po znaku
- 13.10. Wyczyszczenie drzewa kodu źródłowego w systemie SVN
- 13.11. Utworzenie bazy danych MySQL
- 13.12. Wyodrębnianie określonych pól listingu danych
- 13.13. Modyfikacja określonych pól listingu danych
- 13.14. Usuwanie krańcowych znaków odstępu
- 13.15. Kompresowanie znaków odstępu
- 13.16. Przetwarzanie pól o stałej długości
- 13.17. Przetwarzanie plików niezawierających znaków nowego wiersza
- 13.18. Zapis pliku danych w formacie CSV
- 13.19. Przetwarzanie plików z danymi CSV
-
14. Bezpieczne skrypty powłoki
- 14.1. Unikanie częstych problemów związanych z bezpieczeństwem
- 14.2. Unikanie spoofingu w pracy interpretera
- 14.3. Wyznaczanie bezpiecznej wartości $PATH
- 14.4. Usuwanie wszystkich aliasów
- 14.5. Czyszczenie tablicy odwzorowań plików wykonywalnych
- 14.6. Zapobieganie zrzutom pamięci
- 14.7. Wyznaczenie bezpiecznej wartości $IFS
- 14.8. Wyznaczanie bezpiecznej wartości umask
- 14.9. Wyszukiwanie w zmiennej $PATH katalogów umożliwiających modyfikowanie zawartości
- 14.10. Dodawanie bieżącego katalogu do listy $PATH
- 14.11. Bezpieczne pliki tymczasowe
- 14.12. Walidacja wprowadzanych danych
- 14.13. Definiowanie praw dostępu
- 14.14. Ujawnienie haseł na liście procesów
- 14.15. Tworzenie skryptów z prawami setuid i setgid
- 14.16. Ograniczenie praw konta gościa
- 14.17. Wykorzystanie środowiska chroot
- 14.18. Wykonywanie skryptu z prawami zwykłego użytkownika
- 14.19. Bezpieczne wykorzystanie mechanizmu sudo
- 14.20. Wykorzystanie haseł w skryptach
- 14.21. Wykorzystanie usługi SSH bez hasła
- 14.22. Ograniczenie liczby poleceń SSH
- 14.23. Rozłączanie nieaktywnych sesji
-
15. Zaawansowane mechanizmy skryptowe
- 15.1. Przenośność skryptu — problem wiersza #!
- 15.2. Ustawianie zmiennej $PATH zgodnie z zaleceniami POSIX
- 15.3. Tworzenie przenośnych skryptów powłoki
- 15.4. Testowanie skryptów w środowisku VMware
- 15.5. Przenośność kodu pętli
- 15.6. Przenośność instrukcji echo
- 15.7. Dzielenie danych wyjściowych tylko wtedy, gdy jest to konieczne
- 15.8. Przeglądanie danych wynikowych w formacie szesnastkowym
- 15.9. Wykorzystanie mechanizmów przekierowania sieciowego
- 15.10. Ustalenie własnych adresów IP
- 15.11. Pobieranie danych z innego komputera
- 15.12. Przekierowanie wyjścia na czas działania skryptu
- 15.13. Eliminacja błędów typu „argument list too long”
- 15.14. Wysyłanie komunikatów syslog z poziomu skryptu
- 15.15. Wysyłanie wiadomości e-mail ze skryptu
- 15.16. Automatyzacja zadań z wykorzystaniem podziału procesu na etapy
-
16. Konfiguracja i dostosowanie powłoki bash
- 16.1. Opcje startowe powłoki bash
- 16.2. Dostosowanie znaku zachęty
- 16.3. Trwała zmiana wartości $PATH
- 16.4. Chwilowa zmiana wartości $PATH
- 16.5. Wyznaczanie wartości $CDPATH
- 16.6. Skracanie i zmienianie nazw poleceń
- 16.7. Dostosowanie domyślnego sposobu działania powłoki i jej środowiska
- 16.8. Zmiana sposobu działania mechanizmu readline za pomocą skryptu .inputrc
- 16.9. Własny zbiór narzędzi — dodanie ścieżki ~/bin
- 16.10. Wykorzystanie dodatkowych znaków zachęty — $PS2, $PS3, $PS4
- 16.11. Synchronizowanie historii poleceń wprowadzanych w różnych sesjach
- 16.12. Włączanie opcji związanych z historią poleceń
- 16.13. Utworzenie lepszego polecenia cd
- 16.14. Utworzenie katalogu i przejście do niego w jednym kroku
- 16.15. Przejście do katalogów najniższego poziomu
- 16.16. Dodawanie nowych funkcji przez zastosowanie ładowanych poleceń wbudowanych
- 16.17. Usprawnienie mechanizmu uzupełniania poleceń
- 16.18. Właściwe wykorzystanie plików startowych
- 16.19. Tworzenie samodzielnych, przenośnych plików RC
- 16.20. Uruchomienie powłoki z własną konfiguracją
-
17. Zadania administracyjne
- 17.1. Zmiana nazwy wielu plików
- 17.2. Dokumentacja GNU Texinfo i Info w systemie Linux
- 17.3. Rozpakowywanie wielu plików ZIP
- 17.4. Przywracanie przerwanych sesji za pomocą narzędzia screen
- 17.5. Współdzielenie pojedynczej sesji powłoki
- 17.6. Rejestrowanie danych z całej sesji lub zadania wsadowego
- 17.7. Czyszczenie ekranu po wylogowaniu
- 17.8. Rejestracja metadanych plików w celu ich późniejszego odtworzenia
- 17.9. Tworzenie indeksu plików
- 17.10. Wykorzystanie poleceń diff i patch
- 17.11. Zliczanie różnic między plikami
- 17.12. Usuwanie lub zmiana nazwy plików zawierających znaki specjalne w nazwie
- 17.13. Dołączanie danych na początku pliku
- 17.14. Edycja treści pliku
- 17.15. Wykorzystanie mechanizmu sudo w odniesieniu do grupy poleceń
- 17.16. Wyszukiwanie wierszy tylko jednego pliku
- 17.17. Zachowanie N ostatnich obiektów
- 17.18. Filtrowanie wyniku polecenia ps za pomocą instrukcji grep, ale z pominięciem w zestawieniu samej instrukcji grep
- 17.19. Sprawdzenie, czy dany proces działa
- 17.20. Dodawanie prefiksu lub sufiksu do danych wynikowych
- 17.21. Numerowanie wierszy
- 17.22. Generowanie sekwencji liczbowych
- 17.23. Emulacja instrukcji pause systemu DOS
- 17.24. Wyświetlanie separatora tysięcy
-
18. Mniej pisania — szybsza praca
- 18.1. Szybkie przechodzenie między określonymi katalogami
- 18.2. Powtarzanie ostatniego polecenia
- 18.3. Uruchomienie polecenia zbliżonego do wykonywanego wcześniej
- 18.4. Podmiana wartości składających się z większej liczby słów
- 18.5. Powtórne wykorzystanie parametrów
- 18.6. Automatyczne uzupełnianie nazw
- 18.7. Bezpieczne działania
-
19. Często popełniane błędy — rozwiązania i podpowiedzi
- 19.1. Zapominanie o ustawieniu praw wykonywania
- 19.2. Usuwanie błędu „Nie ma takiego pliku ani katalogu”
- 19.3. Zapominanie o braku bieżącego katalogu w zmiennej $PATH
- 19.4. Nadawanie skryptowi nazwy test
- 19.5. Spodziewana zmiana eksportowanych wartości
- 19.6. Brak cudzysłowów w operacjach przypisania wywołuje błędy „command not found”
- 19.7. Wartości pasujące do wzorca są układane w kolejności alfabetycznej
- 19.8. Potoki powołują podpowłoki
- 19.9. Uzdrawianie terminala
- 19.10. Usuwanie plików z użyciem pustej zmiennej
- 19.11. Niestandardowe zachowanie instrukcji printf
- 19.12. Sprawdzanie składni skryptu powłoki
- 19.13. Śledzenie przebiegu skryptów
- 19.14. Unikanie komunikatów „command not found” podczas korzystania z funkcji
- 19.15. Pomyłki w stosowaniu symboli wieloznacznych powłoki i wyrażeń regularnych
-
A. Podręczna pomoc
- Wywołanie powłoki bash
- Dostosowanie znaku zachęty
- Symbole specjalne ANSI
- Polecenia wbudowane i słowa kluczowe
- Wbudowane zmienne powłoki
- Opcje instrukcji set
- Opcje instrukcji shopt
- Zmiana sposobu działania powłoki za pomocą instrukcji set, shopt i zmiennych środowiskowych
- Operatory wyrażeń warunkowych
- Przekierowanie strumieni wejścia-wyjścia
- Opcje i znaki specjalne instrukcji echo
- Instrukcja printf
- Formatowanie daty i czasu z wykorzystaniem funkcji strftime
- Znaki wzorców dopasowywania
- Operatory rozszerzonego mechanizmu dopasowywania do wzorca extglob
- Symbole specjalne polecenia tr
- Składnia pliku konfiguracyjnego mechanizmu readline
- Polecenia trybu emacs
- Polecenia sterujące trybu vi
- Tabela wartości ASCII
- B. Przykłady dołączone do oprogramowania bash
- C. Przetwarzanie poleceń
- D. Kontrola wersji
- E. Kompilacja powłoki bash
- F. O autorach
- Indeks
- Kolofon
- Copyright
Product information
- Title: Bash. Receptury
- Author(s):
- Release date: August 2012
- Publisher(s): Helion
- ISBN: 97888324613786
You might also like
book
Sieci Linux. Receptury
Jak stworzy? sie? opart? o serwery pracuj?ce pod kontrol? Linuksa? Jak uruchomi? serwer VoIP i sie? …
book
Linux. Programowanie systemowe
Wykorzystaj moc Linuksa i twórz funkcjonalne oprogramowanie systemowe!Jak zarz?dza? plikowymi operacjami wej?cia i wyj?cia? Jak zablokowa? …
book
Algorytmy. Almanach
Książka Algorytmy. Almanach to cała wiedza o algorytmach, potrzebna ambitnemu programiście, zebrana w jeden kompletny podręcznik. …
book
Projektowanie interfejsów. Sprawdzone wzorce projektowe
W niniejszym zaktualizowanym wydaniu znajdziesz wzorce do wykorzystania zarówno w aplikacjach mobilnych i mediach społecznościowych, jak …