Modul 1 · 1.4
Se dig om på kommandolinjen
Modul 1: Din første server · Læsetid: 11 minutter
Læringsmål: Efter denne lektion kan du finde rundt på en Linux-server: gå gennem mapper, læse og redigere filer, se hvor meget disk og hukommelse der er ledigt, og selv slå hjælp op til en kommando.
Centrale begreber: shell, prompt, mappe og sti, absolut og relativ sti, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, tab-fuldførelse, uname, df, free, uptime, pipe, grep
Shellen og prompten
Når du har logget ind, taler du med shellen: programmet, der læser og udfører dine kommandoer. På Debian og Ubuntu er det som regel bash. Til venstre for markøren står prompten:
anna@web1:~$
root@web1:~#Den fortæller tre ting: hvem du er (anna eller root), på hvilken server (web1) og i hvilken mappe du står (~ er din egen hjemmemappe). Det sidste tegn er vigtigt: $ betyder en almindelig bruger, # betyder root. Ser du #, kører hver kommando med alle rettigheder. Skriv roligt dér.
Mapper og stier
Alt på Linux hænger på ét træ, der begynder ved / (rodmappen, ikke at forveksle med brugeren root). Nogle mapper møder du igen og igen i dette kursus:
| Mappe | Hvad den indeholder |
|---|---|
/etc | Konfiguration: SSH (/etc/ssh), webserver (/etc/nginx), brugere (/etc/passwd) |
/var/log | Logfiler (ud over journalen, lektion 6.2) |
/var/lib | Data fra programmer, for eksempel databaser og Docker |
/home | Hjemmemapper for almindelige brugere, som /home/anna |
/root | Hjemmemappe for root |
/usr | Installerede programmer og biblioteker |
/tmp | Midlertidige filer, bliver ryddet op |
/srv eller /var/www | Almindeligt sted til websites og tjenester |
En absolut sti begynder ved /, for eksempel /etc/ssh/sshd_config. En relativ sti begynder, hvor du står nu: står du i /etc, er ssh/sshd_config den samme fil. .. er mappen ovenover, . den aktuelle 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 uden noget bagefter bringer dig tilbage til din hjemmemappe.
Se på filer
ls -l viser mere end bare navne:
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 mod højre: rettighederne, antal links, ejer, gruppe, størrelse i bytes, dato og navn. Læg mærke til forskellen: den hemmelige host key (-rw-------) må kun root læse, den offentlige (-rw-r--r--) alle. I lektion 3.1 lærer du at læse disse rettigheder præcist. ls -la viser også skjulte filer: navne, der begynder med et punktum, som .ssh.
For at læse indholdet:
cat bestand: hele filen på én gang, praktisk til korte filer;less bestand: blad med piletasterne og mellemrum, søg med/woord, stop medq;head -n 20 bestandogtail -n 20 bestand: de første eller sidste linjer;tail -fbliver ved med at følge med, når der kommer linjer til.
Redigér en fil med nano
Konfiguration retter du i en teksteditor. nano er den enkleste:
root@web1:~# nano /etc/hostsNederst står genvejstasterne; ^ betyder Ctrl. Gem med Ctrl+O og Enter, afslut med Ctrl+X, søg med Ctrl+W. Arbejder du allerede med vim, må du gerne bruge den; vim er ikke altid fuldt klar på en minimal installation.
Tre vaner, der sparer dig for mange problemer senere:
- Lav først en kopi:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - Test konfigurationen, før du genstarter en tjeneste. Mange programmer har deres egen kommando til det:
sshd -t,nginx -t(lektion 2.2 og 7.2). - Ændr én ting ad gangen, så du ved, hvad der forårsagede en fejl.
Hvordan har din server det?
Nogle kommandoer, du bruger i enhver situation:
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 kernel der kører.uptime: hvor længe serveren har været tændt, og load average over 1, 5 og 15 minutter. Groft sagt: en load, der i længere tid ligger over antallet af processorkerner, betyder, at der ventes.df -h: ledig diskplads (-her "human readable", med G og M). En fuld disk er en af de hyppigste årsager til, at en server "bare" stopper.free -h: hukommelse. Kig på kolonnenavailable, ikkefree: Linux bruger ledig hukommelse som cache (buff/cache) og giver den tilbage, når et program har brug for den.
Og dit netværk, fra lektion 1.2: ip -brief address.
Find hjælp
Du behøver ikke huske alle muligheder. Men du skal vide, hvor de står:
man sshåbner manualen (manual page) for en kommando. Blad som iless, søg med/.man sshd_configbeskriver hvert indstillingsord i den fil.ls --helpgiver ved de fleste kommandoer en kort liste over muligheder.- Tab-tasten fuldfører navne på kommandoer og filer. To gange Tab viser mulighederne. Det sparer slåfejl i lange stier.
- Pil op henter tidligere kommandoer frem;
historyviser dem alle.
På en minimal installation mangler manualerne nogle gange. På Debian og Ubuntu installerer du dem med apt install man-db (modul 4).
Pipes og grep
Kommandoer kan du kæde sammen med en pipe (|): output fra den ene er input til den næste. grep filtrerer linjer, der indeholder et ord:
anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | lessLinjer, der begynder med #, er kommentarer: de gør ingenting og viser ofte standardværdien. I lektion 2.2 ser du, hvorfor det kan være forvirrende ved SSH.
Faldgruber
- Indsæt uden at læse. Kommandoer fra internettet gør præcis det, der står, også selvom det er noget andet end det, artiklens titel lover. Læs hver kommando, før du kører den, og især når du er root.
rmhar ingen papirkurv. Væk er væk. Vær ekstra forsigtig medrm -r(en mappe med alt indhold) og med jokertegn som*.- Store bogstaver tæller.
/etc/SSHfindes ikke;/etc/sshgør. - Mellemrum i stier skal stå i anførselstegn:
cat "/srv/mijn site/index.html". Bedre: brug ikke mellemrum i navne på en server.
Opsummering
- Prompten fortæller, hvem du er, på hvilken server og hvor;
#betyder root. - Konfiguration ligger i
/etc, logs i/var/log, data fra programmer i/var/lib, hjemmemapper i/home. - Læs med
cat,less,headogtail; redigér mednano, efter en kopi, og test konfigurationen, før du genstarter. df -h,free -h,uptimeogip -brief addressviser, hvordan din server har det.- Hjælp finder du i
manog--help; Tab fuldfører; med|oggrepfiltrerer du output.
Quiz
Opgave
Opgave O1.4: Lær din server at kende. Kør kommandoerne fra lektionen på din egen server, og udfyld: distribution og version, kernel, ledig diskplads, tilgængelig hukommelse, load, IPv4 og IPv6, og hvilke filer i /etc/ssh kun root kan læse. Besvar derefter to spørgsmål om det, du så.
Opgave O1.4: Lær din server at kende
Denne opgave laver du selv; ingen tjekker den. Afkryds hvad du har gjort, og markér opgaven som udført.
available tæller også den cachehukommelse med, som Linux frigiver. .pub-filen er den offentlige del, som alle klienter ser; filen uden .pub er hemmelig (600, root), for den, der har den, kan udgive sig for at være din server.
Dine afkrydsninger og noter forbliver kun i denne browser; vi sender dem ingen steder hen. Er du logget ind, gemmer vi kun i Mine kurser, at du har udført opgaven.
Læs mere
- Udvid diskpladsen på din VPS
- SSH-adgang og Terminal i DirectAdmin: hvilke pakker og hvordan du logger ind
- Debian-reference, kapitel 1 (vejledning til 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
- De første kommandoer på din VPS: kig dig omkring på kommandolinjen
- VPS: fra første login til sikker server 1.4: Konsollen: din VPS i din browser
