Modul 1 · 1.4
Se deg rundt på kommandolinjen
Modul 1: Din første server · Lesetid: 11 minutter
Læringsmål: Etter denne leksjonen finner du veien på en Linux-server: du går gjennom mapper, leser og redigerer filer, ser hvor mye disk og minne som er ledig, og finner selv hjelp til en kommando.
Nøkkelbegreper: shell, prompt, mappe og sti, absolutt og relativ sti, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, tab-fullføring, uname, df, free, uptime, pipe, grep
Shellet og prompten
Når du har logget inn, snakker du med shellet: programmet som leser og kjører kommandoene dine. På Debian og Ubuntu er det som regel bash. Til venstre for markøren står prompten:
anna@web1:~$
root@web1:~#Den forteller deg tre ting: hvem du er (anna eller root), hvilken server du er på (web1) og hvilken mappe du står i (~ er din egen hjemmemappe). Det siste tegnet er viktig: $ betyr en vanlig bruker, # betyr root. Ser du #, kjører hver kommando med alle rettigheter. Skriv rolig der.
Mapper og stier
Alt på Linux henger på ett tre som starter i / (rotmappen, ikke å forveksle med brukeren root). Noen mapper møter du igjen og igjen i dette kurset:
| Mappe | Hva den inneholder |
|---|---|
/etc | Konfigurasjon: SSH (/etc/ssh), webserver (/etc/nginx), brukere (/etc/passwd) |
/var/log | Loggfiler (i tillegg til journalen, leksjon 6.2) |
/var/lib | Data fra programmer, for eksempel databaser og Docker |
/home | Hjemmemapper for vanlige brukere, som /home/anna |
/root | Hjemmemappen til root |
/usr | Installerte programmer og biblioteker |
/tmp | Midlertidige filer, ryddes jevnlig |
/srv eller /var/www | Vanlig plassering for nettsteder og tjenester |
En absolutt sti starter i /, for eksempel /etc/ssh/sshd_config. En relativ sti starter der du står nå: står du i /etc, er ssh/sshd_config den samme filen. .. er mappen over, . er gjeldende mappe.
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 uten noe etter tar deg tilbake til hjemmemappen din.
Se på filer
ls -l viser mer enn bare navn:
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.pubFra venstre mot høyre: rettighetene, antall lenker, eier, gruppe, størrelse i byte, dato og navn. Legg merke til forskjellen: den hemmelige vertsnøkkelen (-rw-------) kan bare root lese, den offentlige (-rw-r--r--) kan alle lese. I leksjon 3.1 lærer du å lese disse rettighetene nøyaktig. ls -la viser også skjulte filer: navn som begynner med punktum, som .ssh.
For å lese innholdet:
cat bestand: hele filen på en gang, praktisk for korte filer;less bestand: bla med piltastene og mellomrom, søk med/woord, avslutt medq;head -n 20 bestandogtail -n 20 bestand: de første eller siste linjene;tail -ffortsetter å følge med når nye linjer kommer til.
Rediger en fil med nano
Konfigurasjon endrer du i en teksteditor. nano er den enkleste:
root@web1:~# nano /etc/hostsNederst står hurtigtastene; ^ betyr Ctrl. Lagre med Ctrl+O og Enter, avslutt med Ctrl+X, søk med Ctrl+W. Jobber du allerede med vim, kan du bruke den; vim er ikke alltid fullt tilgjengelig på en minimal installasjon.
Tre vaner som sparer deg for mye trøbbel senere:
- Lag en kopi først:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - Test konfigurasjonen før du starter en tjeneste på nytt. Mange programmer har en egen kommando for det:
sshd -t,nginx -t(leksjon 2.2 og 7.2). - Endre én ting om gangen, så du vet hva som forårsaket en feil.
Hvordan står det til med serveren din?
Noen kommandoer du bruker i enhver situasjon:
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: hvilken kjerne som kjører.uptime: hvor lenge serveren har vært på, og load average over 1, 5 og 15 minutter. Grovt sagt: en load som over tid ligger over antall prosessorkjerner, betyr at noe må vente.df -h: ledig diskplass (-her "human readable", med G og M). En full disk er en av de vanligste årsakene til at en server "plutselig" stopper.free -h: minne. Se på kolonnenavailable, ikkefree: Linux bruker ledig minne som cache (buff/cache) og gir det tilbake når et program trenger det.
Og nettverket ditt, fra leksjon 1.2: ip -brief address.
Finn hjelp
Du trenger ikke huske alle valgene. Men du må vite hvor de står:
man sshåpner håndboken (manual page) for en kommando. Bla som iless, søk med/.man sshd_configbeskriver hvert innstillbart ord i den filen.ls --helpgir en kort liste over valg for de fleste kommandoer.- Tab-tasten fullfører navn på kommandoer og filer. To trykk på Tab viser mulighetene. Det sparer deg for skrivefeil i lange stier.
- Pil opp henter tidligere kommandoer;
historyviser alle.
På en minimal installasjon mangler håndbøkene noen ganger. På Debian og Ubuntu installerer du dem med apt install man-db (modul 4).
Pipes og grep
Du kan koble kommandoer sammen med en pipe (|): utdataene fra den ene blir inndataene til den neste. grep filtrerer ut linjer som inneholder et ord:
anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | lessLinjer som begynner med #, er kommentarer: de gjør ingenting og viser ofte standardverdien. I leksjon 2.2 ser du hvorfor det kan være forvirrende for SSH.
Fallgruver
- Lime inn uten å lese. Kommandoer fra internett gjør nøyaktig det som står, også når det er noe annet enn tittelen på artikkelen lover. Les hver kommando før du kjører den, særlig når du er root.
rmhar ingen papirkurv. Borte er borte. Vær ekstra forsiktig medrm -r(en mappe med alt i) og med jokertegn som*.- Store bokstaver teller.
/etc/SSHfinnes ikke;/etc/sshfinnes. - Mellomrom i stier må stå i anførselstegn:
cat "/srv/mijn site/index.html". Enda bedre: ikke bruk mellomrom i navn på en server.
Oppsummering
- Prompten forteller hvem du er, hvilken server du er på og hvor du står;
#betyr root. - Konfigurasjon ligger i
/etc, logger i/var/log, data fra programmer i/var/lib, hjemmemapper i/home. - Les med
cat,less,headogtail; rediger mednanoetter å ha laget en kopi, og test konfigurasjonen før du starter på nytt. df -h,free -h,uptimeogip -brief addressviser hvordan det står til med serveren din.- Hjelp finner du i
manog--help; Tab fullfører; med|oggrepfiltrerer du utdata.
Quiz
Oppgave
Oppgave O1.4: Bli kjent med serveren din. Kjør kommandoene fra leksjonen på din egen server og fyll inn: distribusjon og versjon, kjerne, ledig diskplass, tilgjengelig minne, load, IPv4 og IPv6, og hvilke filer i /etc/ssh som bare root kan lese. Svar deretter på to spørsmål om det du så.
Oppgave O1.4: Bli kjent med serveren din
Denne oppgaven gjør du selv; ingen kontrollerer den. Kryss av det du har gjort, og merk oppgaven som fullført.
available regner også med hurtigbufferminnet som Linux frigjør. .pub-filen er den offentlige delen som hver klient ser. Filen uten .pub er hemmelig (600, root), for den som har den, kan utgi seg for å være serveren din.
Avkrysningene og notatene dine blir kun i denne nettleseren; vi sender dem ikke noe sted. Er du logget inn, lagrer vi kun i Mine kurs at du har gjort oppgaven.
Les mer
- Utvid diskplassen på VPS-en din
- SSH-tilgang og Terminal i DirectAdmin: hvilke pakker og hvordan du logger inn
- Debian-referansen, kapittel 1 (veiledning for kommandolinjen): 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
