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.