root@fro-cyberlov:~$

kursledare@fro-cyberlov:~$ cat terminal-intro.txt

Terminal-introduktion

Innan vi hackar något, lär vi oss verktygen. Du får en egen liten Linux-sandlåda i webbläsaren, helt separat från alla andra. Testa dig fram, det går inte att förstöra något permanent.

Kommandon

Alla kommandon från presentationen, i samma ordning. Öppna en rad för syntax och förklaring.

Grunderna

whoami $ whoami

Skriver ut vilken användare du är inloggad som. Det enklaste kommandot som finns.

→ Testa i övningen ”Grunderna” i presentationen.

uname -a $ uname -a

Visar information om systemet du sitter på: operativsystem, version och mer.

→ Testa i övningen ”Grunderna” i presentationen.

pwd $ pwd

print working directory. Skriver ut var i filsystemet du befinner dig just nu.

→ Testa i övningen ”Grunderna” i presentationen.

ls $ ls

list. Listar filer och mappar där du står just nu.

→ Testa i övningen ”Grunderna” i presentationen.

ls -la $ ls -la

Samma kommando, men -a visar dolda filer och -l visar detaljer som rättigheter, storlek och datum.

→ Testa i övningen ”Grunderna” i presentationen.

cd $ cd <mapp> $ cd .. $ cd ~ $ cd / $ cd .

change directory. Flyttar dig relativt (cd mapp, cd ..) eller absolut (cd ~ för hemmappen, cd / för roten).

→ Testa i övningen ”Grunderna” i presentationen.

cat $ cat <fil>

concatenate. Skriver ut hela innehållet i en fil direkt i terminalen.

→ Testa i övningen ”Grunderna” i presentationen.

Flaggor

Flaggor till ls -l -a -r -t -h

Läggs till efter ett kommando för att ändra hur det beter sig. -l detaljer, -a dolda filer, -r vänder ordningen, -t sorterar efter tid, -h filstorlek du faktiskt förstår.

→ Testa i övningen ”Flaggor” i presentationen.

--help / man $ kommando --help $ man kommando

--help visar en kort sammanfattning, man ger en fullständig manual för kommandot.

→ Testa i övningen ”Flaggor” i presentationen.

Filhantering

mkdir $ mkdir <mapp>

make directory. Skapar en ny, tom mapp.

→ Testa i övningen ”Filhantering” i presentationen.

touch $ touch <fil>

Skapar en ny, tom fil. Uppdaterar bara tidsstämpeln om filen redan finns.

→ Testa i övningen ”Filhantering” i presentationen.

cp $ cp <fil> <ny fil>

copy. Kopierar en fil, originalet finns kvar. Lägg till -r för att kopiera hela mappar.

→ Testa i övningen ”Filhantering” i presentationen.

mv $ mv <fil> <ny plats>

move. Flyttar en fil, eller byter namn på den. Till skillnad från cp finns originalet inte kvar.

→ Testa i övningen ”Filhantering” i presentationen.

rm $ rm <fil> $ rm -r <mapp>

remove. Raderar en fil, eller med -r en hel mapp. Det finns ingen papperskorg, raderat är raderat.

→ Testa i övningen ”Filhantering” i presentationen.

Sök i text

grep $ grep <ord> <fil>

Söker igenom en fil efter ett ord eller mönster och skriver ut de rader som matchar.

→ Testa i övningen ”Sök i text” i presentationen.

grep -r $ grep -r <ord> <mapp>

recursive. Söker i alla filer i en mapp, inklusive undermappar.

→ Testa i övningen ”Sök i text” i presentationen.

Läsa, skriva och kombinera

echo $ echo "text"

Skriver ut text i terminalen. Blir viktigt i kombination med > och |.

→ Testa i övningen ”Kombinera” i presentationen.

tail / head $ head <fil> $ tail <fil>

head visar de första raderna i en fil, tail visar de sista. Bra för långa loggfiler.

→ Testa i övningen ”Kombinera” i presentationen.

Pipes: | $ kommando1 | kommando2

Skickar resultatet från ett kommando vidare in i nästa, t.ex. cat fil.txt | grep ord.

→ Testa i övningen ”Kombinera” i presentationen.

Redirect: > $ kommando > fil

Skickar resultatet till en fil istället för till skärmen. Skriver över filen om den redan finns.

→ Testa i övningen ”Kombinera” i presentationen.

Prata med webben

curl $ curl <url>

Hämtar innehållet från en webbadress direkt i terminalen. Vårt övnings-API för det här avsnittet: http://practice-api:8000/. Prova curl http://practice-api:8000/api/hej.

→ Testa i övningen ”Prata med webben” i presentationen.

curl -I $ curl -I <url>

Hämtar bara svarets header, inte hela innehållet. Snabbt sätt att se om en sida svarar. Samma övnings-API som ovan.

→ Testa i övningen ”Prata med webben” i presentationen.

curl + grep $ curl <url> | grep <ord>

Kombinerar curl och grep med en pipe. Prova curl http://practice-api:8000/api/logg | grep fel.

→ Testa i övningen ”Prata med webben” i presentationen.

Rättigheter

chmod $ chmod +x <fil>

change mode. Ändrar rättigheterna på en fil. +x lägger till körrättighet, vanligt för egna script.

Textredigerare

nano $ nano <fil>

En enkel textredigerare direkt i terminalen. Ctrl+O sparar, Ctrl+X avslutar.

→ Testa i övningen ”Textredigerare” i presentationen.

vim $ vim <fil>

En kraftfullare textredigerare med brant inlärningskurva. Fastnar du: tryck Esc, skriv :q, tryck Enter.

Pakethanterare

Pakethanterare $ apt install <namn> $ brew install <namn> $ winget install <namn>

Installerar nya kommandon och program. apt på Linux, brew på Mac, winget på Windows.

Script

Script: grundstruktur #!/bin/bash

Första raden i ett script talar om vilket skal som ska köra filen. Gör filen körbar med chmod +x, kör den sedan med ./fil.sh.

→ Testa i övningen ”Ditt första script” i presentationen.

Variabler: read read <variabelnamn>

Läser in vad användaren skriver och sparar det i en variabel.

Villkor: if / then / else if [ "$tal" -gt 10 ]; then ... fi

Låter scriptet välja olika väg beroende på ett värde.

→ Testa i övningen ”Gissa talet” i presentationen.

Loopar: for for i in {1..10}; do ... done

Upprepar samma kommandon flera gånger, med ett nytt värde varje gång.

→ Testa i övningen ”Skapa tio filer” i presentationen.

Checka in