% Vi lär oss använda Debian GNU/Linux tillsammans % % I samarbete med Fripost och Debian bjuder Inbyggd Frihet därför in till studietillfällen på Syndikalistiskt Forum för introduktion till Linux. Det blir 4 + 2 träffar. Se mer i [senaste versionen av inbjudan](inbjudan). Läs också [om arrangörerna](arrang). Första omgången var ht 2020 och ny omgång våren 2021. # Träffar Skiss på tillfällen \ [0. Installera operativsystemet](00.installation) : Ta med din dator och installera Debian. Alternativt tillhandahålls datorer på plats (säg till i god tid). \ [1. Introduktion](01.introduktion) : Friprogramvarufilosofin, var man hittar information om den. TTY -- för att inte luras till att använda mus. Vad är skal och Bash? \ [2. Maskinens lager](02.lager) : Mer om skal. Distributioner och miljöer i teorin. Program, processer, avslutningsstatus, standardflöden, m.m. \ [3. Reguljära uttryck](03.regexp) : De grundläggande programmen som baseras på textmönster. Reguljära uttryck. \ [4. Datorprogram och stil](04.stil) : Filosofin bakom Unix-program. Vanliga format på konfiguration och information. Skript. \ [5. Extratillfälle/avslutning](05.avsl) : Möjlighet till fler frågor, mer om vikten av fri programvara, etc. # Målgrupp Operativsystem och hantering är inte direkt knutet till Inbyggd Frihet. Däremot det är en vanlig förfrågan att utöver att frigöra datorer med Libreboot och Coreboot också få introducerat grundläggande hantering av operativsystemet. Andra städer har användargrupper (*usergroup*), men det finns inte i Göteborg. Målgruppen är privatpersoner som vill förstå sina system och förbättra sina färdigheter i sådana program och verktyg som vana användare tycker är effektiva. Upplägg är att under ett eller flera tillfällen introducera de vanligaste grundläggande verktygen och ytligt diskutera hur operativsystemet är uppbyggt och vad man kan tänka på. Inga förkunskaper behövs. Datorer tillhandahålls vid behov inom ramen för [Kontant GNU/Linux](../cash). Möjlighet finns att delta på distans via Jitsi. # Material Studiecirkeln följer ingen särskild kursbok, men följande material, tillgängligt via Internet är användbart: * Raphaël Hertzog & Roland Mas, [The Debian Administrator's Handbook][deb:hand], *debian.org*, 2020 * Osamu Aoki, Debian Reference, [Chapter 1. GNU/Linux tutorials][deb:cons], *debian.org*, 2018 * [Linux Foundation training tutorials][lfd:tuto] * Machtelt Garrels, [Bash Guide for Beginners][ldp:bash], 2008, The Linux Documentation Project [deb:cons]: https://www.debian.org/doc/manuals/debian-reference/ch01.en.html [deb:hand]: https://debian-handbook.info/browse/stable/ [lfd:tuto]: https://www.edx.org/course/introduction-to-linux [ldp:bash]: https://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html # Innehåll Följande är något av det som kan täcks in. ## Distributioner miljön Vad är Debian GNU/Linux jämfört med andra distributioner? Hur förhåller sig distributioner till andra delar av skrivbordsinstallationer: * Operativsystemet och dess kärna, *GNU* och *Linux* * Grafiska servrar och skärmhanterare, *GDM* och *wayland* * Skrivbordsmiljöer, *Gnome* ## Grundläggande verktyg Hur använder man terminalen och vad är ett skal? Bash : Det vanliga skalet. Grundläggande syntax för kommandon Standarddataflöden : Kommunikation mellan program och filer, standarddataflöden (*stdin*, *stdout*, *stderr*), rörledningar (`|`) och vidarebefordran (`>`, `<`) Reguljära uttryck : Mönster, matchning och urval av text *grep*, *find*, *sed*, *awk* : Användbara program ## Koncept Det finns givetvis många begrepp, och alla hinns inte täckas in, men några exempel är dessa: * *hostname* * *whoami* * Filtillstånd * Signaler och *trap* * Avslutningsstatus * *cron* * systemd ## Filformat Vissa former av fil-format är vanliga och bra att känna till. Vanliga [konfigurationsformat](https://en.wikipedia.org/wiki/Configuration_file) omfattar [namn-värde-par](https://en.wikipedia.org/wiki/Name%E2%80%93value_pair) och även [rena skript](https://en.wikipedia.org/wiki/Run_commands): * [*ini*](https://en.wikipedia.org/wiki/INI_file), t.ex. */etc/systemd/journald.conf* och */etc/libreoffice/sofficerc* * *conf*, namn-värde-par, t.ex. */etc/logrotate.d/aptitude* * *tab*, tabulär konfiguration med fält, t.ex. */etc/fstab* och */etc/apt/sources.list* * *rc*, rena skript, t.ex. *~/.bashrc* Det finns givetvis också en uppsjö dataformat. Dessa är några exempel med data i klartext: * CSV (comma separated values) -- kommaseparerade värden, tabulärt, heltalsindexerade fält, vanligaste dataformatet i traditionell UNIX-miljö * DKVP (delimited key-value pairs) -- tabulärt men med nyckel-värde-par, ovanligt format * [XML](https://sv.wikipedia.org/wiki/XML) (extensible markup language) -- märkspråk med element, attribut och hierarkier * [JSON](https://sv.wikipedia.org/wiki/JSON) (JavaScript Object Notation) -- beskriver objekt centrerat kring listor och associativa listor * YAML -- Utökning av JSON, anpassad för mänsklig läsbarhet ## Skript Man kan även samla arbetsflöden och kodsnuttar i skript, vilket möjliggör avancerad kontroll av flöden i program o.s.v. Inom ramen för studiecirkeln kommer grundläggande Bash introduceras: * Variabler * Logiska flöden # Datafilsexempel För att inte hela tiden behöva börja från början [ladda ner detta arkiv](files/linux-intro.tar) och packa upp: ``` cd /tmp mv ~/Hämtningar/linux-intro.tar . tar -xf linux-intro.tar rm -r linux-intro.tar ``` # Planering Deadlines: - [ ] Program klart slutet av juni. Inbyggd Frihets wiki används. ## Exempel och information * [Om POSIX och Linux](posix.txt) * [Exempel skript (från Linux tenta 2018)](linux_exam2018.txt) * [Exempel skript (från Linux tenta 2020)](linux_exam2020.txt/) ## Träffar som vi haft * [Träff 1 - blandade lärdomar (även sed, awk)](meeting0.txt)