Към съдържанието

Настройки за бисквитки

Изберете кои видове бисквитки разрешавате. Можете да промените избора си по всяко време чрез „Настройки за бисквитки“ в долната част на всяка страница. Декларация за поверителност

Необходими

Винаги включени

Нужни са за вход, за запазване на количката и на Вашите избори. Те са винаги включени.

Кои бисквитки?
  • weboke_sessie, weboke_klant, weboke_remember: Вашата сесия и оставането в акаунта
  • weboke_basket: Вашата количка
  • wkBtwIncl: показване на цените с или без ДДС
  • wok_cookies: Вашият избор за бисквитките, 12 месеца

Измерват коя реклама води до посещение или поръчка, за да не плащаме за реклами без резултат.

Кои бисквитки?
  • Google Ads чрез Google Tag Manager (_gcl_au, _gcl_aw), до 90 дни
  • OpenAI Ads, реклами в ChatGPT
  • wok_aff: кой партньор Ви е препратил към нас (партньорска програма), 60 дни

4,6

Държава и език

Всяка държава има собствен сайт, с цените и ДДС на тази държава.

Преглед

Ориентиране в командния ред

Модул 1: Вашият първи сървър · Време за четене: 11 минути

Цел на урока: След този урок ще можете да се ориентирате в Linux сървър: да се движите между директориите, да четете и редактирате файлове, да виждате колко свободно място на диска и памет има, както и сами да търсите помощ за дадена команда.

Основни понятия: shell, prompt, директория и път, абсолютен и относителен път, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, допълване с Tab, uname, df, free, uptime, pipe, grep

Shell и prompt

След като влезете, Вие общувате с shell: програмата, която чете и изпълнява Вашите команди. В Debian и Ubuntu това обикновено е bash. Вляво от курсора се намира prompt (подканата):

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

Тя Ви казва три неща: кой сте Вие (anna или root), на кой сървър се намирате (web1) и в коя директория сте (~ е Вашата собствена домашна директория). Последният знак е важен: $ означава обикновен потребител, # означава root. Ако виждате #, всяка команда се изпълнява с всички права. Затова пишете спокойно и внимателно.

Директории и пътища

Всичко в Linux е част от едно дърво, което започва от / (root директорията, да не се бърка с потребителя root). Някои директории ще срещате постоянно в този курс:

ДиректорияКакво съдържа
/etcКонфигурация: SSH (/etc/ssh), уеб сървър (/etc/nginx), потребители (/etc/passwd)
/var/logЛог файлове (наред с journal, урок 6.2)
/var/libДанни на програмите, например бази данни и Docker
/homeДомашни директории на обикновените потребители, например /home/anna
/rootДомашна директория на root
/usrИнсталирани програми и библиотеки
/tmpВременни файлове, които се почистват
/srv или /var/wwwОбичайното място за уебсайтове и услуги

Абсолютният път започва от /, например /etc/ssh/sshd_config. Относителният път започва оттам, където се намирате в момента: ако сте в /etc, то ssh/sshd_config е същият файл. .. е директорията над текущата, . е текущата директория.

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 без нищо след него Ви връща в домашната Ви директория.

Преглед на файлове

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

Отляво надясно: правата, броят връзки, собственик, група, размер в байтове, дата и име. Обърнете внимание на разликата: тайният host key (-rw-------) може да се чете само от root, а публичният (-rw-r--r--) от всеки. В урок 3.1 ще се научите да разчитате тези права точно. ls -la показва и скритите файлове: имена, които започват с точка, като .ssh.

За да прочетете съдържанието:

  • cat bestand: целият файл наведнъж, удобно за кратки файлове;
  • less bestand: прелистване със стрелките и интервал, търсене с /woord, изход с q;
  • head -n 20 bestand и tail -n 20 bestand: първите или последните редове; tail -f продължава да следи, когато се добавят нови редове.

Редактиране на файл с nano

Конфигурацията се променя в текстов редактор. nano е най-простият:

root@web1:~# nano /etc/hosts

Най-долу са показани клавишните комбинации; ^ означава Ctrl. Запазването е Ctrl+O и Enter, изходът е Ctrl+X, търсенето е Ctrl+W. Ако вече работите с vim, можете да го използвате; при минимална инсталация vim не винаги е напълно наличен.

Три навика, които по-късно ще Ви спестят много неприятности:

  1. Първо направете копие: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  2. Тествайте конфигурацията, преди да рестартирате услуга. Много програми имат собствена команда за това: sshd -t, nginx -t (уроци 2.2 и 7.2).
  3. Променяйте едно нещо наведнъж, за да знаете какво е причинило грешката.

В какво състояние е Вашият сървър?

Няколко команди, които ще използвате във всяка ситуация:

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: кой kernel работи.
  • uptime: от колко време работи сървърът и load average за 1, 5 и 15 минути. Грубо казано: натоварване, което продължително е над броя на процесорните ядра, означава, че процесите чакат.
  • df -h: свободно място на диска (-h означава "human readable", с G и M). Пълният диск е една от най-честите причини сървърът да спре "ей така".
  • free -h: памет. Гледайте колоната available, а не free: Linux използва свободната памет като cache (buff/cache) и я освобождава, когато дадена програма има нужда от нея.

И Вашата мрежа, от урок 1.2: ip -brief address.

Как да намерите помощ

Не е нужно да помните всички опции. Но трябва да знаете къде да ги намерите:

  • man ssh отваря ръководството (manual page) на дадена команда. Прелиства се както при less, търси се с /. man sshd_config описва всяка настройка, която може да се зададе в този файл.
  • ls --help дава кратък списък с опциите при повечето команди.
  • Клавишът Tab допълва имената на команди и файлове. Двукратно натискане на Tab показва възможностите. Това спестява грешки при писане на дълги пътища.
  • Стрелката нагоре връща предишни команди; history ги показва всички.

При минимална инсталация понякога липсват ръководствата. В Debian и Ubuntu ги инсталирате с apt install man-db (модул 4).

Pipes и grep

Командите могат да се свързват с pipe (|): изходът на едната става вход за следващата. grep филтрира редовете, които съдържат дадена дума:

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

Редовете, които започват с #, са коментари: те не правят нищо и често показват стойността по подразбиране. В урок 2.2 ще видите защо това може да е объркващо при SSH.

Капани

  • Поставяне без четене. Командите от интернет правят точно това, което пише в тях, дори ако то е различно от обещаното в заглавието на статията. Прочетете всяка команда, преди да я изпълните, особено ако сте root.
  • rm няма кошче. Изтритото е изтрито. Бъдете особено внимателни с rm -r (директория с цялото ѝ съдържание) и със заместващи знаци като *.
  • Главните букви имат значение. /etc/SSH не съществува; /etc/ssh съществува.
  • Интервалите в пътищата трябва да са в кавички: cat "/srv/mijn site/index.html". По-добре: не използвайте интервали в имената на сървъра.

Обобщение

  • Prompt Ви казва кой сте, на кой сървър и къде се намирате; # означава root.
  • Конфигурацията е в /etc, логовете в /var/log, данните на програмите в /var/lib, домашните директории в /home.
  • Четете с cat, less, head и tail; редактирайте с nano, след като направите копие, и тествайте конфигурацията, преди да рестартирате.
  • df -h, free -h, uptime и ip -brief address показват в какво състояние е Вашият сървър.
  • Помощ ще намерите в man и --help; Tab допълва; с | и grep филтрирате изхода.

Тест (quiz)

1. Вашият prompt е root@web1:/var/log#. Какво знаете сега?



2. Намирате се в /etc. Кой път сочи към същия файл като /etc/nginx/nginx.conf?



3. free -h показва free 120Mi и available 2.9Gi. Има ли сървърът твърде малко памет?



4. Кое е най-разумно, преди да промените /etc/ssh/sshd_config?



5. Къде проверявате кои настройки познава sshd_config?



Задача

Задача O1.4: Опознаване на Вашия сървър. Изпълнете командите от урока на собствения си сървър и попълнете: дистрибуция и версия, kernel, свободно място на диска, налична памет, load, IPv4 и IPv6, както и кои файлове в /etc/ssh могат да се четат само от root. След това отговорете на два въпроса за това, което сте видели.

Задача O1.4: Опознаване на Вашия сървър

Тази задача изпълнявате сами; никой не я проверява. Отбележете какво сте направили и маркирайте задачата като изпълнена.



Вашите отметки и бележки остават само в този браузър; не ги изпращаме никъде. Ако сте влезли, в Моите курсове запазваме само че сте изпълнили задачата.

Още за четене

Моля, изчакайте…

Настройте домейните си

За всеки домейн настройте сървърите за имена, връзката с хостинга и кой ще бъде собственикът.

Домейните Ви се зареждат…