Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Orientace na příkazovém řádku

Modul 1: Váš první server · Doba čtení: 11 min.

Cíl lekce: Po této lekci se dokážete orientovat na linuxovém serveru: procházet adresáře, číst a upravovat soubory, zjistit, kolik místa na disku a paměti je volné, a sami vyhledat nápovědu k příkazu.

Klíčové pojmy: shell, prompt, adresář a cesta, absolutní a relativní cesta, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, doplňování klávesou Tab, uname, df, free, uptime, pipe (roura), grep

Shell a prompt

Po přihlášení komunikujete se shellem: programem, který čte a provádí Vaše příkazy. Na Debianu a Ubuntu je to obvykle bash. Vlevo od kurzoru je prompt:

anna@web1:~$
root@web1:~#

Ten Vám říká tři věci: kdo jste (anna nebo root), na kterém serveru (web1) a v jakém adresáři se nacházíte (~ je Váš domovský adresář). Důležitý je poslední znak: $ znamená běžného uživatele, # znamená root. Pokud vidíte #, každý příkaz běží se všemi oprávněními. Pište tam proto v klidu a pozorně.

Adresáře a cesty

Vše v Linuxu visí na jednom stromu, který začíná v / (kořenový adresář, nezaměňujte s uživatelem root). S několika adresáři se v tomto kurzu budete setkávat neustále:

AdresářCo obsahuje
/etcKonfigurace: SSH (/etc/ssh), webový server (/etc/nginx), uživatelé (/etc/passwd)
/var/logSoubory logů (vedle journalu, lekce 6.2)
/var/libData programů, například databáze a Docker
/homeDomovské adresáře běžných uživatelů, například /home/anna
/rootDomovský adresář uživatele root
/usrNainstalované programy a knihovny
/tmpDočasné soubory, průběžně se mažou
/srv nebo /var/wwwObvyklé místo pro weby a služby

Absolutní cesta začíná v /, například /etc/ssh/sshd_config. Relativní cesta začíná tam, kde se právě nacházíte: jste-li v /etc, pak ssh/sshd_config je tentýž soubor. .. je nadřazený adresář, . aktuální adresář.

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 bez dalšího parametru Vás vrátí do domovského adresáře.

Prohlížení souborů

ls -l ukáže víc než jen názvy:

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.pub

Zleva doprava: oprávnění, počet odkazů, vlastník, skupina, velikost v bajtech, datum a název. Všimněte si rozdílu: tajný host key (-rw-------) smí číst jen root, veřejný (-rw-r--r--) kdokoli. V lekci 3.1 se tato oprávnění naučíte přesně číst. ls -la zobrazí i skryté soubory: názvy začínající tečkou, například .ssh.

Ke čtení obsahu slouží:

  • cat bestand: celý soubor najednou, vhodné pro krátké soubory;
  • less bestand: listování šipkami a mezerníkem, hledání pomocí /woord, ukončení pomocí q;
  • head -n 20 bestand a tail -n 20 bestand: první nebo poslední řádky; tail -f sleduje soubor dál, když přibývají nové řádky.

Úprava souboru v editoru nano

Konfiguraci upravujete v textovém editoru. Nejjednodušší je nano:

root@web1:~# nano /etc/hosts

Dole jsou klávesové zkratky; ^ znamená Ctrl. Uložení je Ctrl+O a Enter, ukončení Ctrl+X, hledání Ctrl+W. Pokud už pracujete s vim, klidně ho používejte; vim ale na minimální instalaci nemusí být k dispozici v plné podobě.

Tři návyky, které Vám později ušetří spoustu potíží:

  1. Nejdřív si udělejte kopii: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  2. Otestujte konfiguraci dříve, než službu restartujete. Mnoho programů na to má vlastní příkaz: sshd -t, nginx -t (lekce 2.2 a 7.2).
  3. Měňte vždy jen jednu věc, abyste věděli, co chybu způsobilo.

V jakém stavu je Váš server?

Několik příkazů, které využijete v každé situaci:

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          0B
  • uname -a: který kernel běží.
  • uptime: jak dlouho server běží a load average za 1, 5 a 15 minut. Zhruba řečeno: load, který dlouhodobě převyšuje počet jader procesoru, znamená, že se na něco čeká.
  • df -h: volné místo na disku (-h znamená "human readable", tedy s G a M). Plný disk je jednou z nejčastějších příčin, proč server "jen tak" přestane fungovat.
  • free -h: paměť. Dívejte se na sloupec available, ne free: Linux využívá volnou paměť jako cache (buff/cache) a uvolní ji, jakmile ji nějaký program potřebuje.

A Vaše síť, z lekce 1.2: ip -brief address.

Kde najít nápovědu

Nemusíte si pamatovat všechny volby. Měli byste ale vědět, kde je najdete:

  • man ssh otevře manuál (manual page) k příkazu. Listuje se stejně jako v less, hledá se pomocí /. man sshd_config popisuje každou nastavitelnou položku v tomto souboru.
  • ls --help u většiny příkazů vypíše krátký seznam voleb.
  • Klávesa Tab doplňuje názvy příkazů a souborů. Dvojí stisk Tab zobrazí možnosti. To Vám ušetří překlepy v dlouhých cestách.
  • Šipka nahoru vrací předchozí příkazy; history je zobrazí všechny.

Na minimální instalaci manuály někdy chybí. Na Debianu a Ubuntu je nainstalujete pomocí apt install man-db (modul 4).

Pipe a grep

Příkazy můžete spojovat pomocí pipe (|): výstup jednoho je vstupem dalšího. grep vyfiltruje řádky, které obsahují dané slovo:

anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | less

Řádky začínající znakem # jsou komentáře: nic nedělají a často ukazují výchozí hodnotu. V lekci 2.2 uvidíte, proč to může být u SSH matoucí.

Na co si dát pozor

  • Vkládání bez čtení. Příkazy z internetu udělají přesně to, co v nich stojí, i když je to něco jiného, než slibuje název článku. Každý příkaz si před spuštěním přečtěte, a to zvlášť tehdy, když jste root.
  • rm nemá koš. Co je smazané, je pryč. Buďte obzvlášť opatrní s rm -r (adresář se vším, co obsahuje) a se zástupnými znaky jako *.
  • Na velikosti písmen záleží. /etc/SSH neexistuje; /etc/ssh ano.
  • Mezery v cestách musí být v uvozovkách: cat "/srv/mijn site/index.html". Lepší je na serveru mezery v názvech vůbec nepoužívat.

Shrnutí

  • Prompt říká, kdo jste, na kterém serveru a kde se nacházíte; # znamená root.
  • Konfigurace je v /etc, logy v /var/log, data programů v /var/lib, domovské adresáře v /home.
  • Čtěte pomocí cat, less, head a tail; upravujte pomocí nano, po vytvoření kopie, a konfiguraci před restartem otestujte.
  • df -h, free -h, uptime a ip -brief address ukazují, v jakém stavu je Váš server.
  • Nápovědu najdete v man a --help; Tab doplňuje; pomocí | a grep filtrujete výstup.

Kvíz

1. Váš prompt je root@web1:/var/log#. Co z toho víte?



2. Nacházíte se v /etc. Která cesta ukazuje na stejný soubor jako /etc/nginx/nginx.conf?



3. free -h zobrazuje free 120Mi a available 2.9Gi. Má server málo paměti?



4. Co je nejrozumnější udělat, než upravíte /etc/ssh/sshd_config?



5. Kde zjistíte, jaká nastavení sshd_config zná?



Úkol

Úkol O1.4: Seznámení se serverem. Spusťte příkazy z lekce na svém serveru a vyplňte: distribuci a verzi, kernel, volné místo na disku, dostupnou paměť, load, IPv4 a IPv6 a které soubory v /etc/ssh smí číst pouze root. Poté odpovězte na dvě otázky o tom, co jste viděli.

Úkol O1.4: Seznámení se serverem

Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.



Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.

Doporučujeme k přečtení

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…