===== Podstawy pracy w systemie Linux ===== * Kurs: WFAIS.IF-X215.0 * Sala: G-1-07 * Koordynator, wykład: [[https://gjn.re/|prof. dr hab. inż. Grzegorz J. Nalepa]] * Ćwiczenia: [[https://krzysztof.kutt.pl/|dr inż. Krzysztof Kutt]] (KKT), [[https://szymon.bobek.re|dr inż. Szymon Bobek]] (SBK), mgr inż. Jan Ignatowicz (JIG) ==== Harmonogram ćwiczeń ==== ^ L.p. ^ Termin ^ Instrukcja do zajęć ^ ^ 1. | 29.02.2024 | [[.:lab_intro|Wprowadzenie do pracy w systemie]] (KKT) | ^ 2. | 07.03.2024 | [[.:lab_files|Praca z plikami i poleceniami]] (KKT) | ^ 3. | 14.03.2024 | [[.:lab_shell|Powłoka i środowisko pracy]] (SBK) | ^ 4. | 21.03.2024 | [[.:lab_processes|Procesy i zadania]] (JIG) | ^ 5. | 04.04.2024 | Kolokwium 1. (14 EXP) -- obowiązują zajęcia **1-4** + wykłady (JIG) | ^ 6. | ::: | [[.:lab_filters|Podstawy skryptów i filtrów]] (JIG) | ^ 7. | 11.04.2024 | [[.:lab_sed_awk|SED i Awk]] (SBK) | ^ 8. | 18.04.2024 | [[.:lab_bash|Pisanie skryptów Bash]] (SBK) | ^ 9. | 25.04.2024 | [[.:lab_crypt|Praktyczne wykorzystanie narzędzi szyfrujących]] (JIG) | ^ 10. | 09.05.2024 | Kolokwium 2. (14 EXP) -- obowiązują zajęcia **6-9** + wykłady (SBK) | ^ 11. | ::: | [[.:lab_admin1|Podstawy administrowania 1: użytkownicy i system plików]] (SBK) | ^ 12. | 16.05.2024 | [[.:lab_admin2|Podstawy administrowania 2: zarządzanie usługami i monitorowanie systemu]] (SBK) | ^ 13. | 23.05.2024 | [[.:lab_sysprog|Elementy programowania systemowego]] (JIG) | ^ 14. | 06.06.2024 | [[.:lab_netprog|Elementy programowania sieciowego]] (SBK) | ^ 15. | 13.06.2024 | Kolokwium 3. (14 EXP) -- obowiązują zajęcia **11-14** + wykłady (SBK) | ==== Zasady zaliczenia ==== * **50 EXP** stanowi 100% łącznej liczby punktów (MAX). Składają się na to: * 3 kolokwia (3x**14 EXP**) * 4 niezapowiedziane kartkówki "wejściówki"/"wyjściówki" (4x**2 EXP**) * Powyższy wynik mogą podnieść ewentualne "plusy" za aktywność na zajęciach (1 plus = **0.5 EXP**) * Plusy są brane pod uwagę tylko w momencie uzyskania zaliczenia w terminie podstawowym. * Dozwolone są **dwie nieusprawiedliwione** nieobecności. * Każda kolejna nieobecność skutkuje odjęciem **5 EXP**. * __Skala ocen:__ * >= 45 EXP -- bdb * >= 40 EXP -- db+ * >= 35 EXP -- db * >= 30 EXP -- dst+ * >= 25 EXP -- dst * < 25 EXP -- ndst ==== Dowiedz się więcej! ==== === Zadania === * [[https://cmdchallenge.com/|Command Line Challenge]] -- czy potrafisz napisać polecenie które robi zadaną rzecz? (warto się pobawić po laboratorium z 6 [filtry] i 7 [SED i Awk]) === Ciekawe książki === * [[https://linuxcommand.org/tlcl.php|William Shotts - The Linux Command Line (No Starch Press, 2019)]] -- dobre darmowe wprowadzenie do Basha; mało wiedzy ogólnie o działaniu systemów Unixowych (ale coś tam jest przemycane); pokrywa ok. 75% tego co robimy na laboratorium * [[http://helion.pl/ksiazki/lipruz.htm|Graham Glass, King Ables - Linux dla programistów i użytkowników (Helion, 2007)]] - już nie-najświeższa, ale cały czas dobra pozycja wprowadzająca * [[https://www.oreilly.com/library/view/linux-pocket-guide/9781491927557/|Daniel J. Barrett - Linux Pocket Guide (O'Reilly, 2016)]] - krótki przegląd najważniejszych informacji i poleceń (przydatny dla znających podstawy, którzy chcą mieć fajną "ściągę" pod ręką) * Ciekawe są [[https://www.amazon.com/gp/product/B08QZ8GTVV|wszystkie książki z serii "Pocket Reference"]] * [[https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554|UNIX and Linux System Administration Handbook (Addison-Wesley Professional, 2017)]] -- najlepszy podręcznik administracji systemu Linux ([[https://helion.pl/ksiazki/unlip5.htm|polskie wydanie; Helion, 2018]]) === Artykuły GJN === * {{gjn-dokumentacja.pdf|Korzystanie z dokumentacji GNU/Linux}} * {{gjn-bash.pdf|GNU Bash - więcej niż Sh}} * {{gjn-sh.pdf|Podstawy programowania skryptów Sh}} * {{gjn-cron.pdf|Konfigurowanie i zastosowanie systemu Cron}} * {{gjn-syslog.pdf|Monitorowanie systemu GNU/Linux przy pomocy Syslog}} * {{gjn-pam.pdf|Wykorzystanie systemu PAM w GNU/Linuksie}} * {{gjn-procacc.pdf|Księgowanie procesów w systemie GNU/Linux}} * {{gjn-flex.pdf|Generator skanerów Flex}} === Linux === * [[https://tldp.org/|The Linux Documentation Project]] === Programowanie systemowe === * [[https://helion.pl/ksiazki/jansiv.htm|Brian W. Kernighan, Dennis M. Ritchie - Język ANSI C. Programowanie (Helion, 2010)]] -- klasyczna pozycja, bardzo warta uwagi * [[https://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X|Brian W. Kernighan, Rob Pike - The UNIX Programming Environment (Prentice Hall, 1984)]] -- starsza od Państwa, ale ciągle aktualna książka, która pozwala zrozumieć UNIXa, a przy tym bardzo przystępna * Marc J. Rochkind - Programowanie w systemie Unix dla zaawansowanych (Wydawnictwa Naukowo-Techniczne, 2007) * w oryginale: [[https://www.amazon.com/Advanced-UNIX-Programming-Marc-Rochkind/dp/0131411543|Advanced Unix Programming (Addison-Wesley Professional, 2004)]] [uwaga: II wyd. po angielsku to III wyd. polskie] * [[https://www.amazon.com/Advanced-Programming-Unix-Environment-Stevens/dp/0321637739|W. Richard Stevens, Stephen Rago - Advanced Programming in the UNIX Environment (Addison-Wesley Professional, 2013)]] -- wymiennie z pozycją Rochkinda, obydwa są dobrymi podręcznikami programowania w Unixie, z licznymi praktycznymi przykładami * [[https://helion.pl/ksiazki/unszpr.htm|Eric S. Raymond - UNIX. Sztuka programowania (Helion, 2004)]] === OS development === * [[https://github.com/cfenollosa/os-tutorial|How to create an OS from scratch!]] -- ciekawy, ale bardzo techniczny kurs, nazwa dobrze oddaje zawartość ;-) * [[https://littleosbook.github.io/|Erik Helin, Adam Renberg - The little book about OS development]] -- praktyczny podręcznik z minimum teorii === Powłoki === * [[https://explainshell.com/|explainshell.com]] -- wpisz polecenie, aby zobaczyć dokumentację do każdego z argumentów * Bash: * [[https://www.learnshell.org/|Learn Shell]] -- najważniejsze podstawy (pokryte również przez nasze laboratoria) * [[https://dev.to/awwsmm/101-bash-commands-and-tips-for-beginners-to-experts-30je|101 Bash Commands and Tips for Beginners to Experts]] * [[http://www.catonmat.net/blog/bash-emacs-editing-mode-cheat-sheet/|Bash Emacs Editing Mode Cheat Sheet]] * [[https://fishshell.com/|Fish Shell]] -- Friendly Interactive SHell (ładna i wygodna powłoka) === Edytory === * [[https://vim-adventures.com/|VIM Adventures]] -- ciekawy tutorial do nauki edytora Vim