Bash
Изучите написание скриптов на Bash - от переменных до надежных, готовых к продакшену скриптов. Циклы, массивы, ловушки, set -euo pipefail и финальный проект по начальной настройке сервера.
12 уроков по порядку
- 120 мин
Что такое Bash
Добро пожаловать. Если вы ни разу в жизни не открывали терминал, вы попали туда, куда нужно. Прежде чем набрать первую команду, потратим десять минут...
Shell vs terminalBash vs sh vs zshInteractive shell vs scriptWhere Bash fits in DevOps - 225 мин
Shebang и ваш первый скрипт
Если слово «скрипт» до сих пор звучит как что-то, что пишут только настоящие программисты, расслабьтесь. Скрипт, это просто текстовый файл со списком...
Shebang#!/usr/bin/env bashChmod +x./script.sh vs bash script.shExit codes - 325 мин
Переменные и кавычки
Если вы никогда раньше не пользовались переменными, не переживайте. Это одна из самых простых идей во всём курсе, а в Bash она устроена настолько...
Variable assignmentDouble quotes vs single quotes${var} bracesCommand substitution $(...) - 430 мин
Условные выражения и тесты
Все скрипты, которые вы писали до сих пор, выполняют одни и те же строки при любых обстоятельствах. Настоящим скриптам нужно принимать решения:...
If statement[[ ]] testsString testsFile tests -f -d -e&& and ||Case statement - 525 мин
Циклы
До сих пор каждый написанный вами скрипт выполнял каждую строку ровно один раз, сверху вниз. Для коротких скриптов это нормально, но настоящая работа...
For loopWhile loopUntil loopFor f in *.txt globbingC-style for loopBreak and continue - 625 мин
Функции
К этому моменту ваши скрипты начинают повторяться. Возможно, вы пишете сообщение со временем в трёх разных местах или снова и снова проверяете,...
Function definitionPositional args $1 $@ $#Return for exit codesEcho for outputLocal variables - 725 мин
Массивы
До сих пор одна переменная хранила одно значение. name="Ada" хранит одну строку. Чтобы хранить три имени, пришлось бы либо завести три отдельные...
Indexed arrays${arr[@]}${#arr[@]} lengthAssociative arrays declare -AIterating arrays - 825 мин
Расширение строк и арифметических выражений
Вы постоянно будете сталкиваться с ситуацией, когда переменная содержит почти то, что нужно, но не совсем. Полный путь к файлу, когда нужно только...
${var#prefix}${var%suffix}${var//old/new}$(( arith ))Printf formatting - 925 мин
Перенаправление ввода-вывода и конвейеры (pipes)
У каждой команды, которую вы запускаете в Bash, под капотом есть три отдельных канала, замечаете вы их или нет. Представьте себе машину для...
>>><2>2>&1&>+3 - 1030 мин
Обработка ошибок и ловушки (traps)
Каждый скрипт (script), который вы писали до сих пор, предполагает, что всё пройдёт хорошо. Команда, не находящая файл, несуществующая директория,...
Set -eSet -uSet -o pipefailTrap on EXITTrap on ERRCleanup functions - 1125 мин
Отладка и лучшие практики
Рано или поздно скрипт (script), который вы написали, сделает что-то, о чём вы его не просили. Он удалит не тот файл, пропустит цикл (loop), который,...
Bash -xSet -xShellcheckSafe quotingNever parse ls[[ vs [+1 - 1260 мин
Итоговый проект: скрипт начальной настройки сервера
Новый сервер - это машина, на которой ничего нет. Кто-то должен установить веб-сервер, создать учётную запись, под которой вы будете входить,...
Idempotent provisioningInstalling packagesCreating usersSSH key setupSystemd timersLogging+2
Изучай Bash на своём языке
Каждый урок, тест и ответ наставника показывается на вашем языке. AI-наставник отвечает на том языке, на котором вы пишете.
Roles that use Bash
See how hiring teams interview engineers on Bash, in production-like environments.
DevOps Engineer
Hire DevOps engineers who actually ship. Run live or take-home interviews in production-like Linux environments with Docker, Kubernetes, Terraform and CI/CD. See how they debug, automate, and work alongside AI.
See the interviewSite Reliability Engineer (SRE)
Hire SREs who actually run production. Live workspaces with metrics, logs, traces and a service that is starting to misbehave. We record every keystroke.
See the interviewInfrastructure Engineer
Hire infrastructure engineers who design systems your team can rely on. Interview them in real workspaces with Terraform, Ansible, cloud APIs and live failure scenarios.
See the interview