🐧 Linux  ·  20 вопросов  ·  ~45 мин  ·  ⏱ Таймер 45:00  ·  Средний  ·  👥 1 прошёл

Потоки, каналы и перенаправления

Оболочка связывает процессы через файловые дескрипторы, а порядок перенаправлений определяет, куда уйдёт каждый байт. Тест предлагает читать конвейеры, разделять stdout и stderr, сохранять коды завершения и замечать ситуации, где красивый однострочник скрывает потерю ошибки.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выбери один ответ из четырёх. На 20 вопросов отведено 45 минут. Не меньше половины заданий требуют разобрать команды, сценарий Bash, конфигурацию или диагностический вывод. После завершения откроются общий процент, четыре тематические шкалы, правильные ответы и краткий разбор каждого решения.
Вопрос 1 из 20
Команда read запускается без перенаправления внутри интерактивной оболочки. Откуда она обычно получает строку?
BashТерминал
printf 'Name: ' >&2
IFS= read -r name
printf '%s\n' "$name"
Вопрос 2 из 20
Что передаёт конструкция wc -l < access.log?
BashТерминал
wc -l < access.log
wc -l access.log
Вопрос 3 из 20
Чем here-document отличается от передачи текста как одного аргумента?
Вопрос 4 из 20
Зачем кавычить маркер в <<'EOF'?
BashТерминал
cat >config.ini <<'EOF'
path=$HOME
command=$(date)
EOF
cat config.ini
Вопрос 5 из 20
Конструкция diff <(sort a) <(sort b) использует подстановку процесса. Что получают аргументы diff?
Вопрос 6 из 20
Что попадёт в errors.log после command 2>errors.log?
BashТерминал
{ printf 'data\n'; printf 'warning\n' >&2; } 2>errors.log
Вопрос 7 из 20
Почему cmd >all.log 2>&1 объединяет оба потока в одном файле?
BashТерминал
cmd >all.log 2>&1
Вопрос 8 из 20
Чем отличается cmd 2>&1 >out.log от cmd >out.log 2>&1 при обычном запуске из терминала?
BashТерминал
{ printf 'OUT\n'; printf 'ERR\n' >&2; } 2>&1 >out.log
Вопрос 9 из 20
Что на самом деле делает 2>/dev/null?
Вопрос 10 из 20
Сценарий должен вернуть чистые данные в stdout, а ход работы — в журнал. Какой подход удобен?
BashТерминал
generate_data() { printf 'row1\n'; printf 'loaded cache\n' >&2; }
generate_data 2>>job.log | gzip >data.gz
Вопрос 11 из 20
Как работают стадии обычного конвейера cmd1 | cmd2 | cmd3?
BashТерминал
producer | transform | consumer
Вопрос 12 из 20
Почему producer может завершиться с SIGPIPE, если head -n 1 уже получил строку?
BashТерминал
yes record | head -n 1
Вопрос 13 из 20
Почему переменная count иногда остаётся 0 после printf ... | while read ...; do ((count++)); done?
Вопрос 14 из 20
Как одновременно видеть поток на экране и сохранять его в raw.log для дальнейшего разбора?
BashТерминал
journalctl -u app --since today | tee raw.log | grep -c 'ERROR'
Вопрос 15 из 20
Почему команда grep pattern huge.log | head может не ждать полного чтения huge.log?
BashТерминал
grep -n 'panic' huge.log | head -n 20
Вопрос 16 из 20
Какой код обычно находится в $? сразу после false | true без pipefail?
BashТерминал
false | true
printf '%s\n' "$?"
Вопрос 17 из 20
Что меняет set -o pipefail?
Вопрос 18 из 20
Что содержит массив PIPESTATUS сразу после конвейера в Bash?
BashТерминал
grep x missing.txt | sort | uniq -c
printf '%s\n' "${PIPESTATUS[*]}"
Вопрос 19 из 20
Когда выполнится deploy в конструкции test_config && deploy?
Вопрос 20 из 20
Что делает ! command с точки зрения статуса?
BashТерминал
if ! grep -q '^enabled=yes$' config; then
  printf 'disabled\n'
fi

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу