Jak działa Linux: podręcznik administratora
Book information
Description
Spis treści Podziękowania Wstęp Kto powinien przeczytać tę książkę? Wymagania Jak czytać tę książkę? Ćwiczenia Podział tej książki Co nowego w drugim wydaniu? Kilka słów o terminologii 1. Informacje ogólne 1.1. Poziomy i warstwy abstrakcji w systemie Linux 1.2. Sprzęt: pamięć operacyjna 1.3. Jądro systemu 1.3.1. Zarządzanie procesami 1.3.2. Zarządzanie pamięcią 1.3.3. Sterowniki urządzeń i zarządzanie urządzeniami 1.3.4. Wywołania systemowe 1.4. Przestrzeń użytkownika 1.5. Użytkownicy 1.6. Spojrzenie w przyszłość 2. Podstawowe polecenia i hierarchia katalogów 2.1. Powłoka Bourne’a: /bin/sh 2.2. Korzystanie z powłoki 2.2.1. Okno powłoki 2.2.2. Polecenie cat 2.2.3. Standardowe wejście i wyjście 2.3. Podstawowe polecenia 2.3.1. Polecenie ls 2.3.2. Polecenie cp 2.3.3. Polecenie mv 2.3.4. Polecenie touch 2.3.5. Polecenie rm 2.3.6. Polecenie echo 2.4. Polecenia działające na katalogach 2.4.1. Polecenie cd 2.4.2. Polecenie mkdir 2.4.3. Polecenie rmdir 2.4.4. Rozwijanie nazw (nazwy wieloznaczne) 2.5. Polecenia pośredniczące 2.5.1. grep 2.5.2. Polecenie less 2.5.3. Polecenie pwd 2.5.4. Polecenie diff 2.5.5. Polecenie file 2.5.6. Polecenia find i locate 2.5.7. Polecenia head i tail 2.5.8. Polecenie sort 2.6. Zmienianie hasła i powłoki 2.7. Pliki z kropką 2.8. Zmienne środowiskowe i powłoki 2.9. Ścieżka poleceń 2.10. Znaki specjalne 2.11. Edycja wiersza poleceń 2.12. Edytory tekstu 2.13. Uzyskiwanie pomocy 2.14. Wejście i wyjście powłoki 2.14.1. Standardowy strumień błędów 2.14.2. Przekierowywanie standardowego wejścia 2.15. Prawidłowe odczytywanie komunikatów o błędach 2.15.1. Anatomia uniksowych komunikatów o błędach 2.15.2. Typowe błędy 2.16. Przeglądanie procesów i manipulowanie nimi 2.16.1. Opcje polecenia 2.16.2. Przerywanie działania procesów 2.16.3. Kontrola zadań 2.16.4. Procesy działające w tle 2.17. Tryby plików i uprawnienia 2.17.1. Modyfikowanie uprawnień 2.17.2. Dowiązania symboliczne 2.17.3. Tworzenie dowiązań symbolicznych 2.18. Archiwizowanie i kompresowanie plików 2.18.1. Program gzip 2.18.2. Program tar 2.18.3. Archiwa skompresowane (.tar.gz) 2.18.4. Program zcat 2.18.5. Inne narzędzia kompresujące 2.19. Hierarchia katalogów 2.19.1. Pozostałe katalogi główne 2.19.2. Katalog /usr 2.19.3. Umiejscowienie jądra systemu 2.20. Uruchamianie poleceń przez superużytkownika 2.20.1. Polecenie sudo 2.20.2. Plik /etc/sudoers 2.21. Podsumowanie 3. Urządzenia 3.1. Pliki urządzeń 3.2. Ścieżka urządzeń sysfs 3.3. Polecenie dd i urządzenia 3.4. Podsumowanie nazewnictwa urządzeń 3.4.1. Dyski twarde — /dev/sd* 3.4.2. Napędy CD i DVD: /dev/sr* 3.4.3. Dyski twarde PATA: /dev/hd* 3.4.4. Terminale: /dev/tty*, /dev/pts/* i /dev/tty 3.4.5. Porty szeregowe — /dev/ttyS* 3.4.6. Porty równoległe — /dev/lp0 i /dev/lp1 3.4.7. Urządzenia audio — /dev/dsp, /dev/audio, /dev/snd/* i inne 3.4.8. Tworzenie plików urządzeń 3.5. System udev 3.5.1. System plików devtmpfs 3.5.2. Konfiguracja i działanie procesu udevd 3.5.3. Program udevadm 3.5.4. Monitorowanie urządzeń 3.6. Szczegóły: SCSI i jądro Linuksa 3.6.1. Pamięci masowe USB i protokół SCSI 3.6.2. SCSI i ATA 3.6.3. Ogólne urządzenia SCSI 3.6.4. Wiele metod dostępu do jednego urządzenia 4. Dyski i systemy plików 4.1. Partycjonowanie urządzeń dyskowych 4.1.1. Przeglądanie tablicy partycji 4.1.2. Modyfikowanie tablicy partycji 4.1.3. Geometria dysku i partycji 4.1.4. Dyski SSD 4.2. Systemy plików 4.2.1. Typy systemów plików 4.2.2. Tworzenie systemu plików 4.2.3. Montowanie systemu plików 4.2.4. Identyfikator UUID systemu plików 4.2.5. Buforowanie dysku i systemu plików 4.2.6. Opcje montowania systemów plików 4.2.7. Ponownie montowanie systemu plików 4.2.8. Tabela systemów plików /etc/fstab 4.2.9. Rozwiązania konkurencyjne dla pliku /etc/fstab 4.2.10. Pojemność systemu plików 4.2.11. Sprawdzanie i naprawianie systemów plików 4.2.12. Systemy plików o specjalnym znaczeniu 4.3. Przestrzeń wymiany 4.3.1. Wykorzystywanie partycji jako przestrzeni wymiany 4.3.2. Wykorzystywanie pliku jako przestrzeni wymiany 4.3.3. Jak wielkiej przestrzeni wymiany potrzebuję? 4.4. Spojrzenie w przyszłość: dyski i przestrzeń użytkownika 4.5. Tradycyjny system plików 4.5.1. Przeglądanie szczegółów węzłów inode 4.5.2. Praca z systemami plików w przestrzeni użytkownika 4.5.3. Ewolucja systemów plików 5. Jak uruchamia się Linux? 5.1. Komunikaty rozruchowe 5.2. Inicjowanie jądra i opcje rozruchu 5.3. Parametry jądra 5.4. Programy rozruchowe 5.4.1. Zadania programu rozruchowego 5.4.2. Przegląd programów rozruchowych 5.5. Wprowadzenie do programu GRUB 5.5.1. Przeszukiwanie urządzeń i partycji za pomocą wiersza poleceń programu GRUB 5.5.2. Konfigurowanie programu GRUB 5.5.3. Instalowanie programu GRUB 5.6. Problemy z bezpiecznym rozruchem UEFI 5.7. Ładowanie innych systemów operacyjnych 5.8. Szczegóły programu rozruchowego 5.8.1. Rozruch MBR 5.8.2. Rozruch UEFI 5.8.3. Jak działa GRUB? 6. Uruchamianie przestrzeni użytkownika 6.1. Wprowadzenie do procesu init 6.2. Poziomy uruchomienia System V 6.3. Identyfikowanie rodzaju procesu init 6.4. systemd 6.4.1. Jednostki i typy jednostek 6.4.2. Zależności systemd 6.4.3. Konfiguracja systemd 6.4.4. Praca z systemd 6.4.5. Dodawanie jednostek systemd 6.4.6. Śledzenie i synchronizacja procesów systemd 6.4.7. Uruchamianie na żądanie i zrównoleglanie zasobów 6.4.8. Zgodność systemd z System V 6.4.9. Programy pomocnicze systemd 6.5. Upstart 6.5.1. Procedura inicjowania procesu Upstart 6.5.2. Zadania w procesie Upstart 6.5.3. Konfiguracja Upstart 6.5.4. Działanie procesu Upstart 6.5.5. Protokoły procesu Upstart 6.5.6. Poziomy uruchomienia procesu Upstart i zgodność z System V 6.6. Proces init System V 6.6.1. Proces init w stylu System V: sekwencja poleceń rozruchowych 6.6.2. Farma dowiązań procesu init w stylu System V 6.6.3. run-parts 6.6.4. Sterowanie procesem init w stylu System V 6.7. Wyłączanie systemu 6.8. Początkowy system plików w pamięci RAM 6.9. Rozruch awaryjny i tryb pojedynczego użytkownika 7. Konfiguracja systemu: rejestrowanie, czas systemowy, zadania wsadowe i użytkownicy 7.1. Struktura katalogu /etc 7.2. Rejestrowanie dzienników systemowych 7.2.1. Rejestrator systemowy 7.2.2. Pliki konfiguracyjne 7.3. Pliki związane z zarządzaniem użytkownikami 7.3.1. Plik /etc/passwd 7.3.2. Użytkownicy specjalni 7.3.3. Plik /etc/shadow 7.3.4. Manipulowanie użytkownikami i hasłami 7.3.5. Praca z grupami 7.4. Programy getty i login 7.5. Ustawianie czasu 7.5.1. Reprezentacja czasu jądra i strefy czasowe 7.5.2. Czas sieciowy 7.6. Planowanie powtarzalnych zadań w programie cron 7.6.1. Instalowanie plików crontab 7.6.2. Systemowe pliki crontab 7.6.3. Przyszłość narzędzia cron 7.7. Planowanie jednorazowych zadań w programie at 7.8. Identyfikatory użytkowników i przełączanie ich 7.8.1. Prawo właściciela procesu, efektywny identyfikator użytkownika, rzeczywisty identyfikator użytkownika i zapisany identyfikator użytkownika 7.9. Identyfikowanie i uwierzytelnianie użytkowników 7.9.1. Użycie bibliotek do uzyskiwania informacji o użytkownikach 7.10. System PAM 7.10.1. Konfiguracja systemu PAM 7.10.2. Uwagi dotyczące systemu PAM 7.10.3. System PAM i hasła 7.11. Spojrzenie w przyszłość 8. Wykorzystanie procesów i zasobów 8.1. Śledzenie procesów 8.2. Wyszukiwanie otwartych plików programem lsof 8.2.1. Analizowanie danych wyjściowych polecenia lsof 8.2.2. Użycie polecenia lsof 8.3. Śledzenie działania programu i wywołań systemowych 8.3.1. Polecenie strace 8.3.2. Polecenie ltrace 8.4. Wątki 8.4.1. Procesy jednowątkowe i wielowątkowe 8.4.2. Wyświetlanie wątków 8.5. Wprowadzenie do monitorowania zasobów 8.6. Pomiar czasu procesora 8.7. Nadawanie procesom priorytetów 8.8. Średnie obciążenia 8.8.1. Użycie polecenia uptime 8.8.2. Wysokie obciążenia 8.9. Pamięć 8.9.1. Zasady działania pamięci 8.9.2. Błędy stron 8.10. Monitorowanie wydajności procesora i pamięci za pomocą polecenia vmstat 8.11. Monitorowanie operacji wejścia-wyjścia 8.11.1. Użycie narzędzia iostat 8.11.2. Wykorzystanie i monitorowanie urządzeń — narzędzie iotop 8.12. Monitorowanie poszczególnych procesów za pomocą narzędzia pidstat 8.13. Dodatkowe zagadnienia 9. Sieć i jej konfiguracja 9.1. Podstawy dotyczące sieci 9.1.1. Pakiety 9.2. Warstwy sieciowe 9.3. Warstwa internetowa 9.3.1. Wyświetlanie adresu IP używanego komputera 9.3.2. Podsieci 9.3.3. Typowe maski podsieci i notacja CIDR 9.4. Trasy i tabela routingu jądra 9.4.1. Brama domyślna 9.5. Podstawowe narzędzia protokołu ICMP i systemu DNS 9.5.1. ping 9.5.2. Program traceroute 9.5.3. DNS i host 9.6. Warstwa fizyczna i Ethernet 9.7. Interfejsy sieciowe jądra 9.8. Wprowadzenie do konfiguracji interfejsów sieciowych 9.8.1. Ręczne dodawanie i usuwanie tras 9.9. Konfiguracja sieci aktywowana podczas rozruchu 9.10. Problemy z konfiguracją sieci ręczną i aktywowaną podczas rozruchu 9.11. Menedżery konfiguracji sieciowych 9.11.1. Działanie narzędzia NetworkManager 9.11.2. Interakcja z narzędziem NetworkManager 9.11.3. Konfiguracja narzędzia NetworkManager 9.12. Rozpoznawanie nazw hostów 9.12.1. Plik /etc/hosts 9.12.2. Plik resolv.conf 9.12.3. Buforowanie i system DNS bez konfiguracji 9.12.4. Plik /etc/nsswitch.conf 9.13. Host lokalny 9.14. Warstwa transportowa: protokoły TCP i UDP oraz usługi 9.14.1. Porty TCP i połączenia 9.14.2. Ustanawianie połączeń TCP 9.14.3. Numery portów i plik /etc/services 9.14.4. Właściwości protokołu TCP 9.14.5. Protokół UDP 9.15. Ponowna analiza prostej sieci lokalnej 9.16. Protokół DHCP 9.16.1. Klient DHCP w systemie Linux 9.16.2. Serwery DHCP w systemie Linux 9.17. Konfigurowanie systemu Linux jako routera 9.17.1. Łącza internetowe 9.18. Sieci prywatne 9.19. Translacja adresów sieciowych (maskarada IP) 9.20. Routery i system Linux 9.21. Zapory sieciowe 9.21.1. Podstawy dotyczące linuksowych zapór sieciowych 9.21.2. Konfigurowanie reguł zapory sieciowej 9.21.3. Strategie tworzenia zapór sieciowych 9.22. Ethernet, IP i ARP 9.23. Ethernet bezprzewodowy 9.23.1. iw 9.23.2. Zabezpieczenia sieci bezprzewodowych 9.24. Podsumowanie 10. Usługi i aplikacje sieciowe 10.1. Podstawy usług 10.1.1. Dokładniejsza analiza 10.2. Serwery sieciowe 10.3. Secure Shell (SSH) 10.3.1. Serwer SSHD 10.3.2. Klient SSH 10.4. Demony inetd i xinetd 10.4.1. Wrapper TCP: tcpd, /etc/hosts.allow, /etc/hosts.deny 10.5. Narzędzia diagnostyczne 10.5.1. lsof 10.5.2. tcpdump 10.5.3. netcat 10.5.4. Skanowanie portów 10.6. Zdalne wywoływanie procedur (RPC) 10.7. Zabezpieczenie sieci 10.7.1. Typowe słabości 10.7.2. Źródła danych o zabezpieczeniach 10.8. Spojrzenie w przyszłość 10.9. Gniazda: sposób komunikacji procesów z siecią 10.10. Gniazda domenowe systemu Unix 10.10.1. Korzyści dla projektantów 10.10.2. Wyszczególnianie gniazd domenowych systemu Unix 11. Wprowadzenie do skryptów powłoki 11.1. Podstawy skryptów powłoki 11.1.1. Ograniczenia skryptów powłoki 11.2. Cudzysłowy i literały 11.2.1. Literały 11.2.2. Pojedyncze cudzysłowy 11.2.3. Podwójne cudzysłowy 11.2.4. Przekazywanie literału w postaci znaku pojedynczego cudzysłowu 11.3. Zmienne specjalne 11.3.1. Pojedyncze argumenty: $1, $2… 11.3.2. Liczba argumentów: $# 11.3.3. Wszystkie argumenty: $@ 11.3.4. Nazwa skryptu: $0 11.3.5. Identyfikator procesu: $$ 11.3.6. Kod wyjścia: $? 11.4. Kody wyjścia 11.5. Wyrażenia warunkowe 11.5.1. Obsługa list pustych parametrów 11.5.2. Użycie innych poleceń do testów 11.5.3. Słowo kluczowe elif 11.5.4. Konstrukcje logiczne && i || 11.5.5. Sprawdzanie warunków 11.5.6. Porównywanie ciągów znaków instrukcją case 11.6. Pętle 11.6.1. Pętle for 11.6.2. Pętle while 11.7. Podmiana poleceń 11.8. Zarządzanie plikami tymczasowymi 11.9. Dokumenty miejscowe 11.10. Ważne narzędzia skryptów powłoki 11.10.1. Polecenie basename 11.10.2. Polecenie awk 11.10.3. Polecenie sed 11.10.4. Polecenie xargs 11.10.5. Polecenie expr 11.10.6. Polecenie exec 11.11. Podpowłoki 11.12. Włączanie do skryptów innych plików 11.13. Pobieranie danych od użytkowników 11.14. Kiedy (nie)używać skryptów powłoki? 12. Przenoszenie plików w sieci 12.1. Szybkie wykonywanie kopii 12.2. rsync 12.2.1. Podstawy dotyczące narzędzia rsync 12.2.2. Tworzenie dokładnych kopii struktury katalogów 12.2.3. Jak używać końcowego ukośnika? 12.2.4. Pomijanie plików i katalogów 12.2.5. Integralność transferu, sumy kontrolne i tryby informacyjne 12.2.6. Kompresja 12.2.7. Ograniczanie przepustowości 12.2.8. Przesyłanie plików do naszego komputera 12.2.9. Więcej informacji o programie rsync 12.3. Wprowadzenie do współużytkowania plików 12.4. Współużytkowanie plików za pomocą pakietu Samba 12.4.1. Konfigurowanie serwera 12.4.2. Kontrola dostępu do serwera 12.4.3. Hasła 12.4.4. Uruchamianie serwera 12.4.5. Diagnostyka i pliki dziennika 12.4.6. Konfigurowanie udziału plikowego 12.4.7. Katalogi domowe 12.4.8. Współużytkowanie drukarek 12.4.9. Korzystanie z klientów Samby 12.4.10. Dostęp do plików jako klient 12.5. Klienty NFS 12.6. Dodatkowe ograniczenia i opcje sieciowych usług plikowych 13. Środowiska użytkowników 13.1. Wytyczne dotyczące tworzenia plików uruchomieniowych 13.2. Kiedy należy modyfikować pliki uruchomieniowe? 13.3. Elementy plików uruchamiających powłokę 13.3.1. Ścieżka wyszukiwania poleceń 13.3.2. Ścieżka stron podręcznika man 13.3.3. Symbol zachęty 13.3.4. Aliasy 13.3.5. Maska uprawnień 13.4. Kolejność plików uruchomieniowych i przykłady 13.4.1. Powłoka bash 13.4.2. Powłoka tcsh 13.5. Domyślne ustawienia użytkownika 13.5.1. Domyślne ustawienia powłoki 13.5.2. Edytor 13.5.3. Program stronicujący 13.6. Pułapki w plikach uruchomieniowych 13.7. Dalsze informacje 14. Ogólny przegląd interfejsów użytkownika systemu Linux 14.1. Komponenty interfejsów użytkownika 14.1.1. Menedżery okien 14.1.2. Pakiety narzędziowe 14.1.3. Środowiska interfejsów użytkownika 14.1.4. Aplikacje 14.2. System X Window System 14.2.1. Menedżery wyświetlaczy 14.2.2. Przezroczystość sieci 14.3. Eksplorowanie klientów serwera X 14.3.1. Zdarzenia serwera X 14.3.2. Ustawianie preferencji i dane wejściowe serwera X 14.4. Przyszłość serwera X 14.5. Usługa D-Bus 14.5.1. Instancja sesji i instancja systemowa 14.5.2. Monitorowanie komunikatów usługi D-Bus 14.6. Drukowanie 14.6.1. CUPS 14.6.2. Konwersja formatów i filtry wydruku 14.7. Inne zagadnienia związane z interfejsami użytkownika 15. Narzędzia programistyczne 15.1. Kompilator języka C 15.1.1. Wiele plików źródłowych 15.1.2. Pliki i katalogi nagłówkowe 15.1.3. Konsolidacja z bibliotekami 15.1.4. Biblioteki współużytkowane 15.2. Narzędzie make 15.2.1. Przykładowy plik Makefile 15.2.2. Wbudowane reguły 15.2.3. Końcowe budowanie programu 15.2.4. Aktualizowanie 15.2.5. Argumenty i opcje wiersza poleceń 15.2.6. Standardowe makra i zmienne 15.2.7. Typowe cele kompilacji 15.2.8. Organizowanie pliku Makefile 15.3. Debuggery 15.4. Lex i Yacc 15.5. Języki skryptowe 15.5.1. Python 15.5.2. Perl 15.5.3. Pozostałe języki skryptowe 15.6. Java 15.7. Spojrzenie w przyszłość: kompilowanie pakietów 16. Wprowadzenie do kompilowania oprogramowania z kodu źródłowego C 16.1. Systemy do tworzenia oprogramowania 16.2. Rozpakowywanie pakietów kodu źródłowego języka C 16.2.1. Od czego zacząć? 16.3. GNU autoconf 16.3.1. Przykład użycia systemu GNU autoconf 16.3.2. Instalacja za pomocą narzędzia do tworzenia pakietów 16.3.3. Opcje skryptu configure 16.3.4. Zmienne środowiskowe 16.3.5. Cele tworzone przez system autoconf 16.3.6. Pliki dziennika systemu autoconf 16.3.7. pkg-config 16.4. Praktyki instalacyjne 16.4.1. Gdzie instalować? 16.5. Stosowanie poprawek 16.6. Rozwiązywanie problemów z kompilowaniem i instalowaniem 16.6.1. Częste błędy 16.7. Spojrzenie w przyszłość 17. Budowanie na fundamentach 17.1. Serwery WWW i aplikacje internetowe 17.2. Bazy danych 17.2.1. Typy baz danych 17.3. Wirtualizacja 17.4. Obliczenia rozproszone i na żądanie 17.5. Systemy wbudowane 17.6. Końcowe uwagi Bibliografia Skorowidz
Similar books
Wicked Cool PHP: Real-World Scripts that Make Difficult Things Possible
2008 · PDF
The Linux Problem Solver: Hands-On Solutions for Systems Administrators
2000 · PDF
How Linux Works, 3rd Edition: What Every Superuser Should Know
2021 · MOBI
How Linux Works
Media, culture, and the modern African American freedom struggle
2001 · PDF
How Linux Works, 2nd Edition: What Every Superuser Should Know
2014 · PDF
How Linux Works, 2nd Edition: What Every Superuser Should Know
2014 · PDF
Akváriumi halak és növények
1999 · PDF