# Lab 1.3 – Introduktion til nano > **Ressource:** `nano.pdf` – GNU nano manual version 8.7.1, tilgængelig i jeres grupperum på Canvas > **Formål:** Lære at bruge nano som teksteditor til daglig redigering af konfigurationsfiler i Linux. > **Dokumentation:** Alle opgaver dokumenteres i jeres **lab-journal** med screenshots og uploades til grupperummet. --- ## Hvad er nano, og hvornår bruger man det? nano er en lille og brugervenlig teksteditor til terminalen. I modsætning til Vim har nano **ingen tilstande** – du kan altid skrive tekst direkte. Det gør nano til det naturlige førstevalg når du hurtigt skal redigere en konfigurationsfil på en server eller router. >[!brain] 💡 **Huskeregel:** nano til hurtige redigeringer, Vim til tunge redigeringsopgaver. >[!eaaa] 📖 **Læs:** `nano.pdf` Find den i Canvas kapitel 1 *"Introduction"* (side 1) og kapitel 3 *"Editor Basics"* (side 3–5) inden du begynder. --- ## Skærmlayout i nano Når du åbner nano ser skærmen sådan ud: ``` ┌─────────────────────────────────────────┐ │ GNU nano 8.7.1 filnavn.txt │ ← Titellinje │ │ │ [din tekst her] │ ← Redigeringsvindue │ │ │ │ ├─────────────────────────────────────────┤ │ Statuslinje (beskeder og fejl) │ ← Statuslinje │ ^G Hjælp ^O Gem ^X Afslut ... │ ← Genvejslinjer └─────────────────────────────────────────┘ ``` > 📖 Se *"Screen Layout"* (kapitel 3.1, side 3) for fuld beskrivelse af de fire områder. >[!opgave] **Spørgsmål til lab-journal:** >- Hvad viser titellinjens venstre, midterste og højre sektion? >- Hvad betyder det når der vises `Modified` øverst til højre? --- ## Vigtige genveje – overblik I nano skrives genveje med `^` (Ctrl) og `M-` (Alt/Meta): | Genvej | Funktion | |--------|----------| | `^G` | Hjælp (Help) | | `^O` | Gem fil (Write Out) | | `^X` | Afslut nano | | `^K` | Klip linje (Cut) | | `^U` | Sæt ind (Paste/Uncut) | | `^F` eller `^W` | Søg fremad | | `^B` | Søg bagud | | `^Z` | Fortryd (Undo) | | `^Y` | Page Up | | `^V` | Page Down | | `^C` | Vis cursor-position | | `M-N` | Slå linjenumre til/fra | > 📖 Se *"Commands"* (kapitel 3.3, side 3–4) for forklaring på `^` og `M-` notation. --- ## Opgave 1 – Åbn nano og lær skærmlayoutet ### 1.1 – Start nano og opret en fil Åbn en terminal og kør: ```bash nano ~/nano-oevelse.txt ``` Filen eksisterer ikke endnu – nano opretter den automatisk første gang du gemmer. **Spørgsmål til lab-journal:** - Hvad viser nano i titellinjens midterste sektion når filen endnu ikke er navngivet eller gemt? - Hvad viser statuslinjen når du åbner en ny fil? > 📸 **Screenshot:** Tag et screenshot af det tomme nano-vindue. --- ### 1.2 – Åbn den indbyggede hjælp Tryk `^G` (Ctrl+G) for at åbne hjælpeviseren. Naviger med: - `^V` – rul ned (Page Down) - `^Y` – rul op (Page Up) - `^X` – luk hjælp og gå tilbage til editoren **Spørgsmål til lab-journal:** - Hvilke sektioner kan du se i hjælpeviseren? - Hvilken genvej bruges til at afslutte hjælpeviseren? > 📖 Se kapitel 4 *"The Help Viewer"* (side 6) > 📸 **Screenshot:** Tag et screenshot af hjælpeviseren åben. --- ## Opgave 2 – Skriv og rediger tekst ### 2.1 – Skriv indhold i filen Du er allerede i nano med din tomme fil. Skriv følgende tekst direkte (nano er modeless – du kan bare skrive!): ``` === Mine nano-noter === Dato: [dato] Gruppe: [gruppenummer] Navn: [dit navn] nano er en modeless editor. Det betyder at jeg kan skrive tekst med det samme. Nyttige kommandoer jeg har lært: - Ctrl+O : Gem filen - Ctrl+X : Afslut - Ctrl+K : Klip en linje - Ctrl+U : Sæt ind (paste) - Ctrl+F : Søg fremad Denne fil er oprettet som en del af Lab 1.3 ``` **Spørgsmål til lab-journal:** - Hvad er den største forskel fra Vim når du skal skrive tekst? - Hvad vises øverst til højre i titellinjen efter du har skrevet noget? > 📸 **Screenshot:** Tag et screenshot af nano med teksten indtastet. --- ### 2.2 – Slå linjenumre til Tryk `M-N` (Alt+N) for at slå linjenumre til. ``` M-N → slå linjenumre til/fra ``` > 📖 Se *"Feature Toggles"* (kapitel 7, side 16) – under *"Line Numbers"* **Spørgsmål til lab-journal:** - Hvad sker der i venstre side af skærmen? - Hvornår kan linjenumre være særligt nyttige? > 📸 **Screenshot:** Tag et screenshot med linjenumre aktiveret. --- ## Opgave 3 – Gem filen > 📖 Se *"The Cutbuffer"* og kommandooversigten i `nano.pdf` ### 3.1 – Gem med Write Out Tryk `^O` (Ctrl+O) for at gemme: 1. Statuslinjen spørger: `File Name to Write:` 2. Filnavnet er allerede udfyldt (`nano-oevelse.txt`) 3. Tryk `Enter` for at bekræfte **Spørgsmål til lab-journal:** - Hvad vises på statuslinjen efter filen er gemt? - Forsvinder `Modified`-markøren fra titellinjen efter du gemmer? > 📸 **Screenshot:** Tag et screenshot af statuslinjen under/efter gemning. --- ### 3.2 – Bekræft filen fra terminalen Afslut nano med `^X` og verificer filen: ```bash cat ~/nano-oevelse.txt ls -lh ~/nano-oevelse.txt ``` Åbn filen igen: ```bash nano ~/nano-oevelse.txt ``` --- ## Opgave 4 – Klip, kopiér og sæt ind > 📖 Læs *"The Cutbuffer"* (kapitel 3.4, side 4) og *"The Mark"* (kapitel 3.5, side 4) ### 4.1 – Klip og sæt ind en linje Nano bruger et **cutbuffer** (klipboard) til at flytte tekst: | Genvej | Funktion | |--------|----------| | `^K` | Klip hele linjen (Cut) – gemmes i cutbuffer | | `^U` | Sæt ind fra cutbuffer (Paste/Uncut) | | `M-6` | Kopiér linjen UDEN at slette den | **Øvelse:** 1. Naviger til linjen med `- Ctrl+X : Afslut` 2. Tryk `^K` – linjen forsvinder (gemt i cutbuffer) 3. Naviger til toppen af filen (brug piletasterne) 4. Tryk `^U` – linjen indsættes ved cursorens position **Spørgsmål til lab-journal:** - Hvad sker der hvis du trykker `^K` tre gange i træk? - Hvad er forskellen på `^K` og `M-6`? > 📖 Se: *"Consecutive strokes of ^K add each cut line to this buffer"* (kapitel 3.4) > 📸 **Screenshot:** Tag et screenshot efter du har flyttet en linje. --- ### 4.2 – Markér og kopiér en tekstblok Du kan markere tekst med `^6` (Ctrl+6) eller `M-A` (Alt+A): 1. Flyt cursoren til starten af en tekstblok 2. Tryk `^6` for at sætte markeringen (marken) 3. Flyt cursoren til slutningen af blokken – teksten fremhæves 4. Tryk `M-6` for at kopiere den markerede blok 5. Naviger til et nyt sted og tryk `^U` for at indsætte > 📖 Se *"The Mark"* (kapitel 3.5, side 4) **Spørgsmål til lab-journal:** - Hvad sker der med markeringen efter du har kopieret teksten? - Kan du bruge Shift + piletaster til at markere tekst i nano? > 📸 **Screenshot:** Tag et screenshot med markeret tekst fremhævet. --- ## Opgave 5 – Søg og erstat > 📖 Læs *"Search and Replace"* (kapitel 3.6, side 4–5) ### 5.1 – Søg fremad i filen ``` ^F → søg fremad (ny søgning) ^W → søg fremad (alternativ genvej) M-F → find næste forekomst fremad M-B → find næste forekomst bagud ``` **Øvelse:** 1. Tryk `^F` – statuslinjen viser `Search:` 2. Skriv `nano` og tryk `Enter` 3. Cursoren hopper til første forekomst 4. Tryk `M-F` for at finde næste forekomst > 📸 **Screenshot:** Tag et screenshot med søgeresultat markeret. --- ### 5.2 – Erstat tekst ``` M-R eller ^\ → søg og erstat ``` **Øvelse:** 1. Tryk `^\` (Ctrl+\) 2. Skriv søgeteksten: `Ctrl+O` og tryk `Enter` 3. Skriv erstatningsteksten: `^O (Ctrl+O)` og tryk `Enter` 4. Nano spørger for hver forekomst: `Y` (yes), `N` (no), `A` (all), eller `Cancel` > 📖 Se: nano spørger for hver forekomst om du vil erstatte med *Yes*, *No*, *All* eller *Cancel* (kapitel 3.6, side 4–5) **Spørgsmål til lab-journal:** - Hvad gør `A` (All) i erstat-dialogen? - Kan du begrænse søg-og-erstat til kun en markeret tekstblok? > 📸 **Screenshot:** Tag et screenshot af erstat-dialogen. --- ## Opgave 6 – Fortryd og gentag ### 6.1 – Undo og Redo nano understøtter fuld undo/redo: ``` ^Z → fortryd (Undo) M-E → gentag (Redo) ``` > 💡 **Bemærk:** I nano er undo `^Z` – i modsætning til Vim hvor det er `u`. **Øvelse:** 1. Slet 3 linjer med `^K` tre gange 2. Tryk `^Z` tre gange for at genoprette linjerne 3. Brug `M-E` for at fortryde din fortrydelse (redo) **Spørgsmål til lab-journal:** - Hvad er undo-kommandoen i nano versus Vim? - Hvad sker der på statuslinjen når du bruger undo? > 📸 **Screenshot:** Tag et screenshot efter undo-operationer. --- ## Opgave 7 – Nyttige nano-indstillinger (bonus) > 📖 Læs kapitel 8 *"Nanorc Files"* (side 17) – nano kan konfigureres via `~/.nanorc` ### 7.1 – Opret en personlig nano-konfiguration ```bash nano ~/.nanorc ``` Tilføj følgende indstillinger: ``` ## Vis linjenumre som standard set linenumbers ## Slå auto-indentere til set autoindent ## Vis en scrollbar i højre side set indicator ## Blød linjebryning (lange linjer vises over flere rækker) set softwrap ## Gem markørposition mellem sessioner set positionlog ``` Gem med `^O` og afslut med `^X`. Åbn nu din øvelsesfil igen og se om indstillingerne er aktive: ```bash nano ~/nano-oevelse.txt ``` **Spørgsmål til lab-journal:** - Hvilke af dine nye indstillinger kan du se er aktive? - Hvad gør `set positionlog`? > 📖 Se *"Settings"* (kapitel 8.1, side 17–24) for fuld liste over mulige indstillinger > 📸 **Screenshot:** Tag et screenshot af nano med dine nye indstillinger aktive. --- ## nano vs. Vim – hurtig sammenligning | Funktion | nano | Vim | |----------|------|-----| | Tilstande | Ingen – skriv direkte | Normal / Insert / Visual | | Gem | `^O` + Enter | `:w` + Enter | | Afslut | `^X` | `:q` | | Gem og afslut | `^X` (spørger hvis ændret) | `:wq` eller `ZZ` | | Afslut uden at gemme | `^X` → `N` | `:q!` | | Klip linje | `^K` | `dd` | | Paste | `^U` | `p` | | Søg | `^F` / `^W` | `/søgeord` | | Undo | `^Z` | `u` | | Hjælp | `^G` | `:help` | | Indlæringskurve | Lav | Stejl | --- ## Aflevering – Lab-journal tjekliste - [ ] Screenshot af tomt nano-vindue ved opstart - [ ] Screenshot af hjælpeviseren (`^G`) - [ ] Screenshot med tekst og linjenumre aktiveret - [ ] Screenshot af nano under/efter gemning - [ ] Screenshot efter klip og indsæt - [ ] Screenshot med markeret tekstblok - [ ] Screenshot af søgeresultat - [ ] Screenshot af erstat-dialog - [ ] Screenshot efter undo-operationer - [ ] Screenshot af nano med `.nanorc`-indstillinger aktive (bonus) - [ ] Svar på alle spørgsmål i hvert afsnit --- ## Næste trin > **Lab 2.1 – VyOS Router – Grundlæggende konfiguration** > Du vil nu anvende både nano og Vim til at redigere konfigurationsfiler på din VyOS router og give dit lab-miljø internetadgang. --- *Lab udformet til brug med Lubuntu LXQt i Proxmox virtualiseret miljø.* *Ressource: GNU nano manual v8.7.1 – Chris Allegretta (tilgængelig på Canvas)*