Linux. Podręcznik dewelopera. Rzeczowy przewodnik po wierszu poleceń i innych narzędziach (ebook) Piekary Śląskie

To zaskakujące, ale wielu inżynierów oprogramowania wciąż nie czuje się dobrze w pracy z systemami uniksowymi. A przecież są one wszechobecne: od środowiska pracy (macOS), przez procesy tworzenia oprogramowania (kontenery Dockera), po narzędzia kompilacji i automatyzacji (potoki ciągłej integracji, …

od 47,40 Najbliżej: 21 km

Liczba ofert: 1

Oferta sklepu

Opis

To zaskakujące, ale wielu inżynierów oprogramowania wciąż nie czuje się dobrze w pracy z systemami uniksowymi. A przecież są one wszechobecne: od środowiska pracy (macOS), przez procesy tworzenia oprogramowania (kontenery Dockera), po narzędzia kompilacji i automatyzacji (potoki ciągłej integracji, GitHub), a także środowiska produkcyjne (serwery Linuksa, kontenery). Owszem, opanowanie pracy z Linuksem wymaga nieco wysiłku i czasu, szybko się jednak przekonasz, jak wiele korzyści przynosi!Dzięki tej niezwykle praktycznej książce, napisanej z myślą o inżynierach oprogramowania, a nie administratorach Linuksa, zdobędziesz umiejętności, z których natychmiast skorzystasz w codziennych zadaniach programisty. Informacje teoretyczne ograniczono do niezbędnego minimum pozwalającego zrozumieć zasady pracy z wierszem poleceń. W ten sposób szybko nauczysz się sprawnie i wygodnie działać w środowisku uniksowym. Dowiesz się także, jak można zastosować te umiejętności w różnych kontekstach, takich jak tworzenie obrazów Dockera i praca z nimi, automatyzacja zadań za pomocą skryptów czy rozwiązywanie problemów w środowiskach produkcyjnych. Efekt? Zaoszczędzisz czas i staniesz się mistrzem wiersza poleceń!W książce:działanie Linuxa i jego powłokinajużyteczniejsze sztuczki i narzędziatworzenie potężnych narzędzi dostosowanych do konkretnych potrzebefektywne metody pracy z Dockerem, SSH i wierszem poleceńwygodne wyszukiwanie danych w dziennikach zdarzeńradzenie sobie z typowymi sytuacjami w środowisku uniksowym, sprawiającymi trudności innym programistomLinux bez tajemnic ... Twoja przewaga w programowaniu! Spis treści: O autorach O korektorach merytorycznych WprowadzenieRozdział 1. Jak działa wiersz poleceń? Na początku był... REPL Składnia wiersza poleceń (odczyt) Wiersz poleceń i powłoka Skąd powłoka wie, co uruchomić? (ewaluowanie) Krótka definicja interfejsu POSIX Podstawowe umiejętności wiersza poleceń Podstawy systemu plików Uniksa Bezwzględne i względne ścieżki plików Rozglądanie się po systemie plików - nawigacja w wierszu poleceń Poruszanie się po systemie plików Odczytywanie plików Wprowadzanie zmian Uzyskiwanie pomocy Autouzupełnianie powłoki Podsumowanie Rozdział 2. Praca z procesami Podstawy procesów Z czego składa się proces Linuksa? Identyfikator procesu (PID) Efektywny identyfikator użytkownika (EUID) i efektywny identyfikator grupy (EGID) Zmienne środowiskowe Katalog roboczy Praktyczne polecenia do pracy z procesami systemu Linux Zaawansowane koncepcje i narzędzia związane z procesami Sygnały lsof - wyświetlanie uchwytów plików otwartych przez proces Dziedziczenie Przegląd - przykładowa sesja rozwiązywania problemów Podsumowanie Rozdział 3. Zarządzanie usługami za pomocą usługi systemd Podstawy init Procesy i usługi Polecenia systemctl Sprawdzanie statusu usługi Uruchamianie usługi Zatrzymywanie usługi Restartowanie usługi Ponowne załadowywanie usługi Enable i disable Kilka słów na temat Dockera Podsumowanie Rozdział 4. Korzystanie z historii powłoki Historia powłoki Pliki konfiguracyjne powłoki Pliki historii Przeszukiwanie historii powłoki Wyjątki Wykonywanie poprzednich poleceń za pomocą ! Ponowne uruchamianie polecenia z tymi samymi argumentami Dołączanie do polecenia jakiegoś polecenia z historii Przeskakiwanie na początek lub koniec bieżącej linii Podsumowanie Rozdział 5. Wprowadzenie do plików Pliki w Linuksie - absolutne podstawy Pliki tekstowe Co to jest plik binarny? Znaki zakończenia linii Drzewo systemu plików Podstawowe operacje systemu plików ls pwd cd touch less tail mv cp mkdir rm Edycja plików Typy plików Dowiązania symboliczne Dowiązania twarde Polecenie file Zaawansowane operacje na plikach Wyszukiwanie zawartości pliku za pomocą narzędzia grep Wyszukiwanie plików za pomocą narzędzia find Zaawansowane zagadnienia systemu plików FUSE - jeszcze więcej zabawy z systemem plików Uniksa Podsumowanie Rozdział 6. Edycja plików w wierszu poleceń Nano Instalowanie nano Ściągawka z nano Vi(m) Polecenia vi/vima Tryby Wskazówki dotyczące nauki edytora vi(m) Wiązania vima w innym oprogramowaniu Edytowanie pliku, do którego nie masz uprawnień Ustawianie preferowanego edytora Podsumowanie Rozdział 7. Użytkownicy i grupy Czym jest użytkownik? Root kontra reszta świata Polecenie sudo Czym jest grupa? Miniprojekt: zarządzanie użytkownikami i grupami Tworzenie użytkownika Tworzenie grupy Modyfikowanie użytkownika Zagadnienia zawansowane, czyli czym tak naprawdę jest użytkownik? Metadane i atrybuty użytkownika Kilka słów na temat skryptów Podsumowanie Rozdział 8. Własność i uprawnienia Odszyfrowywanie długiego listingu Atrybuty pliku Typ pliku Uprawnienia Liczba dowiązań twardych Własność użytkownika Własność grupy Rozmiar pliku Czas modyfikacji Nazwa pliku Własność Uprawnienia Zapisywanie uprawnień za pomocą liczb (ósemkowych) Typowe uprawnienia Zmiana własności (chown) i uprawnień (chmod) chown chmod Podsumowanie Rozdział 9. Zarządzanie zainstalowanym oprogramowaniem Praca z pakietami oprogramowania Aktualizowanie lokalnej pamięci podręcznej stanem repozytorium Wyszukiwanie pakietu Instalowanie pakietu Uaktualnianie wszystkich pakietów, które mają dostępne aktualizacje Usuwanie pakietu (i jego wszelkich zależności, pod warunkiem że nie są wykorzystywane przez inne pakiety) Kwerendowanie zainstalowanych pakietów Wymagana ostrożność - curl | bash Kompilowanie zewnętrznego oprogramowania ze źródła Przykład: kompilowanie i instalowanie narzędzia htop Podsumowanie Rozdział 10. Konfigurowanie oprogramowania Hierarchia konfiguracji Argumenty wiersza poleceń Zmienne środowiskowe Pliki konfiguracyjne Konfiguracja na poziomie systemu w katalogu /etc/ Konfiguracja na poziomie użytkownika w katalogu ~/.config Jednostki systemd Tworzenie własnej usługi Kilka zdań na temat konfiguracji w Dockerze Podsumowanie Rozdział 11. Potoki i przekierowanie Deskryptory plików Do czego odwołują się te deskryptory plików? Przekierowywanie wejścia i wyjścia (praca z deskryptorami plików dla zabawy i potencjalnych korzyści) Przekierowywanie danych wejściowych - < Przekierowywanie danych wyjściowych - > Przekierowywanie błędów za pomocą 2> Łączenie poleceń za pomocą potoków (|) Polecenia z wieloma potokami Narzędzia CLI, które należy znać cut sort uniq wc head tail tee awk sed Praktyczne wzorce potoków "Top X" z licznikiem curl | bash Filtrowanie i wyszukiwanie za pomocą narzędzia grep grep i tail do monitorowania dzienników find i xargs do wykonywania operacji na grupach plików sort, uniq i odwrotne sortowanie liczbowe do przeprowadzania analizy danych awk i sort do przeformatowywania danych i przetwarzania opartego na polach sed i tee do edytowania i tworzenia kopii zapasowych Zagadnienia zaawansowane: sprawdzanie deskryptorów plików Podsumowanie Rozdział 12. Automatyzacja zadań za pomocą skryptów powłoki Dlaczego potrzebujesz podstaw pisania skryptów powłoki Bash? Podstawy Zmienne Pobieranie Porównanie Basha z innymi powłokami Shebangi i wykonywalne pliki tekstowe Typowe ustawienia powłoki Bash (opcje i argumenty) /usr/bin/env Znaki specjalne i znaki ucieczki Podstawianie poleceń Testowanie Operatory testowe [[ testowanie plików i łańcuchów znaków ]] (( testowanie arytmetyczne )) Wyrażenia warunkowe: if/then/else if-else Pętle Pętle w stylu C for.in While Eksportowanie zmiennych Funkcje Preferuj zmienne lokalne Przekierowanie wejścia i wyjścia < - przekierowanie wejścia > i >> - przekierowanie wyjścia Zastosowanie 2>&1 do przekierowywania STDERR i STDOUT Składnia interpolacji zmiennej - ${} Ograniczenia skryptów powłoki Podsumowanie Źródła Rozdział 13. Bezpieczny dostęp zdalny za pomocą SSH Elementarz kryptografii klucza publicznego Szyfrowanie komunikatów Podpisywanie komunikatów Klucze SSH Wyjątki od zasad Logowanie i uwierzytelnianie Projekt praktyczny: konfigurowanie logowania opartego na kluczu na zdalnym serwerze Krok 1. Otwórz terminal na kliencie SSH (nie na serwerze) Krok 2. Wygeneruj parę kluczy Krok 3. Skopiuj klucz publiczny na serwer Krok 4. Przetestuj to! Konwersja kluczy SSH2 na format OpenSSH Co chcemy osiągnąć? Jak przekonwertować klucz w formacie SSH2 na OpenSSH? Na odwrót: konwersja kluczy OpenSSH na format SSH2 Agent SSH Typowe błędy SSH i argument -v (verbose) Przesyłanie plików SFTP SCP Przydatne przykłady Tunele Przekierowanie lokalne Serwer pośredni (proxy) Plik konfiguracyjny Podsumowanie Rozdział 14. Kontrola wersji za pomocą Gita Trochę informacji na temat Gita Czym jest rozproszony system kontroli wersji? Podstawy Gita Pierwsza konfiguracja Inicjalizowanie nowego repozytorium Gita Wprowadzanie i obserwowanie zmian Przechowywanie i zatwierdzanie zmian Opcjonalne dodawanie zdalnego repozytorium Gita Wysyłanie i pobieranie Klonowanie repozytorium Terminologia Repozytorium Gałąź Tag Scalanie Konflikt scalania Stash Pull request Cherry-picking Bisecting Rebasing Najlepsze praktyki dotyczące komunikatów commitów Dobre komunikaty o commitach Graficzne interfejsy użytkownika Przydatne aliasy powłoki GitHub dla ubogich Uwagi wstępne 1. Łączenie z serwerem 2. Instalowanie Gita 3. Inicjalizowanie repozytorium 4. Klonowanie repozytorium 5. Dokonaj edycji projektu i wyślij zmiany Podsumowanie Rozdział 15. Konteneryzacja aplikacji za pomocą Dockera Dlaczego kontenery działają jako pakiety? Wymagania wstępne - instalacja Dockera Przyspieszony kurs Dockera Tworzenie obrazów za pomocą pliku Dockerfile Polecenia kontenera docker run docker ps docker exec docker stop Projekt Dockera: kontener aplikacji utworzonej w języku Python i frameworku Flask 1. Konfigurowanie aplikacji 2. Tworzenie obrazu Dockera 3. Uruchomienie kontenera z obrazu Porównanie kontenerów i maszyn wirtualnych Krótka uwaga na temat repozytoriów obrazów Dockera Bolesne lekcje dotyczące kontenerów Rozmiar obrazu Standardowa biblioteka C Laptop nie jest środowiskiem produkcyjnym - zewnętrzne zależności Teoria kontenerów: przestrzeń nazw Jak przeprowadzać operacje na kontenerach? Podsumowanie Rozdział 16. Monitorowanie dzienników aplikacji Wprowadzenie do rejestrowania Rejestrowanie w Linuksie bywa. dziwne Wysyłanie komunikatów dziennika journald usługi systemd Przykładowe polecenia journalctl Śledzenie aktywnych dzienników dla jednostki Filtrowanie według czasu Filtrowanie pod kątem określonego poziomu dziennika Sprawdzanie dzienników z poprzedniego rozruchu Komunikaty jądra Rejestrowanie w kontenerach Dockera Podstawy dziennika syslog Kategorie rejestrowania Poziomy dotkliwości Konfiguracja i implementacje Wskazówki dotyczące rejestrowania Słowa kluczowe podczas korzystania z logowania ustrukturyzowanego Poziomy dotkliwości Rejestrowanie scentralizowane PodsumowanieRozdział 17. Mechanizm równoważenia obciążenia i HTTP Podstawowa terminologia Brama Upstream Najczęściej pojawiające się błędne przekonania na temat protokołu HTTP Kody stanu HTTP Nagłówki HTTP Wersje protokołu HTTP Mechanizm równoważenia obciążenia CORS Podsumowanie

Specyfikacja

Podstawowe informacje

Autor
  • David Cohen, Christian Sturm
Wybrane wydawnictwa
  • Helion