Linux
Wprowadzenie do wiersza poleceń
W latach dziewięćdziesiątych ubiegłego stulecia obsługiwanie komputera za pomocą
komend wpisywanych w linii poleceń było całkiem naturalne. Ten stan rzeczy uległ
zmianie wraz z wprowadzeniem systemu operacyjnego Windows 95, jednak wciąż wiele zadań
łatwiej i szybciej można wykonać przy użyciu linii poleceń. Największy potencjał
drzemie w linii poleceń systemu operacyjnego Linux. Przekonaj się, jak go wykorzystać i
stać się wirtuozem klawiatury!
Jeżeli jesteś użytkownikiem systemu Linux i pracujesz z wykorzystaniem graficznego
interfejsu użytkownika, to najwyższa pora poznać linię poleceń. Sięgnij po tę
książkę i daj się ponieść eleganckim komendom, które zebrane w jedną całość
potrafią zdziałać cuda. Autor poprowadzi Cię od pierwszych znaków wpisanych w
terminalu do pełnych programów w Bashu, najpopularniejszej powłoce Linuksa. Na
samym początku nauczysz się tworzyć pliki, katalogi oraz nawigować po zasobach dysku.
W kolejnych rozdziałach przekonasz się, jak pomocne mogą być skrypty powłoki oraz w
jaki sposób administrować systemem z poziomu linii poleceń. Ponadto opanujesz obsługę
narzędzi do pobierania danych z serwerów FTP, wykorzystasz możliwość przekierowywania
strumieni oraz dowiesz się, do czego służy edytor vi. Ta książka wprowadzi Cię na
kolejny poziom wtajemniczenia w obsłudze systemu Linux!
Przeglądając krótkie, łatwo przyswajalne rozdziały niniejszej książki dowiesz się
jak:
Tworzyć i usuwać pliki, katalogi i dowiązania symboliczne.
Administrować systemem, włącznie z obsługą zagadnień sieciowych, instalacją
pakietów oraz zarządzaniem procesami.
Używać standardowego strumienia wejścia i wyjścia, przekierowań i potoków.
Edytować pliki w programie Vi, najpopularniejszym edytorze tekstu na świecie.
Pisać skrypty powłoki do automatyzacji najpopularniejszych lub nudnych zadań.
Ciąć i kroić pliki tekstowe za pomocą poleceń cut, paste, grep, patch i sed.
Gdy minie już pierwszy „szok powłoki”, zauważysz, że wiersz poleceń jest
naturalnym i pełnym ekspresji środkiem komunikacji z komputerem. Nie zdziw się tylko,
jeśli okaże się, że mysz zaczyna się pokrywać warstwą kurzu.
Podziękowania (19)
Wstęp (21)
CZĘŚĆ I NAUKA POWŁOKI
1. Czym jest powłoka? (29)
- Emulatory terminali (29)
- Pierwsze kroki (30)
- Historia poleceń (30)
- Przesuwanie kursora (30)
- Pierwsze polecenia (31)
- Kończenie sesji terminala (32)
2. Nawigacja (33)
- Hierarchia systemu plików (33)
- Bieżący katalog roboczy (34)
- Wypisywanie zawartości katalogu (35)
- Zmienianie bieżącego katalogu roboczego (35)
- Ścieżki bezwzględne (35)
- Ścieżki względne (36)
- Przydatne skróty (37)
3. Przegląd systemu (39)
- Więcej zabawy z ls (39)
- Opcje i argumenty (40)
- Długi format pod lupą (41)
- Sprawdzanie typu pliku za pomocą polecenia type (42)
- Wyświetlanie zawartości pliku za pomocą polecenia less (43)
- Wycieczka z przewodnikiem (44)
- Dowiązania symboliczne (45)
4. Manipulowanie plikami i katalogami (49)
- Wieloznaczniki (50)
- mkdir - tworzenie katalogów (52)
- cp - kopiowanie plików i katalogów (52)
- mv - przenoszenie plików i zmiana ich nazw (53)
- rm - usuwanie plików i katalogów (54)
- ln - tworzenie dowiązań (55)
- Dowiązania twarde (56)
- Dowiązania symboliczne (56)
- Zbudujmy plac zabaw (57)
- Tworzenie katalogów (57)
- Kopiowanie plików (57)
- Przenoszenie plików i zmiana ich nazw (58)
- Tworzenie dowiązań twardych (59)
- Tworzenie dowiązań symbolicznych (60)
- Usuwanie plików i katalogów (61)
- Uwagi końcowe (63)
5. Polecenia (65)
- Czym właściwie są polecenia? (65)
- Identyfikowanie poleceń (66)
- type - wyświetlanie typu polecenia (66)
- which - wyświetlanie lokalizacji pliku wykonywalnego (66)
- Pobieranie dokumentacji polecenia (67)
- help - uzyskiwanie pomocy dla poleceń wbudowanych w powłokę (67)
- --help - wyświetlanie informacji o użyciu (68)
- man - wyświetlanie podręcznika programu (68)
- apropos - wyświetlanie odpowiednich poleceń (69)
- whatis - wyświetlanie bardzo krótkiego opisu polecenia (70)
- info - wyświetlanie informacji o programie (70)
- README i inne pliki dokumentacji programu (72)
- Tworzenie własnych poleceń z wykorzystaniem polecenia alias (72)
- Powrót do starych przyjaciół (74)
6. Przekierowania (75)
- Standardowy strumień wejścia, wyjścia oraz błędów (76)
- Przekierowanie standardowego strumienia wyjścia (76)
- Przekierowanie standardowego strumienia błędów (78)
- Przekierowanie standardowego strumienia wyjścia i standardowego strumienia błędów do
jednego pliku (78)
- Usuwanie niepotrzebnych danych wynikowych (79)
- Przekierowanie standardowego strumienia wejścia (80)
- Potoki (82)
- Filtry (82)
- uniq - zgłaszanie lub pomijanie powtarzających się wierszy (83)
- wc - wypisywanie liczników wierszy, słów oraz bajtów (83)
- grep - wypisywanie wierszy pasujących do wzorca (83)
- head (tail) - zwracanie początku (końca) pliku (84)
- tee - pobieranie danych ze standardowego strumienia wejścia, przekazywanie ich do
standardowego strumienia wyjścia i do plików (85)
- Uwagi końcowe (86)
7. Spojrzenie na świat z punktu widzenia powłoki (89)
- Interpretacja poleceń (89)
- Interpretacja ścieżek (90)
- Interpretacja tyldy (91)
- Interpretacja wyrażeń arytmetycznych (92)
- Interpretacja nawiasów (93)
- Interpretacja parametrów (94)
- Podstawianie wyników poleceń (95)
- Cytowanie (96)
- Cudzysłowy podwójne (96)
- Pojedyncze cudzysłowy (98)
- Interpretowanie znaków (99)
- Uwagi końcowe (100)
8. Zaawansowane sztuczki związane z klawiaturą (101)
- Edytowanie wiersza poleceń (102)
- Przemieszczanie kursora (102)
- Modyfikowanie tekstu (102)
- Wycinanie i wklejanie tekstu (103)
- Uzupełnianie (104)
- Korzystanie z historii (105)
- Przeszukiwanie historii (106)
- Interpretacja historii (107)
- Uwagi końcowe (108)
9. Uprawnienia (109)
- Właściciele, członkowie grupy i wszyscy pozostali (110)
- Odczyt, zapis i wykonywanie (111)
- chmod - zmiana trybu pliku (113)
- Ustawianie trybu pliku z poziomu interfejsu graficznego (116)
- umask - ustawianie uprawnień domyślnych (116)
- Zmiana tożsamości (119)
- su - uruchamianie powłoki z identyfikatorem zastępczego użytkownika i grupy (120)
- sudo - wykonywanie polecenia jako inny użytkownik (121)
- chown - zmiana właściciela pliku i grupy (122)
- chgrp - zmiana przypisania do grupy (123)
- Ćwiczenia dotyczące własnych uprawnień (124)
- Zmiana własnego hasła (126)
10. Procesy (127)
- Jak działa proces? (128)
- Wyświetlanie procesów za pomocą polecenia ps (128)
- Dynamiczne wyświetlanie procesów za pomocą polecenia top (130)
- Sterowanie procesami (131)
- Zatrzymywanie procesu (132)
- Umieszczanie procesu w tle (133)
- Przywracanie procesu do pierwszego planu (134)
- Zatrzymywanie (wstrzymywanie) procesu (134)
- Sygnały (135)
- Wysyłanie sygnałów do procesów za pomocą polecenia kill (135)
- Wysyłanie sygnałów do wielu procesów za pomocą polecenia killall (137)
- Więcej poleceń dotyczących procesów (138)
CZĘŚĆ II KONFIGURACJA I ŚRODOWISKO
11. Środowisko (141)
- Co jest przechowywane w środowisku? (141)
- Przeglądanie środowiska (142)
- Niektóre ciekawe zmienne (143)
- W jaki sposób konfigurowane jest środowisko? (143)
- Powłoki logowania i niesłużące do logowania (144)
- Czym jest plik startowy? (145)
- Modyfikowanie środowiska (147)
- Które pliki należy zmodyfikować? (147)
- Edytory tekstu (147)
- Korzystanie z edytora tekstu (148)
- Aktywowanie naszych zmian (150)
- Uwagi końcowe (151)
12. Łagodne wprowadzenie do vi (153)
- Dlaczego należy się nauczyć vi? (153)
- Krótkie wprowadzenie (154)
- Uruchamianie i zatrzymywanie vi (154)
- Tryby edycji (155)
- Włączanie trybu edycji (156)
- Zapisywanie pracy (157)
- Zmiana położenia kursora (158)
- Podstawowa edycja (159)
- Dodawanie tekstu (159)
- Otwieranie wiersza (160)
- Usuwanie tekstu (160)
- Wycinanie, kopiowanie i wklejanie tekstu (162)
- Łączenie wierszy (163)
- Szukanie i zastępowanie (163)
- Przeszukiwanie wiersza (163)
- Przeszukiwanie całego pliku (164)
- Wyszukiwanie i zastępowanie globalne (164)
- Edycja wielu plików (166)
- Przełączanie między plikami (166)
- Otwieranie do edycji dodatkowych plików (167)
- Kopiowanie treści z jednego pliku do drugiego (168)
- Wstawianie treści całego pliku do drugiego pliku (169)
- Zapisywanie zmian (169)
13. Dostosowywanie znaku zachęty (171)
- Anatomia znaku zachęty (171)
- Alternatywne projekty znaków zachęty (172)
- Dodawanie koloru (174)
- Przesuwanie kursora (176)
- Zapisywanie znaku zachęty (177)
- Uwagi końcowe (177)
CZĘŚĆ III POPULARNE ZADANIA I PODSTAWOWE NARZĘDZIA
14. Zarządzanie pakietami (181)
- Systemy zarządzania pakietami (182)
- Jak działają systemy zarządzania pakietami? (182)
- Pliki pakietu (182)
- Repozytoria (183)
- Zależności (183)
- Narzędzia zarządzania pakietami wysokiego i niskiego poziomu (184)
- Popularne zadania zarządzania pakietami (184)
- Szukanie pakietu w repozytorium (184)
- Instalowanie pakietu z repozytorium (185)
- Instalowanie pakietu z wykorzystaniem pliku pakietu (185)
- Usuwanie pakietu (186)
- Uaktualnianie pakietów z repozytorium (186)
- Uaktualnianie pakietów za pomocą pliku pakietu (186)
- Wyświetlanie zainstalowanych pakietów (187)
- Sprawdzanie, czy pakiet jest zainstalowany (187)
- Wyświetlanie informacji o zainstalowanym pakiecie (188)
- Sprawdzanie, który pakiet zainstalował plik (188)
- Uwagi końcowe (188)
15. Nośniki danych (191)
- Montowanie i odmontowywanie urządzeń pamięciowych (192)
- Wyświetlanie listy zamontowanych systemów plików (193)
- Ustalanie nazwy urządzenia (196)
- Tworzenie nowych systemów plików (199)
- Manipulowanie partycjami z wykorzystaniem fdisk (200)
- Tworzenie nowego systemu plików z wykorzystaniem mkfs (202)
- Testowanie i naprawa systemów plików (203)
- Formatowanie dyskietek (204)
- Przenoszenie danych bezpośrednio do urządzeń oraz z urządzeń (204)
- Tworzenie obrazów dysków CD (205)
- Tworzenie obrazu kopii dysku CD (205)
- Tworzenie obrazu na podstawie zbioru plików (206)
- Zapisywanie obrazów CD (206)
- Bezpośrednie montowanie obrazu ISO (206)
- Opróżnianie zapisywalnego dysku CD (207)
- Zapisywanie obrazu (207)
- Dodatkowe informacje (207)
16. Zagadnienia sieciowe (209)
- Sprawdzanie i monitorowanie sieci (210)
- ping - wysyłanie pakietu specjalnego do hosta sieciowego (210)
- traceroute - śledzenie trasy pakietu sieciowego (211)
- netstat - sprawdzanie ustawień sieci i statystyk (212)
- Przenoszenie plików poprzez sieć (213)
- ftp - transfer plików z wykorzystaniem protokołu transferu plików (214)
- lftp - ulepszony ftp (215)
- wget - nieinteraktywny program do pobierania plików z sieci (216)
- Bezpieczna komunikacja z hostami zdalnymi (216)
- ssh - bezpieczne logowanie do komputerów zdalnych (216)
- scp i sftp - bezpieczny transfer plików (220)
17. Szukanie plików (223)
- locate - łatwy sposób szukania plików (224)
- find - trudny sposób wyszukiwania plików (225)
- Testy (226)
- Operatory (227)
- Akcje (230)
- Powrót do placu zabaw (234)
- Opcje (237)
18. Archiwizacja i kopie zapasowe (239)
- Kompresowanie plików (240)
- gzip - kompresowanie i wyodrębnianie plików (240)
- bzip2 - wyższy poziom kompresji kosztem szybkości (242)
- Archiwizacja plików (243)
- tar - narzędzie do archiwizacji taśmowej (243)
- zip - pakowanie i kompresowanie plików (248)
- Synchronizacja plików i katalogów (251)
- rsync - synchronizacja zdalnych plików i katalogów (251)
- Korzystanie z polecenia rsync poprzez sieć (253)
19. Wyrażenia regularne (255)
- Co to są wyrażenia regularne? (255)
- grep - wyszukiwanie w tekście (256)
- Metaznaki i literały (258)
- Znak dowolny (258)
- Kotwice (259)
- Wyrażenia w nawiasach i klasy znaków (260)
- Zaprzeczenie (260)
- Tradycyjne zakresy znaków (261)
- Klasy znaków POSIX (262)
- Podstawowy POSIX a rozszerzone wyrażenia regularne (264)
- Alternatywa (266)
- Kwantyfikatory (267)
- ? - dopasowuje element zero lub jeden raz (267)
- * - dopasowuje element zero lub więcej razy (268)
- + - dopasowuje element raz lub więcej razy (269)
- {} - dopasowuje element określoną liczbę razy (269)
- Zaprzęgamy wyrażenia regularne do pracy (270)
- Sprawdzanie listy telefonicznej za pomocą polecenia grep (270)
- Szukanie brzydkich nazw plików z wykorzystaniem polecenia find (271)
- Wyszukiwanie plików za pomocą polecenia locate (272)
- Wyszukiwanie tekstu za pomocą programów less i vim (272)
- Uwagi końcowe (274)
20. Przetwarzanie tekstu (275)
- Zastosowanie tekstu (276)
- Dokumenty (276)
- Strony WWW (276)
- E-mail (276)
- Wyjście drukarki (276)
- Kod źródłowy programów (277)
- Ponowne odwiedziny u starych przyjaciół (277)
- cat - łączenie plików i wypisywanie ich zawartości w standardowym strumieniu
wyjścia (277)
- sort - sortowanie wierszy plików tekstowych (279)
- uniq - zgłaszanie lub pomijanie powtarzających się wierszy (285)
- Cięcie i krojenie (287)
- cut - usuwanie fragmentów z każdego wiersza plików (287)
- paste - łączenie wierszy w pliku (290)
- join - łączenie dwóch plików na podstawie wspólnego pola (291)
- Porównywanie tekstu (293)
- comm - porównywanie dwóch posortowanych plików wiersz po wierszu (293)
- diff - porównywanie plików wiersz po wierszu (294)
- patch - dołączanie do oryginału pliku z różnicami (296)
- Edycja w locie (298)
- tr - transliterowanie lub usuwanie znaków (298)
- sed - edytor strumieniowy służący do filtrowania i przekształcania tekstu (300)
- aspell - interaktywny program do sprawdzania pisowni (307)
- Uwagi końcowe (310)
- Dodatkowe informacje (311)
21. Formatowanie wyników (313)
- Proste narzędzia formatowania (313)
- nl - wstawianie numerów wierszy (314)
- fold - zawijanie każdego wiersza do określonej długości (317)
- fmt - prosty program do formatowania tekstu (317)
- pr - formatowanie tekstu do druku (320)
- printf - formatowanie i wypisywanie danych (321)
- Systemy formatowania dokumentów (324)
- Rodzina roff i TEX (324)
- groff - system formatowania dokumentów (325)
- Uwagi końcowe (329)
22. Drukowanie (331)
- Krótka historia druku (332)
- Drukowanie w zamierzchłych czasach (332)
- Drukarki oparte na znakach (332)
- Drukarki graficzne (333)
- Drukowanie w systemie Linux (334)
- Przygotowanie plików do druku (335)
- pr - przekształcanie plików tekstowych przeznaczonych do druku (335)
- Przesyłanie zadania drukowania do drukarki (335)
- lpr - drukowanie plików (styl Berkeley) (336)
- lp - drukowanie plików (styl Systemu V) (337)
- Inna opcja - a2ps (337)
- Monitorowanie zadań drukowania i sterowanie nimi (339)
- lpstat - wyświetlanie informacji o stanie drukarki (341)
- lpq - wyświetlanie statusu kolejki drukarki (342)
- lprm i cancel - anulowanie zadań drukowania (342)
23. Kompilowanie programów (343)
- Czym jest kompilowanie? (344)
- Czy wszystkie programy są skompilowane? (345)
- Kompilowanie programu w języku C (346)
- Uzyskiwanie kodu źródłowego (346)
- Sprawdzanie zawartości drzewa źródłowego (348)
- Budowanie programu (349)
- Instalowanie programu (353)
- Uwagi końcowe (353)
CZĘŚĆ IV TWORZENIE SKRYPTÓW POWŁOKI
24. Pisanie pierwszego skryptu (357)
- Czym są skrypty powłoki? (357)
- Jak napisać skrypt powłoki? (358)
- Format pliku skryptu (358)
- Uprawnienia do wykonywania (359)
- Lokalizacja pliku skryptu (359)
- Dobre lokalizacje dla skryptów (361)
- Więcej trików formatowania (361)
- Długie nazwy opcji (361)
- Wcięcia i kontynuacja wierszy (362)
- Uwagi końcowe (363)
25. Rozpoczynanie projektu (365)
- Pierwszy etap - minimalny dokument (365)
- Drugi etap - dodawanie pewnych danych (368)
- Zmienne i stałe (368)
- Tworzenie zmiennych i stałych (369)
- Przypisywanie wartości do zmiennych i stałych (371)
- Dokumenty włączone (372)
- Uwagi końcowe (375)
26. Projektowanie zstępujące (377)
- Funkcje powłoki (378)
- Zmienne lokalne (381)
- Utrzymywanie działania skryptów (382)
- Uwagi końcowe (385)
27. Sterowanie przepływem - rozgałęzienia if (387)
- Wykorzystanie if (388)
- Status wyjścia (388)
- Korzystanie z testu (390)
- Funkcje plikowe (390)
- Funkcje tekstowe (392)
- Funkcje liczbowe (394)
- Nowocześniejsza wersja programu test (395)
- (( )) - przeznaczone dla liczb całkowitych (396)
- Łączenie wyrażeń (397)
- Operatory sterowania - inny sposób rozgałęziania (400)
- Uwagi końcowe (401)
28. Odczyt wejścia z klawiatury (403)
- read - odczyt danych ze standardowego strumienia wejścia (404)
- Opcje (407)
- Rozdzielanie pól wejściowych za pomocą IFS (407)
- Weryfikacja wejścia (410)
- Menu (411)
- Uwagi końcowe (412)
- Dodatkowe informacje (413)
29. Sterowanie przepływem - pętle while i until (415)
- Pętle (416)
- while (416)
- Ucieczka z pętli (418)
- until (420)
- Odczyt plików za pomocą pętli (420)
- Uwagi końcowe (421)
30. Usuwanie błędów (423)
- Błędy składniowe (423)
- Brakujące cudzysłowy (424)
- Brakujące lub niespodziewane tokeny (425)
- Nieprzewidziane interpretacje (425)
- Błędy logiczne (427)
- Programowanie defensywne (427)
- Weryfikacja wejścia (428)
- Testowanie (429)
- Elementy zastępcze (429)
- Przypadki testowe (430)
- Debugowanie (431)
- Znalezienie miejsca problemu (431)
- Śledzenie (432)
- Sprawdzanie wartości podczas wykonywania (434)
- Uwagi końcowe (434)
31. Sterowanie przepływem - rozgałęzienia case (435)
- case (435)
- Wzorce (437)
- Łączenie wielu wzorców (438)
- Uwagi końcowe (439)
32. Parametry pozycyjne (441)
- Dostęp do wiersza poleceń (441)
- Ustalanie liczby argumentów (442)
- shift - uzyskiwanie dostępu do wielu argumentów (443)
- Proste programy (444)
- Korzystanie z parametrów pozycyjnych wraz z funkcjami powłoki (445)
- Masowa obsługa parametrów pozycyjnych (446)
- Bardziej kompletne programy (448)
- Uwagi końcowe (451)
33. Sterowanie przepływem - pętla for (455)
- for - tradycyjna forma powłoki (455)
- for - forma języka C (458)
- Uwagi końcowe (459)
34. Łańcuchy tekstowe i liczby (461)
- Interpretacja parametrów (461)
- Podstawowe parametry (462)
- Interpretacje służące do zarządzania pustymi zmiennymi (462)
- Interpretacje, które zwracają nazwy zmiennych (464)
- Operacje na łańcuchach tekstowych (464)
- Interpretacja wyrażeń arytmetycznych (467)
- Liczby o różnej podstawie (467)
- Operatory jednoargumentowe (468)
- Prosta arytmetyka (468)
- Przypisanie (469)
- Operacje bitowe (472)
- Logika (472)
- bc - język kalkulatora dowolnej precyzji (475)
- Korzystanie z bc (475)
- Przykładowy skrypt (476)
- Uwagi końcowe (477)
- Dodatkowe informacje (477)
35. Tablice (479)
- Czym są tablice? (479)
- Tworzenie tablic (480)
- Przypisywanie wartości do tablicy (480)
- Dostęp do elementów tablicy (481)
- Operacje na tablicach (483)
- Wyświetlanie zawartości całej tablicy (483)
- Określanie liczby elementów tablicy (484)
- Znajdowanie indeksów wykorzystanych przez tablicę (484)
- Dodawanie elementów na końcu tablicy (485)
- Sortowanie tablicy (485)
- Usuwanie tablicy (485)
- Uwagi końcowe (486)
36. Egzotyka (489)
- Polecenia grupowe i podpowłoki (489)
- Wykonywanie przekierowań (490)
- Substytucja procesu (490)
- Pułapki (493)
- Wykonywanie asynchroniczne (496)
- Potoki nazwane (497)
- Ustawianie potoku nazwanego (498)
- Korzystanie z potoków nazwanych (498)
- Uwagi końcowe (499)
Skorowidz (501)
512 stron, Format: 17.0x23.0cm, oprawa miękka