Modul 1 · 1.4
Titta runt på kommandoraden
Modul 1: Din första server · Lästid: 11 minuter
Lärandemål: Efter den här lektionen hittar du på en Linux-server: du går mellan mappar, läser och redigerar filer, ser hur mycket disk och minne som är ledigt och hittar själv hjälp för ett kommando.
Nyckelbegrepp: shell, prompt, mapp och sökväg, absolut och relativ sökväg, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, tabbkomplettering, uname, df, free, uptime, pipe, grep
Skalet och prompten
När du har loggat in pratar du med skalet (shell): programmet som läser och kör dina kommandon. På Debian och Ubuntu är det oftast bash. Till vänster om markören står prompten:
anna@web1:~$
root@web1:~#Den berättar tre saker: vem du är (anna eller root), på vilken server (web1) och i vilken mapp du står (~ är din egen hemmapp). Det sista tecknet är viktigt: $ betyder en vanlig användare, # betyder root. Ser du # körs varje kommando med alla rättigheter. Skriv lugnt där.
Mappar och sökvägar
Allt i Linux hänger i ett enda träd som börjar vid / (rotmappen, inte att förväxla med användaren root). Några mappar stöter du på hela tiden i den här kursen:
| Mapp | Vad som finns där |
|---|---|
/etc | Konfiguration: SSH (/etc/ssh), webbserver (/etc/nginx), användare (/etc/passwd) |
/var/log | Loggfiler (utöver journalen, lektion 6.2) |
/var/lib | Data från program, till exempel databaser och Docker |
/home | Hemmappar för vanliga användare, som /home/anna |
/root | Hemmapp för root |
/usr | Installerade program och bibliotek |
/tmp | Tillfälliga filer, rensas bort |
/srv eller /var/www | Vanlig plats för webbplatser och tjänster |
En absolut sökväg börjar vid /, till exempel /etc/ssh/sshd_config. En relativ sökväg börjar där du står just nu: står du i /etc är ssh/sshd_config samma fil. .. är mappen ovanför, . den aktuella mappen.
anna@web1:~$ pwd
/home/anna
anna@web1:~$ cd /etc/ssh
anna@web1:/etc/ssh$ ls
moduli ssh_config ssh_config.d sshd_config sshd_config.d ssh_host_ed25519_key ssh_host_ed25519_key.pub ...
anna@web1:/etc/ssh$ cd ..
anna@web1:/etc$ cd
anna@web1:~$cd utan något efter tar dig tillbaka till din hemmapp.
Titta på filer
ls -l visar mer än bara namn:
anna@web1:/etc/ssh$ ls -l sshd_config ssh_host_ed25519_key ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 3248 Aug 12 10:01 sshd_config
-rw------- 1 root root 399 Nov 2 14:20 ssh_host_ed25519_key
-rw-r--r-- 1 root root 91 Nov 2 14:20 ssh_host_ed25519_key.pubFrån vänster till höger: rättigheterna, antalet länkar, ägare, grupp, storlek i byte, datum och namn. Se skillnaden: den hemliga värdnyckeln (-rw-------) får bara root läsa, den publika (-rw-r--r--) får alla läsa. I lektion 3.1 lär du dig läsa de här rättigheterna exakt. ls -la visar även dolda filer: namn som börjar med en punkt, som .ssh.
För att läsa innehållet:
cat bestand: hela filen på en gång, praktiskt för korta filer;less bestand: bläddra med piltangenterna och mellanslag, sök med/woord, avsluta medq;head -n 20 bestandochtail -n 20 bestand: de första eller sista raderna;tail -ffortsätter att visa nya rader när de dyker upp.
Redigera en fil med nano
Konfiguration ändrar du i en textredigerare. nano är den enklaste:
root@web1:~# nano /etc/hostsLängst ner står kortkommandona; ^ betyder Ctrl. Spara gör du med Ctrl+O och Enter, avsluta med Ctrl+X, sök med Ctrl+W. Jobbar du redan med vim går det bra att använda den; vim är inte alltid fullständigt installerad på en minimal installation.
Tre vanor som sparar dig mycket elände senare:
- Gör först en kopia:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - Testa konfigurationen innan du startar om en tjänst. Många program har ett eget kommando för det:
sshd -t,nginx -t(lektion 2.2 och 7.2). - Ändra en sak i taget, så att du vet vad som orsakade ett fel.
Hur mår din server?
Några kommandon som du använder i alla lägen:
anna@web1:~$ uname -a
Linux web1 6.12.0-... #1 SMP ... x86_64 GNU/Linux
anna@web1:~$ uptime
10:12:44 up 3 days, 2:10, 1 user, load average: 0.08, 0.05, 0.01
anna@web1:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 3.1G 35G 9% /
anna@web1:~$ free -h
total used free shared buff/cache available
Mem: 3.8Gi 412Mi 2.9Gi 1.0Mi 720Mi 3.4Gi
Swap: 0B 0B 0Buname -a: vilken kärna som körs.uptime: hur länge servern har varit igång och load average över 1, 5 och 15 minuter. Grovt sagt: en last som länge ligger över antalet processorkärnor betyder att saker får vänta.df -h: ledigt diskutrymme (-hstår för "human readable", med G och M). En full disk är en av de vanligaste orsakerna till att en server "bara" stannar.free -h: minne. Titta på kolumnenavailable, intefree: Linux använder ledigt minne som cache (buff/cache) och lämnar tillbaka det när ett program behöver det.
Och ditt nätverk, från lektion 1.2: ip -brief address.
Hitta hjälp
Du behöver inte komma ihåg alla flaggor. Men du behöver veta var de finns:
man sshöppnar manualen (manual page) för ett kommando. Bläddra som iless, sök med/.man sshd_configbeskriver varje inställning som går att använda i den filen.ls --helpger en kort lista med flaggor för de flesta kommandon.- Tabbtangenten kompletterar namn på kommandon och filer. Två tryck på Tab visar alternativen. Det sparar stavfel i långa sökvägar.
- Pil upp hämtar tidigare kommandon;
historyvisar alla.
På en minimal installation saknas ibland manualerna. På Debian och Ubuntu installerar du dem med apt install man-db (modul 4).
Pipes och grep
Du kan koppla ihop kommandon med en pipe (|): utdata från det ena blir indata till nästa. grep filtrerar fram rader som innehåller ett ord:
anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | lessRader som börjar med # är kommentarer: de gör ingenting och visar ofta standardvärdet. I lektion 2.2 ser du varför det kan vara förvirrande för SSH.
Fallgropar
- Klistra in utan att läsa. Kommandon från internet gör exakt det som står, även om det är något annat än artikelns rubrik lovar. Läs varje kommando innan du kör det, särskilt om du är root.
rmhar ingen papperskorg. Borta är borta. Var extra försiktig medrm -r(en mapp med allt innehåll) och med jokertecken som*.- Versaler spelar roll.
/etc/SSHfinns inte;/etc/sshfinns. - Mellanslag i sökvägar måste stå inom citattecken:
cat "/srv/mijn site/index.html". Ännu bättre: använd inga mellanslag i namn på en server.
Sammanfattning
- Prompten berättar vem du är, på vilken server och var;
#betyder root. - Konfiguration finns i
/etc, loggar i/var/log, programdata i/var/lib, hemmappar i/home. - Läs med
cat,less,headochtail; redigera mednanoefter att ha gjort en kopia, och testa konfigurationen innan du startar om. df -h,free -h,uptimeochip -brief addressvisar hur din server mår.- Hjälp finns i
manoch--help; Tab kompletterar; med|ochgrepfiltrerar du utdata.
Quiz
Uppgift
Uppgift O1.4: Lär känna din server. Kör kommandona från lektionen på din egen server och fyll i: distribution och version, kärna, ledigt diskutrymme, tillgängligt minne, last, IPv4 och IPv6, samt vilka filer i /etc/ssh som bara root kan läsa. Svara sedan på två frågor om det du såg.
Uppgift O1.4: Lär känna din server
Den här uppgiften gör du själv; ingen kontrollerar den. Bocka av vad du har gjort och markera uppgiften som klar.
available räknar även med cacheminnet som Linux frigör. Filen .pub är den publika delen som varje klient ser. Filen utan .pub är hemlig (600, root), eftersom den som har den kan utge sig för att vara din server.
Dina bockar och anteckningar sparas bara i den här webbläsaren; vi skickar dem ingenstans. Är du inloggad sparar vi i Mina kurser bara att du har gjort uppgiften.
Läs mer
- Utöka diskutrymmet på din VPS
- SSH-åtkomst och Terminal i DirectAdmin: vilka paket som ingår och hur du loggar in
- Debian-referensen, kapitel 1 (guide till kommandoraden): https://www.debian.org/doc/manuals/debian-reference/ch01.en.html
- Filesystem Hierarchy Standard 3.0: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
