Moodul 1 · 1.4
Käsureal ringi vaatamine
Moodul 1: Sinu esimene server · Lugemisaeg: 11 minutit
Õpieesmärk: Pärast seda õppetundi oskad Linuxi serveris orienteeruda: kaustades liikuda, faile lugeda ja muuta, näha, kui palju ketast ja mälu on vaba, ning ise käsu kohta abi otsida.
Põhimõisted: shell, prompt, kaust ja tee, absoluutne ja suhteline tee, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, Tab-klahviga lõpetamine, uname, df, free, uptime, pipe (toru), grep
Shell ja prompt
Pärast sisselogimist suhtled shelliga: see on programm, mis loeb ja käivitab sinu käske. Debianis ja Ubuntus on see tavaliselt bash. Kursorist vasakul on prompt:
anna@web1:~$
root@web1:~#See ütleb kolm asja: kes sa oled (anna või root), millises serveris (web1) ja millises kaustas sa asud (~ on sinu kodukaust). Viimane märk on oluline: $ tähendab tavakasutajat, # tähendab rooti. Kui näed #, käivitub iga käsk kõigi õigustega. Trüki seal rahulikult.
Kaustad ja teed
Linuxis ripub kõik ühe puu küljes, mis algab kaustast / (juurkaust, mitte segi ajada kasutajaga root). Mõned kaustad tulevad sel kursusel ikka ja jälle ette:
| Kaust | Mis seal on |
|---|---|
/etc | Seadistus: SSH (/etc/ssh), veebiserver (/etc/nginx), kasutajad (/etc/passwd) |
/var/log | Logifailid (journali kõrval, õppetund 6.2) |
/var/lib | Programmide andmed, näiteks andmebaasid ja Docker |
/home | Tavakasutajate kodukaustad, näiteks /home/anna |
/root | Rooti kodukaust |
/usr | Paigaldatud programmid ja teegid |
/tmp | Ajutised failid, need koristatakse ära |
/srv või /var/www | Tavaline koht veebisaitidele ja teenustele |
Absoluutne tee algab kaustast /, näiteks /etc/ssh/sshd_config. Suhteline tee algab sealt, kus sa praegu oled: kui asud kaustas /etc, on ssh/sshd_config sama fail. .. on ülemine kaust, . praegune kaust.
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 ilma millegita viib sind tagasi kodukausta.
Failide vaatamine
ls -l näitab rohkem kui ainult nimesid:
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.pubVasakult paremale: õigused, linkide arv, omanik, grupp, suurus baitides, kuupäev ja nimi. Pane tähele erinevust: salajast host key'd (-rw-------) tohib lugeda ainult root, avalikku (-rw-r--r--) kõik. Õppetunnis 3.1 õpid neid õigusi täpselt lugema. ls -la näitab ka peidetud faile: nimesid, mis algavad punktiga, näiteks .ssh.
Sisu lugemiseks:
cat bestand: kogu fail korraga, mugav lühikeste failide puhul;less bestand: sirvi nooleklahvide ja tühikuga, otsi klahviga/woord, välju klahvigaq;head -n 20 bestandjatail -n 20 bestand: esimesed või viimased read;tail -fjälgib edasi, kui ridu juurde tuleb.
Faili muutmine nanoga
Seadistust muudad tekstiredaktoris. nano on kõige lihtsam:
root@web1:~# nano /etc/hostsAll on kiirklahvid; ^ tähendab Ctrl-klahvi. Salvestamine on Ctrl+O ja Enter, väljumine Ctrl+X, otsimine Ctrl+W. Kui juba kasutad vim, võid seda teha; minimaalse paigalduse puhul ei ole vim alati täielikult olemas.
Kolm harjumust, mis hoiavad hiljem ära palju peavalu:
- Tee esmalt koopia:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - Testi seadistust, enne kui teenuse taaskäivitad. Paljudel programmidel on selleks oma käsk:
sshd -t,nginx -t(õppetunnid 2.2 ja 7.2). - Muuda korraga üht asja, et teaksid, mis vea põhjustas.
Kuidas su serveril läheb?
Mõned käsud, mida kasutad igas olukorras:
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: milline kernel töötab.uptime: kui kaua server on juba töötanud ja load average 1, 5 ja 15 minuti kohta. Laias laastus: kui koormus on pikalt suurem kui protsessorituumade arv, tuleb oodata.df -h: vaba kettaruum (-htähendab "human readable", ühikutega G ja M). Täis ketas on üks levinumaid põhjuseid, miks server "niisama" seisma jääb.free -h: mälu. Vaata veerguavailable, mittefree: Linux kasutab vaba mälu vahemäluna (buff/cache) ja annab selle tagasi, kui mõni programm seda vajab.
Ja sinu võrk, õppetunnist 1.2: ip -brief address.
Abi leidmine
Kõiki valikuid ei pea meeles pidama. Küll aga pead teadma, kust need leida:
man sshavab käsu juhendi (manual page). Sirvi nagulesspuhul, otsi klahviga/.man sshd_configkirjeldab iga seadistatavat sõna selles failis.ls --helpannab enamiku käskude puhul lühikese valikute loendi.- Tab-klahv lõpetab käskude ja failide nimed. Kaks korda Tab näitab võimalusi. Nii väldid trükivigu pikkades teedes.
- Nool üles toob varasemad käsud tagasi;
historynäitab neid kõiki.
Minimaalse paigalduse puhul võivad juhendid puududa. Debianis ja Ubuntus paigaldad need käsuga apt install man-db (moodul 4).
Pipe'id ja grep
Käske saab omavahel ühendada pipe'iga (|): ühe käsu väljund on järgmise sisend. grep filtreerib read, mis sisaldavad mingit sõna:
anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | lessRead, mis algavad märgiga #, on kommentaarid: need ei tee midagi ja näitavad sageli vaikeväärtust. Õppetunnis 2.2 näed, miks see SSH puhul segadust võib tekitada.
Lõksud
- Kleepimine lugemata. Internetist pärit käsud teevad täpselt seda, mis on kirjas, ka siis, kui see erineb artikli pealkirja lubadusest. Loe iga käsk läbi, enne kui selle käivitad, eriti kui oled root.
rmpuhul prügikasti pole. Mis läinud, see läinud. Ole eriti ettevaatlik käsugarm -r(kaust koos kogu sisuga) ja metamärkidega nagu*.- Suurtähed loevad.
/etc/SSHei ole olemas,/etc/sshon. - Tühikud teedes peavad olema jutumärkides:
cat "/srv/mijn site/index.html". Veel parem: ära kasuta serveris nimedes tühikuid.
Kokkuvõte
- Prompt ütleb, kes sa oled, millises serveris ja kus;
#tähendab rooti. - Seadistus on kaustas
/etc, logid kaustas/var/log, programmide andmed kaustas/var/lib, kodukaustad kaustas/home. - Loe käskudega
cat,less,headjatail; muuda käsuganano, pärast koopia tegemist, ja testi seadistust enne taaskäivitamist. df -h,free -h,uptimejaip -brief addressnäitavad, kuidas su serveril läheb.- Abi leiad käskudest
manja--help; Tab lõpetab nimesid; märgi|ja käsugagrepfiltreerid väljundit.
Test (quiz)
Ülesanne
Ülesanne O1.4: Tutvu oma serveriga. Käivita õppetunni käsud oma serveris ja täida: distributsioon ja versioon, kernel, vaba kettaruum, saadaolev mälu, koormus, IPv4 ja IPv6 ning millised failid kaustas /etc/ssh on loetavad ainult rootile. Seejärel vasta kahele küsimusele selle kohta, mida nägid.
Ülesanne O1.4: Tutvu oma serveriga
Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.
available arvestab ka vahemälu, mille Linux vajadusel vabastab. .pub-fail on avalik osa, mida näeb iga klient; ilma .pub-laiendita fail on salajane (600, root), sest kellel see on, saab end sinu serverina esitleda.
Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.
Loe edasi
- VPS-i kettaruumi suurendamine
- SSH-ligipääs ja Terminal DirectAdminis: millistes pakettides ja kuidas sisse logida
- Debiani teatmik, 1. peatükk (käsurea juhend): 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
