Modul 1 · 1.4
Körülnézés a parancssorban
Modul 1: Az első szervere · Olvasási idő: 11 perc
Tanulási cél: A lecke után Ön eligazodik egy Linux-szerveren: tud mappák között mozogni, fájlokat olvasni és szerkeszteni, látja, mennyi szabad lemezterület és memória áll rendelkezésre, és maga is segítséget tud keresni egy parancshoz.
Kulcsfogalmak: shell, prompt, mappa és útvonal, abszolút és relatív útvonal, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, Tab-kiegészítés, uname, df, free, uptime, pipe, grep
A shell és a prompt
Bejelentkezés után Ön a shelllel kommunikál: ez az a program, amely beolvassa és végrehajtja a parancsait. Debianon és Ubuntun ez általában a bash. A kurzortól balra látható a prompt:
anna@web1:~$
root@web1:~#Ez három dolgot árul el: ki Ön (anna vagy root), melyik szerveren dolgozik (web1), és melyik mappában áll (a ~ az Ön saját kezdőkönyvtára). Az utolsó karakter fontos: a $ egy átlagos felhasználót jelent, a # pedig a rootot. Ha # jelet lát, minden parancs teljes jogosultsággal fut. Ilyenkor gépeljen nyugodtan és megfontoltan.
Mappák és útvonalak
Linuxon minden egyetlen fához tartozik, amely a / mappánál kezdődik (ez a gyökérmappa, nem tévesztendő össze a root felhasználóval). Néhány mappával a tanfolyam során újra és újra találkozni fog:
| Mappa | Mit tartalmaz |
|---|---|
/etc | Konfiguráció: SSH (/etc/ssh), webszerver (/etc/nginx), felhasználók (/etc/passwd) |
/var/log | Naplófájlok (a journal mellett, 6.2. lecke) |
/var/lib | Programok adatai, például adatbázisok és a Docker |
/home | Az átlagos felhasználók kezdőkönyvtárai, például /home/anna |
/root | A root kezdőkönyvtára |
/usr | Telepített programok és könyvtárak |
/tmp | Ideiglenes fájlok, a rendszer rendszeresen kitakarítja |
/srv vagy /var/www | A webhelyek és szolgáltatások szokásos helye |
Az abszolút útvonal a / mappánál kezdődik, például /etc/ssh/sshd_config. A relatív útvonal onnan indul, ahol Ön éppen áll: ha a /etc mappában van, akkor a ssh/sshd_config ugyanaz a fájl. A .. a fölötte lévő mappa, a . az aktuális mappa.
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:~$A cd parancs önmagában, további megadás nélkül visszaviszi Önt a kezdőkönyvtárába.
Fájlok megtekintése
A ls -l többet mutat a puszta neveknél:
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.pubBalról jobbra: a jogosultságok, a hivatkozások száma, a tulajdonos, a csoport, a méret bájtban, a dátum és a név. Figyelje meg a különbséget: a titkos host keyt (-rw-------) csak a root olvashatja, a nyilvánosat (-rw-r--r--) bárki. A 3.1. leckében megtanulja pontosan értelmezni ezeket a jogosultságokat. A ls -la a rejtett fájlokat is megmutatja: ezek neve ponttal kezdődik, például .ssh.
A tartalom olvasásához:
cat bestand: az egész fájl egyszerre, rövid fájloknál praktikus;less bestand: lapozás a nyílbillentyűkkel és szóközzel, keresés a/woordbillentyűvel, kilépés aqbillentyűvel;head -n 20 bestandéstail -n 20 bestand: az első vagy az utolsó sorok; atail -ffolyamatosan figyeli a fájlt, ha új sorok kerülnek bele.
Fájl szerkesztése nanóval
A konfigurációt szövegszerkesztőben módosítja. A nano a legegyszerűbb:
root@web1:~# nano /etc/hostsAlul láthatók a billentyűparancsok; a ^ a Ctrl billentyűt jelenti. Mentés: Ctrl+O, majd Enter; kilépés: Ctrl+X; keresés: Ctrl+W. Aki már a vim szerkesztővel dolgozik, nyugodtan használhatja azt; a vim egy minimális telepítésen nem mindig érhető el teljes formájában.
Három szokás, amely később sok bosszúságtól megkíméli:
- Először készítsen másolatot:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - Tesztelje a konfigurációt, mielőtt újraindít egy szolgáltatást. Sok programnak van erre saját parancsa:
sshd -t,nginx -t(2.2. és 7.2. lecke). - Egyszerre csak egy dolgot változtasson, így tudni fogja, mi okozott egy hibát.
Milyen állapotban van a szervere?
Néhány parancs, amelyet bármilyen helyzetben használni fog:
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: melyik kernel fut.uptime: mióta működik a szerver, valamint a load average (átlagos terhelés) az elmúlt 1, 5 és 15 percre. Durván: ha a terhelés tartósan meghaladja a processzormagok számát, akkor a folyamatoknak várakozniuk kell.df -h: szabad lemezterület (a-hjelentése „human readable”, vagyis ember számára olvasható, G és M egységekkel). A megtelt lemez az egyik leggyakoribb oka annak, hogy egy szerver „csak úgy” leáll.free -h: memória. Aavailableoszlopot nézze, ne afreeoszlopot: a Linux a szabad memóriát gyorsítótárként (buff/cache) használja, és visszaadja, ha egy programnak szüksége van rá.
A hálózatról pedig, az 1.2. leckéből: ip -brief address.
Segítség keresése
Nem kell minden opciót fejben tartania. Azt viszont tudnia kell, hol találja őket:
- A
man sshmegnyitja egy parancs kézikönyvoldalát (manual page). Lapozni ugyanúgy lehet, mint alessesetén, keresni a/billentyűvel. Aman sshd_configleír minden beállítható kulcsszót, amely az adott fájlban szerepelhet. - A
ls --helpa legtöbb parancsnál rövid listát ad az opciókról. - A Tab billentyű kiegészíti a parancsok és fájlok nevét. Kétszeri Tab megmutatja a lehetőségeket. Ez hosszú útvonalaknál sok elgépeléstől megóv.
- A felfelé nyíl visszahozza a korábbi parancsokat; a
historymindet megmutatja.
Minimális telepítésen a kézikönyvoldalak néha hiányoznak. Debianon és Ubuntun a apt install man-db paranccsal telepítheti őket (4. modul).
Pipe-ok és a grep
A parancsokat egy pipe (|) segítségével összefűzheti: az egyik parancs kimenete a következő bemenete lesz. A grep kiszűri azokat a sorokat, amelyek egy adott szót tartalmaznak:
anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | lessA # jellel kezdődő sorok megjegyzések: nem csinálnak semmit, és gyakran az alapértelmezett értéket mutatják. A 2.2. leckében látni fogja, miért lehet ez SSH esetén félrevezető.
Buktatók
- Beillesztés elolvasás nélkül. Az internetről származó parancsok pontosan azt teszik, ami bennük áll, akkor is, ha ez eltér attól, amit a cikk címe ígér. Minden parancsot olvasson el, mielőtt lefuttatja, különösen, ha rootként dolgozik.
- A
rmparancsnak nincs lomtára. Ami törölve van, az elveszett. Legyen különösen óvatos arm -rparanccsal (egy mappa a teljes tartalmával) és az olyan helyettesítő karakterekkel, mint a*. - A kis- és nagybetű számít.
/etc/SSHnem létezik;/etc/sshigen. - Az útvonalakban lévő szóközöket idézőjelek közé kell tenni:
cat "/srv/mijn site/index.html". Még jobb, ha egy szerveren egyáltalán nem használ szóközt a nevekben.
Összefoglalás
- A prompt megmutatja, ki Ön, melyik szerveren és hol áll; a
#a rootot jelenti. - A konfiguráció a
/etcmappában található, a naplók a/var/logmappában, a programok adatai a/var/libmappában, a kezdőkönyvtárak a/homemappában. - Olvasáshoz használja a
cat,less,headéstailparancsot; szerkesztéshez ananoszerkesztőt, előtte készítsen másolatot, és újraindítás előtt tesztelje a konfigurációt. - A
df -h,free -h,uptimeésip -brief addressmegmutatja, milyen állapotban van a szervere. - Segítséget a
manés a--helpad; a Tab kiegészít; a|és agrepsegítségével szűrheti a kimenetet.
Kvíz
Feladat
O1.4. feladat: Ismerkedés a szerverrel. Futtassa le a leckében szereplő parancsokat a saját szerverén, és töltse ki: disztribúció és verzió, kernel, szabad lemezterület, rendelkezésre álló memória, terhelés, IPv4 és IPv6, valamint hogy a /etc/ssh mappában mely fájlokat olvashatja csak a root. Ezután válaszoljon két kérdésre azzal kapcsolatban, amit látott.
O1.4. feladat: Ismerkedés a szerverrel
Ezt a feladatot saját maga végzi el, senki nem ellenőrzi. Pipálja ki, amit elvégzett, és jelölje meg a feladatot elvégzettként.
Az available a gyorsítótár-memóriát is beszámítja, amelyet a Linux szükség esetén felszabadít. A .pub fájl a nyilvános rész, amelyet minden kliens lát; a .pub nélküli fájl titkos (600, root), mert aki birtokolja, az Ön szerverének adhatja ki magát.
A pipái és jegyzetei csak ebben a böngészőben maradnak meg, sehova nem küldjük el őket. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy elvégezte a feladatot.
További olvasnivaló
- A VPS lemezterületének növelése
- SSH hozzáférés és a Terminal a DirectAdminban: mely csomagok esetén és hogyan lehet bejelentkezni
- Debian-referencia, 1. fejezet (útmutató a parancssorhoz): 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
