Moduuli 1 · 1.4
Komentorivillä liikkuminen
Moduuli 1: Ensimmäinen palvelimesi · Lukuaika: 11 minuuttia
Tavoite: Tämän oppitunnin jälkeen osaat liikkua Linux-palvelimella: selata kansioita, lukea ja muokata tiedostoja, nähdä, paljonko levytilaa ja muistia on vapaana, ja etsiä itse ohjeita komennolle.
Keskeiset käsitteet: shell, kehote, kansio ja polku, absoluuttinen ja suhteellinen polku, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, sarkaintäydennys, uname, df, free, uptime, putki (pipe), grep
Shell ja kehote
Kirjautumisen jälkeen keskustelet shellin kanssa: se on ohjelma, joka lukee ja suorittaa komentosi. Debianissa ja Ubuntussa se on yleensä bash. Kohdistimen vasemmalla puolella on kehote (prompt):
anna@web1:~$
root@web1:~#Kehote kertoo kolme asiaa: kuka olet (anna tai root), millä palvelimella (web1) ja missä kansiossa olet (~ on oma kotikansiosi). Viimeinen merkki on tärkeä: $ tarkoittaa tavallista käyttäjää, # tarkoittaa rootia. Jos näet merkin #, jokainen komento suoritetaan kaikilla oikeuksilla. Kirjoita silloin rauhassa.
Kansiot ja polut
Linuxissa kaikki on yhdessä puussa, joka alkaa kohdasta / (juurikansio, ei sama asia kuin root-käyttäjä). Muutama kansio tulee tällä kurssilla vastaan yhä uudelleen:
| Kansio | Mitä siellä on |
|---|---|
/etc | Asetukset: SSH (/etc/ssh), verkkopalvelin (/etc/nginx), käyttäjät (/etc/passwd) |
/var/log | Lokitiedostot (journalin lisäksi, oppitunti 6.2) |
/var/lib | Ohjelmien tiedot, esimerkiksi tietokannat ja Docker |
/home | Tavallisten käyttäjien kotikansiot, kuten /home/anna |
/root | Rootin kotikansio |
/usr | Asennetut ohjelmat ja kirjastot |
/tmp | Väliaikaiset tiedostot, siivotaan automaattisesti |
/srv tai /var/www | Tavallinen paikka sivustoille ja palveluille |
Absoluuttinen polku alkaa kohdasta /, esimerkiksi /etc/ssh/sshd_config. Suhteellinen polku alkaa siitä, missä olet nyt: jos olet kansiossa /etc, ssh/sshd_config on sama tiedosto. .. on yläpuolella oleva kansio, . nykyinen kansio.
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 ilman mitään perässä vie sinut takaisin kotikansioosi.
Tiedostojen tarkastelu
ls -l näyttää muutakin kuin pelkät nimet:
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.pubVasemmalta oikealle: oikeudet, linkkien määrä, omistaja, ryhmä, koko tavuina, päiväys ja nimi. Huomaa ero: salaisen host keyn (-rw-------) saa lukea vain root, julkisen (-rw-r--r--) kuka tahansa. Oppitunnilla 3.1 opit lukemaan nämä oikeudet tarkasti. ls -la näyttää myös piilotiedostot: nimet, jotka alkavat pisteellä, kuten .ssh.
Sisällön lukeminen:
cat bestand: koko tiedosto kerralla, kätevä lyhyille tiedostoille;less bestand: selaa nuolinäppäimillä ja välilyönnillä, hae merkillä/woord, lopeta näppäimelläq;head -n 20 bestandjatail -n 20 bestand: ensimmäiset tai viimeiset rivit;tail -fjää seuraamaan, kun rivejä tulee lisää.
Tiedoston muokkaus nanolla
Asetuksia muutetaan tekstieditorilla. nano on helpoin:
root@web1:~# nano /etc/hostsAlareunassa näkyvät pikanäppäimet; ^ tarkoittaa Ctrl-näppäintä. Tallennus on Ctrl+O ja Enter, lopetus Ctrl+X, haku Ctrl+W. Jos käytät jo vim:tä, voit käyttää sitä; vim ei ole minimiasennuksessa aina kokonaan valmiina.
Kolme tapaa, jotka säästävät myöhemmin paljon harmia:
- Tee ensin kopio:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - Testaa asetukset ennen kuin käynnistät palvelun uudelleen. Monella ohjelmalla on siihen oma komento:
sshd -t,nginx -t(oppitunnit 2.2 ja 7.2). - Muuta yksi asia kerrallaan, niin tiedät, mikä aiheutti virheen.
Mikä palvelimesi tila on?
Muutama komento, joita käytät joka tilanteessa:
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: mikä kernel on käytössä.uptime: kuinka kauan palvelin on ollut päällä ja load average 1, 5 ja 15 minuutin ajalta. Karkeasti: jos kuorma on pitkään suurempi kuin prosessoriytimien määrä, jokin joutuu odottamaan.df -h: vapaa levytila (-htarkoittaa "human readable", eli G- ja M-yksiköt). Täysi levy on yksi yleisimmistä syistä siihen, että palvelin lakkaa toimimasta "ihan itsestään".free -h: muisti. Katso sarakettaavailable, älä sarakettafree: Linux käyttää vapaata muistia välimuistina (buff/cache) ja antaa sen takaisin, kun ohjelma tarvitsee sitä.
Ja verkkosi, oppitunnilta 1.2: ip -brief address.
Ohjeiden löytäminen
Kaikkia valitsimia ei tarvitse muistaa. Sinun pitää kuitenkin tietää, mistä ne löytyvät:
man sshavaa komennon käyttöohjeen (manual page). Selaa kutenless:ssä, hae merkillä/.man sshd_configkuvaa jokaisen asetettavan sanan kyseisessä tiedostossa.ls --helpantaa useimmille komennoille lyhyen listan valitsimista.- Sarkainnäppäin (Tab) täydentää komentojen ja tiedostojen nimet. Kaksi Tab-painallusta näyttää vaihtoehdot. Näin vältät kirjoitusvirheet pitkissä poluissa.
- Nuoli ylös hakee aiemmat komennot;
historynäyttää ne kaikki.
Minimiasennuksesta puuttuu joskus käyttöohjeita. Debianissa ja Ubuntussa asennat ne komennolla apt install man-db (moduuli 4).
Putket ja grep
Komentoja voi ketjuttaa putkella (|): yhden komennon tuloste on seuraavan syöte. grep suodattaa rivit, joissa on tietty sana:
anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | lessMerkillä # alkavat rivit ovat kommentteja: ne eivät tee mitään ja näyttävät usein oletusarvon. Oppitunnilla 2.2 näet, miksi se voi SSH:ssa hämätä.
Sudenkuopat
- Liittäminen lukematta. Netistä kopioidut komennot tekevät juuri sen, mitä niissä lukee, vaikka se olisi jotain muuta kuin artikkelin otsikko lupaa. Lue jokainen komento ennen kuin suoritat sen, varsinkin jos olet root.
rm:llä ei ole roskakoria. Poistettu on poistettu. Ole erityisen varovainen komennonrm -rkanssa (kansio ja kaikki sen sisältö) sekä jokerimerkkien kuten*kanssa.- Isoilla kirjaimilla on väliä.
/etc/SSHei ole olemassa;/etc/sshon. - Välilyönnit poluissa pitää laittaa lainausmerkkeihin:
cat "/srv/mijn site/index.html". Parempi: älä käytä välilyöntejä nimissä palvelimella.
Yhteenveto
- Kehote kertoo, kuka olet, millä palvelimella ja missä;
#tarkoittaa rootia. - Asetukset ovat kansiossa
/etc, lokit kansiossa/var/log, ohjelmien tiedot kansiossa/var/libja kotikansiot kansiossa/home. - Lue komennoilla
cat,less,headjatail; muokkaa komennollananokopion tekemisen jälkeen ja testaa asetukset ennen uudelleenkäynnistystä. df -h,free -h,uptimejaip -brief addressnäyttävät palvelimesi tilan.- Ohjeet löytyvät komennoilla
manja--help; Tab täydentää; merkillä|ja komennollagrepsuodatat tulosteen.
Tietovisa (quiz)
Tehtävä
Tehtävä O1.4: Tutustu palvelimeesi. Suorita oppitunnin komennot omalla palvelimellasi ja täytä: jakelu ja versio, kernel, vapaa levytila, käytettävissä oleva muisti, kuorma, IPv4 ja IPv6 sekä mitkä kansion /etc/ssh tiedostot vain root voi lukea. Vastaa sen jälkeen kahteen kysymykseen siitä, mitä näit.
Tehtävä O1.4: Tutustu palvelimeesi
Tämän tehtävän teet itse, kukaan ei tarkista sitä. Merkitse tekemäsi kohdat ja merkitse tehtävä tehdyksi.
available laskee mukaan myös välimuistin, jonka Linux vapauttaa tarvittaessa. .pub-tiedosto on julkinen osa, jonka jokainen asiakasohjelma näkee. Tiedosto ilman .pub-päätettä on salainen (600, root), koska sen haltija voi esiintyä palvelimenasi.
Merkintäsi ja muistiinpanosi pysyvät vain tässä selaimessa, emme lähetä niitä minnekään. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että olet tehnyt tehtävän.
Lue lisää
- VPS:n levytilan kasvattaminen
- SSH-yhteys ja Terminal DirectAdminissa: mitkä paketit ja miten kirjaudut sisään
- Debian-referenssi, luku 1 (komentorivin opas): 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
- Ensimmäiset komennot VPS:lläsi: tutustu komentoriviin
- VPS: ensimmäisestä kirjautumisesta turvalliseen palvelimeen 1.4: Konsoli: VPS selaimessasi
