🐧 Linux  ·  20 вопросов  ·  ~45 мин  ·  ⏱ Таймер 45:00  ·  Лёгкий  ·  👥 2 прошли

Основные команды терминала

Повседневные команды становятся опасными не из-за сложности синтаксиса, а из-за неверно прочитанной цели. В этом тесте нужно предсказывать результат последовательностей, выбирать безопасные ключи и замечать, когда привычная команда копирует, перемещает или удаляет совсем не то, что ожидалось.

Отвечено: 0 из 20
--:--
0%
💡 Инструкция: Выбери один ответ из четырёх. На 20 вопросов отведено 45 минут. Не меньше половины заданий требуют разобрать команды, сценарий Bash, конфигурацию или диагностический вывод. После завершения откроются общий процент, четыре тематические шкалы, правильные ответы и краткий разбор каждого решения.
Вопрос 1 из 20
После двух переходов нужно быстро вернуться в предыдущий рабочий каталог и увидеть его путь. Какая команда подходит?
BashТерминал
$ pwd
/srv/app/releases/v8
$ cd /var/log
$ <одна команда>
/srv/app/releases/v8
Вопрос 2 из 20
Что выведет команда ls -d */ в каталоге, где есть dir, file и символическая ссылка link -> dir?
BashТерминал
mkdir dir
touch file
ln -s dir link
ls -d */
Вопрос 3 из 20
Что означает путь ~root в интерактивной оболочке?
Вопрос 4 из 20
Нужно временно перейти в /etc, затем вернуться, не запоминая исходный путь. Какой приём сохраняет стек каталогов?
BashТерминал
$ pushd /etc
/etc /srv/app
$ grep '^hosts:' nsswitch.conf
$ popd
/srv/app
Вопрос 5 из 20
Почему pwd и pwd -P могут показать разные строки?
Вопрос 6 из 20
Какая команда создаст всё дерево /srv/app/{cache,run,log}, даже если /srv/app ещё нет?
BashТерминал
mkdir -p /srv/app/{cache,run,log}
find /srv/app -maxdepth 1 -type d -printf '%f\n'
Вопрос 7 из 20
Файл report уже содержит данные. Что сделает touch report?
BashТерминал
printf '42\n' > report
before=$(sha256sum report)
touch report
after=$(sha256sum report)
printf '%s\n%s\n' "$before" "$after"
Вопрос 8 из 20
Нужно создать файл с буквальным именем -draft. Какая команда не примет имя за ключ?
BashТерминал
cd "$(mktemp -d)"
touch -- -draft
ls -lb -- -draft
Вопрос 9 из 20
Почему mktemp предпочтительнее имени /tmp/app.$$ для чувствительного временного файла?
Вопрос 10 из 20
Сценарий формирует конфигурацию и должен заменить старую только после успешной проверки. Какой порядок надёжнее?
BashТерминал
tmp=$(mktemp /etc/myapp/config.XXXXXX) || exit 1
generate >"$tmp" && myapp --check "$tmp" && mv -f -- "$tmp" /etc/myapp/config
Вопрос 11 из 20
Каталог dst существует. Что создаст cp -a src dst?
BashТерминал
mkdir -p src/sub dst
touch src/sub/x
cp -a src dst
find dst -print
Вопрос 12 из 20
Как скопировать именно содержимое src, включая скрытые имена, в уже существующий dst?
BashТерминал
mkdir -p src dst
touch src/a src/.env
cp -a src/. dst/
find dst -maxdepth 1 -printf '%f\n'
Вопрос 13 из 20
Что произойдёт при mv large.bin /mnt/other/, если /mnt/other находится на другой файловой системе?
Вопрос 14 из 20
Нужно не затереть существующий файл при копировании пакетной выгрузки. Какой ключ GNU cp выражает это прямо?
BashТерминал
cp -n -- incoming/*.csv archive/
printf 'status=%s\n' "$?"
Вопрос 15 из 20
Почему cp -a обычно лучше cp -r для резервной копии дерева конфигурации?
BashТерминал
cp -a --preserve=all /etc/myapp/ /backup/etc-myapp/
getfacl -R /backup/etc-myapp | head
Вопрос 16 из 20
Почему rmdir logs завершится ошибкой, если внутри есть только скрытый файл .keep?
BashТерминал
mkdir logs
touch logs/.keep
rmdir logs
Вопрос 17 из 20
Как безопасно удалить файл с именем -rf из текущего каталога?
Вопрос 18 из 20
В чём риск команды find cache -type f -mtime +7 -delete без предварительной проверки?
BashТерминал
find "$CACHE" -xdev -type f -mtime +7 -print
# только после проверки:
find "$CACHE" -xdev -type f -mtime +7 -delete
Вопрос 19 из 20
Что защищает ключ --preserve-root в GNU rm при рекурсивном удалении?
Вопрос 20 из 20
Какой подход лучше для автоматической очистки, если ошибочное удаление должно быть восстановимо в течение суток?
BashТерминал
base=/srv/cache
stamp=$(date +%s)
quarantine="$base/.quarantine/$stamp"
mkdir -p "$quarantine"
find "$base" -xdev -path "$base/.quarantine" -prune -o \
  -type f -mtime +30 -print0 |
while IFS= read -r -d '' file; do
  rel=${file#"$base"/}
  mkdir -p -- "$quarantine/$(dirname -- "$rel")"
  mv -- "$file" "$quarantine/$rel"
done

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

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

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

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