Linux. Programowanie w powłoce. Praktyczny przewodnik
Book information
Description
Linux to system o setkach twarzy. Różne dystrybucje charakteryzują się specyficznym przeznaczeniem, odmiennymi grupami docelowymi użytkowników i platformami uruchomieniowymi. Jednak od lat łączy je wspólny mianownik - wysoka wydajność, stabilność, niezawodność i możliwość dostosowania do własnych potrzeb. Ponadto różne dystrybucje współdzielą popularne narzędzia i komendy. Dlatego ta książka sprawdzi się doskonale w rękach użytkowników między innymi Ubuntu, Debiana, Fedory oraz Mac OS X. Ale nie tylko! Znajdziesz tu omówienie 98 najpopularniejszych narzędzi i komend. Zostały one zaprezentowane w poszczególnych częściach książki poświęconych: edytorom, powłokom, narzędziom programistycznym oraz narzędziom zapewniającym bezpieczeństwo. Na początek jednak zapoznasz się z niezwykłą historią systemu operacyjnego Linux. Potem przejdziesz do konkretów: będziesz poznawać polecenie po poleceniu. Dowiesz się, jak wykorzystać każde z nich, jakie są ich mocne punkty oraz na co należy uważać. A jest na co - chwila nieuwagi, a polecenie rm usunie całą zawartość Twojego dysku! Na końcu każdego rozdziału znajdziesz zestaw ćwiczeń podstawowych oraz zaawansowanych. Pozwolą Ci one utrwalić zdobytą wiedzę. Ta książka jest świetną lekturą dla każdego użytkownika i pasjonata systemu Linux. Warto ją mieć na półce! Poznaj: -historię systemu operacyjnego Linux -najważniejsze polecenia i komendy systemu Linux -popularne edytory tekstowe -dostępne powłoki oraz ich wady i zalety Poruszaj się swobodnie po systemie operacyjnym Linux! Spis treści......Page 11 Wstęp......Page 29 1. Witamy w systemach Linux i OS X......Page 43 ZASTÓJ DO ROKU 1983......Page 44 KOD ŹRÓDŁOWY JEST POWSZECHNIE DOSTĘPNY......Page 46 DLACZEGO LINUX JEST TAK WSPANIAŁY?......Page 48 DLACZEGO LINUX JEST TAK POPULARNY WŚRÓD FIRMPRODUKUJĄCYCH URZĄDZENIA ORAZ WŚRÓD PROGRAMISTÓW?......Page 50 PRZEGLĄD SYSTEMU LINUX......Page 52 POWŁOKA — INTERPRETER POLECEŃ I JĘZYK PROGRAMOWANIA......Page 54 KOMUNIKACJA MIĘDZYPROCESOWA......Page 56 TWORZENIE OPROGRAMOWANIA......Page 58 ĆWICZENIA......Page 60 I. Rozpoczynamy pracę z systemami Linux i OS X......Page 61 2. Wprowadzenie do systemów Linux i OS X......Page 63 KONWENCJE UŻYWANE W TEJ KSIĄŻCE......Page 64 LOGOWANIE SIĘ PRZY UŻYCIU TERMINALA (EMULATORA)......Page 66 PRACA Z POZIOMU WIERSZA POLECEŃ POWŁOKI......Page 68 POPRAWIANIE BŁĘDÓW......Page 69 POWTARZANIE I EDYTOWANIE POLECEŃ POWŁOKI......Page 70 POLECENIE MAN — WYŚWIETLANIE TEMATÓW POMOCY......Page 72 POLECENIE APROPOS — WYSZUKIWANIE SŁÓW KLUCZOWYCH......Page 74 POLECENIE INFO — WYŚWIETLANIE INFORMACJI O NARZĘDZIACH......Page 76 UZYSKIWANIE POMOCY......Page 78 WYLOGOWANIE Z SYSTEMU......Page 82 ZMIANA HASŁA UŻYTKOWNIKA......Page 84 ĆWICZENIA ZAAWANSOWANE......Page 86 3 .Narzędzia systemu Linux......Page 89 PODSTAWOWE NARZĘDZIA SYSTEMOWE......Page 90 POLECENIE CP — KOPIOWANIE PLIKÓW......Page 92 POLECENIE LPR — DRUKOWANIE PLIKU......Page 94 POLECENIE SORT — WYŚWIETLANIE ZAWARTOŚCI PLIKU W OKREŚLONEJ KOLEJNOŚCI......Page 96 SYMBOL POTOKU | — KOMUNIKACJA MIĘDZY PROCESAMI......Page 98 POLECENIE SCRIPT — REJESTROWANIE SESJI POWŁOKI......Page 100 POLECENIE BZIP2 — KOMPRESOWANIE PLIKÓW......Page 102 POLECENIE TAR — PAKOWANIE I ROZPAKOWYWANIE ARCHIWÓW......Page 104 POLECENIA WHICH I WHEREIS — WYSZUKIWANIE NARZĘDZI......Page 106 POLECENIE WHO — WYŚWIETLANIE LISTY ZALOGOWANYCH UŻYTKOWNIKÓW......Page 108 POLECENIE UPTIME — WYŚWIETLANIE INFORMACJI O SYSTEMIE I JEGO OBCIĄŻENIU......Page 110 POLECENIE WRITE — WYSYŁANIE WIADOMOŚCI......Page 112 PODSUMOWANIE ROZDZIAŁU......Page 114 ĆWICZENIA......Page 116 ĆWICZENIA ZAAWANSOWANE......Page 118 4. System plików......Page 119 PLIKI KATALOGÓW I PLIKI ZWYKŁE......Page 120 NAZWY PLIKÓW......Page 122 ŚCIEŻKI BEZWZGLĘDNE......Page 124 PRACA Z KATALOGAMI......Page 126 POLECENIE CD — ZMIANA KATALOGU ROBOCZEGO......Page 128 KORZYSTANIE ZE ŚCIEŻEK......Page 130 WAŻNE PLIKI I KATALOGI DOMYŚLNE......Page 132 POLECENIE LS -L — WYŚWIETLANIE PRAW DOSTĘPU......Page 134 POLECENIE CHMOD — ZMIANA PRAW DOSTĘPU......Page 136 ATRYBUTY SETUID I SETGID — SPECJALNE PRAWA DOSTĘPU......Page 138 ACL — LISTA KONTROLI DOSTĘPU......Page 140 PRACA Z REGUŁAMI DOSTĘPU......Page 142 DEFINIOWANIE REGUŁ DOMYŚLNYCH DLA KATALOGU......Page 144 DOWIĄZANIA......Page 146 DOWIĄZANIA SYMBOLICZNE......Page 148 POLECENIE RM — USUWANIE DOWIĄZANIA......Page 150 ODWOŁANIA DO DOWIĄZAŃ SYMBOLICZNYCH......Page 152 PODSUMOWANIE ROZDZIAŁU......Page 154 ĆWICZENIA......Page 156 ĆWICZENIA ZAAWANSOWANE......Page 158 5. Powłoka systemu Linux......Page 159 SKŁADNIA......Page 160 PRZETWARZANIE WIERSZA POLECEŃ......Page 164 STANDARDOWE WEJŚCIE I STANDARDOWE WYJŚCIE DANYCH......Page 166 PRZEKIEROWANIA......Page 168 PRZYKŁADY UŻYCIA POTOKÓW DANYCH......Page 174 URUCHAMIANIE POLECEŃ PRACUJĄCYCH W TLE......Page 178 ZNAK SPECJALNY — ?......Page 180 ZNAKI SPECJALNE — [ ]......Page 182 PODSUMOWANIE ROZDZIAŁU......Page 184 ĆWICZENIA......Page 186 ĆWICZENIA ZAAWANSOWANE......Page 188 II. Edytory......Page 189 6. Edytor vim......Page 191 URUCHAMIANIE EDYTORA VIM......Page 192 TRYB KOMEND I TRYB WPROWADZANIA......Page 194 UZYSKIWANIE POMOCY......Page 196 PARAMETR COMPATIBLE......Page 198 EKRAN......Page 200 NAGŁE ZAKOŃCZENIE SESJI EDYCJI......Page 202 TRYB KOMEND — PORUSZANIE KURSOREM......Page 204 PRZENIESIENIE KURSORA NA EKRANIE......Page 206 CYTOWANIE ZNAKÓW SPECJALNYCH W TRYBIE WPROWADZANIA......Page 208 ZMIANA TEKSTU......Page 210 WYSZUKIWANIE CIĄGU TEKSTOWEGO......Page 212 ZASTĄPIENIE JEDNEGO CIĄGU TEKSTOWEGO INNYM......Page 216 BUFOR OGÓLNEGO PRZEZNACZENIA......Page 218 ZAPIS PLIKU......Page 220 PARAMETRY......Page 222 ZAAWANSOWANE TECHNIKI EDYCJI......Page 226 WYKONYWANIE POLECEŃ POWŁOKI W EDYTORZE VIM......Page 228 WSPÓŁCZYNNIK POWTÓRZENIA......Page 230 PODSUMOWANIE ROZDZIAŁU......Page 232 ĆWICZENIA ZAAWANSOWANE......Page 236 7. Edytor emacs......Page 239 EMACS KONTRA VIM......Page 240 URUCHOMIENIE EDYTORA EMACS......Page 242 PRZENOSZENIE KURSORA......Page 244 ZAPISYWANIE I POBIERANIE BUFORA......Page 246 META+X — WYKONANIE POLECENIA BEZ PRZYPISANIA KLAWISZY......Page 248 WYSZUKIWANIE TEKSTU......Page 250 UŻYWANIE PASKA MENU ZA POMOCĄ KLAWIATURY......Page 252 POMOC DOSTĘPNA W EDYTORZE......Page 254 PUNKT, ZNACZNIK I REGION......Page 256 WYTNIJ I WKLEJ — WKLEJANIE WYCIĘTEGO TEKSTU......Page 258 GLOBALNE POLECENIA DOTYCZĄCE BUFORA......Page 260 WIZYTOWANIE I ZAPISYWANIE PLIKÓW......Page 262 OKNA......Page 264 POLECENIA POWŁOKI DZIAŁAJĄCE W TLE......Page 266 TRYBY JĘZYKÓW CZYTELNYCH DLA CZŁOWIEKA......Page 268 TRYB C......Page 272 TRYBY SPECJALNEGO PRZEZNACZENIA......Page 274 PODSUMOWANIE ROZDZIAŁU......Page 280 ĆWICZENIA......Page 286 ĆWICZENIA ZAAWANSOWANE......Page 288 III. Powłoki......Page 291 8. Powłoka Bourne Again Shell (bash)......Page 293 KILKA SŁÓW O POWŁOCE BASH......Page 294 KONFIGURACJA PLIKÓW STARTOWYCH......Page 296 PRZEKIEROWYWANIE STANDARDOWEGO STRUMIENIA BŁĘDÓW......Page 298 POLECENIE CHMOD — TWORZENIE PLIKÓW WYKONYWALNYCH......Page 302 WYKONYWANIE SKRYPTÓW POWŁOKI......Page 304 ZNAKI | ORAZ & — ODSEPARUJ POLECENIA I ZRÓB COŚ JESZCZE…......Page 306 OPERATORY && I ||......Page 308 POLECENIE FG — PRZENOSZENIE ZADANIA DO PRACY NA PIERWSZYM PLANIE......Page 310 POLECENIE DIRS — WYŚWIETLANIE STOSU KATALOGÓW......Page 312 POLECENIE POPD — ZDEJMOWANIE NAZWY KATALOGU ZE STOSU......Page 314 PARAMETRY I ZMIENNE......Page 316 ZMIENNE TWORZONE PRZEZ UŻYTKOWNIKA......Page 318 ATRYBUTY ZMIENNYCH......Page 320 ZMIENNE ŚRODOWISKOWE......Page 322 LC_, CZYLI ZMIENNE USTAWIEŃ JĘZYKOWYCH......Page 330 KONFIGURACJA USTAWIEŃ JĘZYKOWYCH......Page 332 USTAWIENIA CZASU......Page 334 IDENTYFIKACJA PROCESÓW......Page 337 URUCHAMIANIE POLECEŃ......Page 338 ZMIENNE, KTÓRE STERUJĄ HISTORIĄ POLECEŃ......Page 340 PONOWNE WYKONYWANIE I MODYFIKACJA POLECEŃ......Page 342 BIBLIOTEKA READLINE......Page 349 ALIASY......Page 354 PRZYKŁADY ALIASÓW......Page 356 FUNKCJE......Page 358 OPCJE POWŁOKI......Page 360 PRZETWARZANIE WIERSZA POLECEŃ......Page 364 PRZETWARZANIE I SKANOWANIE WIERSZA POLECENIA......Page 366 ROZWIJANIE WIERSZA POLECENIA......Page 367 PODSUMOWANIE ROZDZIAŁU......Page 374 ĆWICZENIA......Page 376 ĆWICZENIA ZAAWANSOWANE......Page 378 9. Powłoka TC Shell (tcsh)......Page 381 URUCHAMIANIE I ZAMYKANIE POWŁOKI TC SHELL......Page 382 PLIKI STARTOWE......Page 385 ROZWINIĘCIE WIERSZA POLECEŃ POWŁOKI (ZASTĘPOWANIE)......Page 384 ZASTĘPOWANIE NAZW PLIKÓW......Page 388 UZUPEŁNIANIE SŁÓW......Page 390 EDYCJA WIERSZA POLECEŃ POWŁOKI......Page 392 ZMIENNE......Page 394 ZMIENNE LICZBOWE......Page 396 ZMIENNE TCSH......Page 400 IF......Page 406 IF...THEN...ELSE......Page 408 FOREACH......Page 410 WBUDOWANE POLECENIA POWŁOKI......Page 412 PODSUMOWANIE ROZDZIAŁU......Page 416 ĆWICZENIA ZAAWANSOWANE......Page 418 IV. Narzędzia programistyczne......Page 421 10. Programowanie powłoki Bourne Again Shell......Page 423 POLECENIE IF…THEN......Page 424 POLECENIE IF…THEN…ELSE......Page 428 POLECENIE IF…THEN…ELIF......Page 430 POLECENIE FOR…IN......Page 436 POLECENIE FOR......Page 438 POLECENIE WHILE......Page 440 POLECENIE UNTIL......Page 442 POLECENIE CASE......Page 444 POLECENIE SELECT......Page 450 DOKUMENT HERE......Page 452 PRZYKŁADY UŻYCIA DESKRYPTORA PLIKU......Page 454 USTALENIE, CZY DESKRYPTOR PLIKU JEST POWIĄZANY Z TERMINALEM......Page 456 PARAMETRY POZYCYJNE......Page 458 PARAMETRY SPECJALNE......Page 464 ZMIENNE POWŁOKI......Page 466 ŚRODOWISKO, ZMIENNE ŚRODOWISKOWE I DZIEDZICZENIE......Page 468 ZMIENNE TABLICOWE......Page 472 WBUDOWANE POLECENIA POWŁOKI......Page 474 POLECENIE READ — POBIERANIE DANYCH WPISYWANYCH PRZEZ UŻYTKOWNIKA......Page 476 POLECENIE EXEC — URUCHOMIENIE POLECENIALUB PRZEKIEROWANIE DESKRYPTORA PLIKU......Page 478 POLECENIE TRAP — PRZECHWYTYWANIE I OBSŁUGA SYGNAŁÓW......Page 482 POLECENIE EVAL — SKANOWANIE, PRZETWARZANIEI WYKONYWANIE POLECENIA POWŁOKI......Page 484 POLECENIE GETOPTS — PRZETWARZANIE OPCJI WYWOŁANIA......Page 486 WYRAŻENIA......Page 488 OBLICZANIE WYRAŻEŃ LOGICZNYCH (WYRAŻENIA WARUNKOWE)......Page 490 OPERATORY......Page 492 DOMNIEMANA KONTYNUACJA POLECENIA POWŁOKI......Page 494 REKURENCYJNY SKRYPT POWŁOKI......Page 496 KOLEJNY SKRYPT POWŁOKI — QUIZ......Page 500 ĆWICZENIA......Page 506 ĆWICZENIA ZAAWANSOWANE......Page 508 11. Perl — skryptowy język programowania......Page 511 POLECENIE PERLDOC......Page 512 TERMINOLOGIA......Page 514 SKŁADNIA......Page 516 ZMIENNE......Page 518 ZMIENNE SKALARNE......Page 520 ZMIENNE TABLICOWE......Page 522 TABLICE ASOCJACYJNE......Page 524 POLECENIA IF I UNLESS......Page 526 POLECENIA FOREACH I FOR......Page 528 POLECENIA LAST I NEXT......Page 530 PRACA Z PLIKAMI......Page 532 SORTOWANIE......Page 536 PROCEDURY......Page 538 SKŁADNIA I OPERATOR =~......Page 540 MODUŁY CPAN......Page 544 PRZYKŁADY......Page 546 ĆWICZENIA ZAAWANSOWANE......Page 550 12. Język programowania Python......Page 553 WYWOŁYWANIE PYTHONA......Page 554 FUNKCJE I METODY......Page 556 ZMIENNE SKALARNE......Page 558 LISTY......Page 559 STRUKTURY STERUJĄCE......Page 562 IF......Page 563 FOR......Page 564 DANE WEJŚCIOWE I WYJŚCIOWE PLIKU......Page 566 PICKLE......Page 568 WYRAŻENIA REGULARNE......Page 570 PRZESTRZEŃ NAZW......Page 572 PRZYKŁAD IMPORTOWANIA FUNKCJI......Page 574 PODSUMOWANIE ROZDZIAŁU......Page 576 ĆWICZENIA ZAAWANSOWANE......Page 578 13. Baza danych MySQL......Page 581 SKŁADNIA I PRZYJĘTE KONWENCJE......Page 582 DEBIAN/UBUNTU/MINT......Page 584 URUCHOMIENIE SKRYPTU BEZPIECZNEJ INSTALACJI......Page 586 DODAWANIE UŻYTKOWNIKÓW......Page 588 TWORZENIE TABEL......Page 590 POBIERANIE DANYCH......Page 592 UTWORZENIE DRUGIEJ TABELI......Page 594 ZŁĄCZENIA......Page 596 ĆWICZENIA......Page 600 14. Język przetwarzania wzorców AWK......Page 601 OPCJE......Page 602 ZMIENNE......Page 604 TABLICE ASOCJACYJNE......Page 606 STRUKTURY STERUJĄCE......Page 608 PRZYKŁADY......Page 610 POLECENIE GETLINE — KONTROLOWANIE DANYCH WEJŚCIOWYCH......Page 622 KOPROCES — DWUKIERUNKOWE WEJŚCIE-WYJŚCIE......Page 624 PODSUMOWANIE ROZDZIAŁU......Page 626 ĆWICZENIA ZAAWANSOWANE......Page 628 15. Edytor sed......Page 629 POLECENIA......Page 630 MIEJSCE PRZECHOWYWANIA......Page 632 PRZYKŁADY......Page 634 ĆWICZENIA......Page 642 V. Narzędzia bezpiecznej sieci......Page 643 16. Narzędzie rsync służące do bezpiecznego kopiowania plików......Page 645 OPCJE......Page 646 UŻYCIE UKOŚNIKA (/) NA KOŃCU ŹRÓDŁA......Page 648 KOPIOWANIE PLIKÓW DO ORAZ Z SYSTEMU ZDALNEGO......Page 650 TWORZENIE KOPII ZAPASOWEJ......Page 652 ĆWICZENIA......Page 654 17. OpenSSH — bezpieczna komunikacja sieciowa......Page 657 PLIKI......Page 658 KONFIGURACJA KLIENTÓW OPENSSH......Page 660 SSH — LOGOWANIE LUB WYKONYWANIE POLECEŃ W ZDALNYM SYSTEMIE......Page 662 SCP — KOPIOWANIE PLIKÓW ZE ZDALNEGO SYSTEMU I DO NIEGO......Page 666 PLIKI KONFIGURACYJNE ~/.SSH/CONFIG ORAZ /ETC/SSH/SSH_CONFIG......Page 668 KLUCZE UWIERZYTELNIAJĄCE — AUTOMATYCZNE LOGOWANIE......Page 670 PRZEKAZYWANIE SESJI X11......Page 672 ĆWICZENIA......Page 674 VI. Polecenia systemu Linux......Page 677 NARZĘDZIA SŁUŻĄCE DO WYŚWIETLANIA I PRZEPROWADZANIA OPERACJI NA PLIKACH......Page 678 NARZĘDZIA SŁUŻĄCE DO WYŚWIETLANIA INFORMACJI O STANIE SYSTEMU I JEGO ZMIANY......Page 680 STANDARDOWE PRZYROSTKI MULTIPLIKATYWNE......Page 682 SAMPLE......Page 684 ASPELL......Page 686 AT......Page 690 BUSYBOX......Page 694 BZIP2......Page 696 CAL......Page 698 CAT......Page 700 CD......Page 702 CHGRP......Page 704 CHMOD......Page 706 CHOWN......Page 710 CMP......Page 712 COMM......Page 714 CONFIGURE......Page 716 CP......Page 718 CPIO......Page 722 CRONTAB......Page 728 CUT......Page 730 DATE......Page 732 DD......Page 734 DF......Page 738 DIFF......Page 740 DISKUTIL......Page 744 DITTO......Page 748 DSCL......Page 750 DU......Page 754 ECHO......Page 756 EXPAND/UNEXPAND......Page 758 EXPR......Page 760 FILE......Page 764 FIND......Page 766 FINGER......Page 770 FMT......Page 772 FSCK......Page 774 FTP......Page 778 GAWK......Page 784 GCC......Page 786 GETFILEINFO......Page 790 GREP......Page 792 GZIP......Page 796 HEAD......Page 798 JOIN......Page 800 KILL......Page 802 KILLALL......Page 804 LAUNCHCTL......Page 806 LESS......Page 808 LN......Page 812 LPR......Page 814 LS......Page 818 MAKE......Page 824 MAN......Page 830 MC......Page 832 MKDIR......Page 838 MKFS......Page 840 MV......Page 842 NICE......Page 844 NL......Page 846 NOHUP......Page 848 OD......Page 850 OPEN......Page 854 OTOOL......Page 856 PASTE......Page 858 PAX......Page 860 PLUTIL......Page 864 PR......Page 866 PRINTF......Page 868 PS......Page 872 RM......Page 876 RMDIR......Page 878 SCP......Page 880 SCREEN......Page 882 SED......Page 886 SETFILE......Page 888 SORT......Page 890 SPLIT......Page 898 SSH......Page 900 SSHFS/CURLFTPFS......Page 902 STAT......Page 904 STRINGS......Page 906 STTY......Page 908 TAIL......Page 912 TAR......Page 916 TEE......Page 920 TELNET......Page 922 TEST......Page 924 TOP......Page 928 TOUCH......Page 930 TR......Page 932 TUNE2FS......Page 936 UMASK......Page 938 UNIQ......Page 940 W......Page 942 WC......Page 944 WHICH......Page 946 WHO......Page 948 XARGS......Page 950 Dodatki......Page 953 A. Wyrażenia regularne......Page 955 GWIAZDKI......Page 957 OZNACZANIE WYRAŻEŃ......Page 958 ROZSZERZONE WYRAŻENIA REGULARNE......Page 960 PODSUMOWANIE......Page 962 B. Pomoc......Page 965 LISTY DYSKUSYJNE......Page 966 DEFINIOWANIE TYPU TERMINALA......Page 968 C. Uaktualnianie systemu......Page 971 UŻYWANIE YUM DO INSTALACJI, USUWANIA I UAKTUALNIANIA PAKIETÓW......Page 972 POLECENIE YUM — GRUPY......Page 974 KONFIGURACJA POLECENIA YUM......Page 976 UŻYWANIE APT-GET DO INSTALACJI, USUWANIA I UAKTUALNIANIA PAKIETÓW......Page 978 SOURCES.LIST — REPOZYTORIA PRZESZUKIWANE PRZEZ APT-GET......Page 980 BITTORRENT......Page 982 D. Uwagi dotyczące systemu OS X......Page 985 /VOLUMES......Page 986 ATRYBUTY PLIKU......Page 988 LISTY ACL......Page 990 INSTALACJA XCODE I MACPORTS......Page 992 IMPLEMENTACJA FUNKCJI LINUX W SYSTEMIE OS X......Page 994 Słowniczek......Page 997 Skorowidz......Page 1055
Similar books
A Practical Guide to Linux Commands, Editors, and Shell Programming
2012 · EPUB
A Practical Guide to Fedora and Red Hat Enterprise Linux
2013 · PDF
Practical Guide to Fedora and Red Hat Enterprise Linux, A (7th Edition)
2013 · EPUB
A Practical Guide to Linux Commands, Editors, and Shell Programming
2017 · EPUB
A practical Guide to Linux Commands, Editors and Shell Programming
2018 · PDF
A Practical Guide to Linux Commands, Editors, and Shell Programming
2017 · PDF
Practical Guide to Linux Commands, Editors and Shell Programming
2013 · PDF
A Practical Guide to Linux Commands, Editors, and Shell Programming
2012 · PDF