Безкоштовний курс по ОС Linux

З кожним днем все важче і важче уявити серйозного спеціаліста у сфері ІТ, який не використовує у своїй роботі операційну систему Linux.

На безкоштовному курсі у рамках навчання від благодійного фонду Софт Скілл студенти познайомляться з основами ОС Linux, його особливостями та відмінностями від Windows, дізнаються, за що його люблять та ненавидять. Дізнаються, які види Лінукс бувають та через що він настільки популярний в промисловості (спойлер — не через свою безкоштовність).

Структура курсу

Даний курс націлений на комплексне ознайомлення з операційною системою Linux —  від основ до сисемного адміністрування. По завершенню студент навчиться підбирати дистрибутив під власні потреби, правильно його налаштовувати, розгортати потрібну інфраструктуру. Також студент зможе діагностувати та оперативно усувати найбільш поширені проблеми, повʼязані як з самою системою, так і з прикладним програмним забезпеченням.

Орієнтовна довжина курсу складає приблизно півтора календарних місяця. Окрім теоретичних занять, передбачаються також і практичні.

Додатково, даний блок включає в себе основи написання скриптів на bash — студент вмітиме читати та розуміти чужі сценарії та створювати власні, автоматизуючи рутинні процеси.

Структура курсу наведена нижче:

  1. Знайомство —базова інформація про ОС Linux
    1. Дистрибутиви, архітектури;
    2. Чому Лінукс використовують в продакшн?
    3. Де зустрічається Лінукс в житті: телефони, роутери…
    4. Коротка історія Лінукс;
    5. Коротко про відкриті ліцензії: GNU GPL,  BSD, Apache;
    6. Чому правильна назва саме GNU/Linux, а не просто Linux?
    7. Варіанти розповсюдження Лінукс: дистрибутиви та роллінг-релізи;
    8. Які існують дистрибутиви Лінукс — Debian-based, RedHat-based, source-based, тощо…
    9. Графічне середовище Лінукс: GNOME, KDE, XFCE, MATE;
    10. Як вірно обрати лінукс під конкретну задачу
  2. Файлова система Лінукс
    1. Структура папок у файловій системі лінукс (ієрархія); 
    2. Навігація по файловій системі — cd, ls, mc
    3. Файли особливого призначення — /dev/null, /dev/rundom, тощо…
    4. chroot як мінімальна ізольована система лінукс;
  3. Типи файлових систем
    1. Що таке файлова система і для чого вона потрібна?
    2. Файлові системи ext3, ext4, BtrFS, ZFS, swap;
    3. Спеціальні файлові системи — procfs, tmpfs;
    4. Мережеві файлові системи — SAMBA, NFS;
    5. Як обрати правильну файлову систему під конкретну задачу;
    6. Монтування файлових систем;
    7. Файл /etc/fstab;
    8. Монтування образів файлових систем;
    9. Створення файлових систем
  4. Файли в Лінукс
    1. Все в Лінукс — файли!
    2. Файли та папки
    3. Сокети, файли пристроїв
    4. Блочні файли
    5. Посилання
  5. Атрибути файлів
    1. Перегляд стандартних файлових атрибутів командою ls;
    2. Зміна стандартних файлових атрибутів командою chmod;
    3. Перегляд розширених прав файлів командою stat;
    4. Імунитет для файлів — це як і для чого?
    5. Зміна власника файла командою chown
  6. Встановлення та конфігурація
    1. Встановлення Debian
    2. Де зберігаються файли конфігурацій
  7. Системні оболонки Лінукс — sh, bash, zsh, тощо…
  8. Пакетний менеджмент
    1. Встановлення, видалення та пошук програмного забезпечення для Debian-based дистрибутивів — утиліти apt / apt-get / aptitude
    2. Встановлення, видалення та пошук програмного забезпечення для RedHat-based дистрибутивів — утиліти yum, dnf, zypper, тощо…
    3. Репозиторії — глобальні сховища програм для Лінукс: видалення та керування репозиторіями
  9. Довідкова система Лінукс: man, info;
  10. Управління користувачами
    1. Перегляд існуючих користувачів;
    2. Додавання / видалення користувачів;
    3. Зміна пароля для користувача;
    4. Як зберігається паролі в Лінукс;
    5. Файли /etc/passwd, /etc/shadow;
    6. Що таке Active Directory та LDAP — базові поняття;
  11. Системні змінні: $HOME, $PATH, $LD_LIBRARY_PATH, $DISPLAY, $PWD, інші…
  12. Управління процесами
    1. Запуск додатків;
    2. Менеджмент запущених додатків – Ctrl+C, Ctrl+Z, kill, killall, jobs, fg, bg;
    3. Сигнали завершення процесів — SIGKILL, SIGTERM, тощо…
    4. Пошук процесів через ps;
    5. Дочірні процеси;
    6. Процеси-зомбі;
    7. Планування запуску процесів;
  13. Отримання інформації про систему: uptime, top, who / w, last, file, df, du, free;
  14. Текстові редактори
    1. Класичні консольні редактори тексту: vim, nano, mcedit;
    2. Потокові консольні редактори тексту: sed, cut, awk;
  15. Пошук інформації: find, grep, locate;
  16. Пайплайни та перенаправлення виводу — stdin, stdout, stderr;
  17. Робота з архівами — gzip, tar.gz, tar.bz2, tar.xz, zip, 7zip;
  18. Віддалений доступ
    1. Віддалений доступ до Лінук через ssh
    2. Налаштування ssh сервера;
    3. Безпарольний доступ до Лінукс серверів;
    4. $HOME/.ssh/config файл;
    5. Передавання файлів між лінукс серверами: scp та rsync;
  19. Базова конфігурація мережі (більш детально про мережі дізнаєтесь на курсі про мережі);
  20. Основи системного адміністрування ОС Linux;
    1. Модулі ядра — що таке модулі, де вони зберігаються, як завантажити та видалити модуль;
    2. Ядро та завантажувач GRUB2. Файли vmlinuz та initrd;
    3. Рівні запуску Лінукс;
    4. Базова робота з системою ініціалізації systemd;
    5. Основи build системи ОС Linux — базові поняття про роботу gcc, make, autoconf, тощо;
    6. Збірка програмного забезпечення з вихідних файлів (так званих тарболлів);
    7. Встановлення та конфігурування базових сервісів ОС Linux — Apache, PHP, MySQL, тощо;
    8. Робота з логами — структура, рівні логування, пошук потрібної інформації в логах;
    9. Діагностика та вирішення найбільш поширених проблем з ОС Linux та додатками;
  21. Написання сценаріїв на bash

Робота після завершення курсу

У разі успішного завершення даного навчального блоку випускник має можливість працевлаштування у наступних напрямках:

  1. Робота системним адміністратором на хостингових компаніях;
  2. Робота в підтримці Embedded-проектів, так як більшість їх базується якраз на ОС Лінукс

... і ще

Попри те, що завершення даного курсу випускник вже може претендувати на роботу в ІТ-компанії, наполегливо не рекомендуємо завершувати навчання на даному етапі.

Окрім навичок по ОС Linux, для професіонала також вкрай важливо мати знання мереж, Docker, git, а також хоча б одну можу програмування, наприклад, Python.

Саме тому є сенс продовжити безкоштовне навчання у рамках благодійного фонду Софт Скілл.