// interview

Вопросы на собеседовании по Linux

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

Пройти скилл-тест целиком бесплатно, карта не нужна

Разогрев: базовые вопросы

Что делает оператор > в команде echo hi > file.txt?

  1. Перенаправляет вывод, перезаписывая файл
  2. Перенаправляет только ошибки
  3. Дописывает вывод в конец файла
  4. Читает содержимое файла как ввод
показать ответ

Ответ: Перенаправляет вывод, перезаписывая файл. > перенаправляет stdout, перезаписывая файл; для дописывания используется >>, для ввода — <, для ошибок — 2>.

linux-easy-005 · shell · text-tools

Какой символ используется для конвейера (передачи вывода одной команды на вход другой)?

  1. ;
  2. &
  3. >
  4. |
показать ответ

Ответ: |. | (pipe) направляет stdout одной команды в stdin следующей; > перенаправляет в файл, ; разделяет команды, & запускает в фоне.

linux-easy-008 · shell · text-tools

Какой сигнал по умолчанию посылает команда kill <pid> без указания номера?

  1. SIGKILL (9)
  2. SIGHUP (1)
  3. SIGTERM (15)
  4. SIGSTOP (19)
показать ответ

Ответ: SIGTERM (15). kill по умолчанию шлёт SIGTERM (15) — процесс может его перехватить и завершиться корректно; SIGKILL (9) неперехватываем.

linux-easy-011 · signals · processes

Для чего используют tail -f app.log?

  1. Чтобы отсортировать строки файла
  2. Чтобы показать конец файла и продолжать выводить дописываемые данные
  3. Чтобы вывести первые строки файла
  4. Чтобы удалить последнюю строку
показать ответ

Ответ: Чтобы показать конец файла и продолжать выводить дописываемые данные. tail -f сначала показывает конец файла, а затем следит за ростом файла и выводит новые данные, что удобно для просмотра журнала.

linux-easy-018 · text-tools · filesystem

Средний уровень: где чаще всего сыпятся

Чему соответствует числовая запись прав 755 при chmod?

  1. rwxr-xr-x
  2. rwxrwxr-x
  3. rwxr--r--
  4. rw-r--r--
показать ответ

Ответ: rwxr-xr-x. 7=rwx для владельца, 5=r-x для группы и остальных (4+1, без записи); 755 — типичные права для исполняемого файла или каталога.

linux-medium-001 · permissions

В чём ключевое отличие выполнения скрипта через `source script.sh` от `./script.sh`?

  1. Они полностью идентичны
  2. source запускает в текущем шелле, а ./ — в дочернем подпроцессе
  3. source работает только с .sh, ./ — с любым файлом
  4. ./ требует прав root, а source — нет
показать ответ

Ответ: source запускает в текущем шелле, а ./ — в дочернем подпроцессе. source (или .) выполняет скрипт в текущем шелле, поэтому его export и cd влияют на сессию; ./ порождает подпроцесс, чьи изменения окружения теряются после завершения.

linux-medium-002 · shell · processes

Что делает `2>&1` в конструкции `command > out.log 2>&1`?

  1. Перенаправляет stdout в stderr
  2. Игнорирует ошибки
  3. Перенаправляет stderr туда же, куда уже направлен stdout (в out.log)
  4. Дублирует вывод в два файла
показать ответ

Ответ: Перенаправляет stderr туда же, куда уже направлен stdout (в out.log). 2>&1 направляет дескриптор 2 (stderr) в текущее назначение дескриптора 1 (stdout), то есть в out.log; порядок важен — 2>&1 должно идти после > out.log.

linux-medium-007 · shell · text-tools

Чем отличается жёсткая ссылка (hard link) от символической (symlink)?

  1. Symlink работает между файловыми системами, hard link тоже всегда работает
  2. Hard link можно создать на каталог любым пользователем
  3. Hard link — это копия файла, symlink — оригинал
  4. Hard link указывает на тот же inode и ломается только при удалении всех ссылок; symlink хранит путь и становится битой при удалении цели
показать ответ

Ответ: Hard link указывает на тот же inode и ломается только при удалении всех ссылок; symlink хранит путь и становится битой при удалении цели. Hard link разделяет inode с файлом, поэтому данные живут пока есть хоть одна ссылка; symlink — отдельный файл с путём, который повисает при удалении цели и может пересекать ФС.

linux-medium-008 · filesystem

Что означает код возврата 130 у завершившегося процесса?

  1. Permission denied
  2. Команда не найдена
  3. Процесс прерван по SIGINT (Ctrl+C): 128 + номер сигнала 2
  4. Out of memory
показать ответ

Ответ: Процесс прерван по SIGINT (Ctrl+C): 128 + номер сигнала 2. При завершении сигналом N код возврата равен 128+N; 130 = 128+2 (SIGINT), 137 = 128+9 (SIGKILL).

linux-medium-011 · signals · processes

Что разрешает бит execute (x) на каталоге в POSIX-системе?

  1. Получать список имён в каталоге без бита read
  2. Проходить через каталог и обращаться к известным именам внутри него
  3. Читать содержимое любого файла в каталоге независимо от его прав
  4. Создавать файлы без бита write
показать ответ

Ответ: Проходить через каталог и обращаться к известным именам внутри него. Бит x на каталоге разрешает поиск имён и прохождение пути; r разрешает читать список имён, а для создания и удаления записей обычно нужны w и x.

linux-medium-014 · permissions · filesystem

Сложные: на мидла и выше

Что означает sticky-бит на каталоге вроде /tmp с правами 1777?

  1. Файлы в каталоге может удалять/переименовывать только их владелец (или владелец каталога/root)
  2. Все файлы наследуют права 1777
  3. Только root может удалять файлы в каталоге
  4. Каталог нельзя удалить
показать ответ

Ответ: Файлы в каталоге может удалять/переименовывать только их владелец (или владелец каталога/root). Sticky-бит (ведущая 1, как в 1777) на каталоге ограничивает удаление/переименование файлов их владельцами, что и защищает общий /tmp от удаления чужих файлов.

linux-hard-001 · permissions · filesystem

В чём разница между SIGTERM, SIGKILL и SIGSTOP по перехватываемости?

  1. Все три можно перехватить обработчиком
  2. SIGSTOP завершает процесс, SIGKILL приостанавливает
  3. SIGTERM можно перехватить/проигнорировать; SIGKILL и SIGSTOP перехватить или заблокировать нельзя
  4. Только SIGKILL нельзя перехватить, SIGSTOP можно
показать ответ

Ответ: SIGTERM можно перехватить/проигнорировать; SIGKILL и SIGSTOP перехватить или заблокировать нельзя. SIGKILL (9) и SIGSTOP (19) обрабатываются ядром и не могут быть пойманы, заблокированы или проигнорированы; SIGTERM же штатно перехватывается для graceful shutdown.

linux-hard-003 · signals · processes

Что произойдёт с большим открытым файлом, если процесс держит его дескриптор открытым, а файл удалить через rm?

  1. Дескриптор автоматически закроется
  2. rm завершится с ошибкой 'file busy'
  3. Файл будет удалён немедленно, процесс получит EBADF
  4. Имя исчезнет из каталога, но место не освободится, пока процесс не закроет дескриптор
показать ответ

Ответ: Имя исчезнет из каталога, но место не освободится, пока процесс не закроет дескриптор. rm снимает только ссылку из каталога; inode и блоки данных удаляются лишь когда счётчик ссылок и число открытых дескрипторов дойдут до нуля — поэтому 'df' покажет занятое место до закрытия fd.

linux-hard-004 · filesystem · processes

Чем zombie-процесс отличается от orphan-процесса?

  1. Zombie потребляет CPU, orphan — нет
  2. Zombie завершился, но его статус не считан родителем (reap); orphan — живой процесс, чей родитель умер и его усыновил init/PID 1
  3. Это синонимы
  4. Orphan нельзя убить, zombie можно
показать ответ

Ответ: Zombie завершился, но его статус не считан родителем (reap); orphan — живой процесс, чей родитель умер и его усыновил init/PID 1. Zombie (статус Z) — уже мёртвый процесс, ждущий wait() от родителя, чтобы освободить запись в таблице; orphan — работающий процесс, перешедший к init (PID 1), который его в итоге и пожнёт.

linux-hard-006 · processes · signals

Зачем нужен umask и что даст файлу umask 027 при создании обычного файла?

  1. umask 027 даст файлу 750
  2. umask влияет только на каталоги
  3. umask задаёт права напрямую, файл получит 027
  4. umask вычитается побитово из 666 для файлов: 666 & ~027 = 640 (rw-r-----)
показать ответ

Ответ: umask вычитается побитово из 666 для файлов: 666 & ~027 = 640 (rw-r-----). umask маскирует биты прав: для файлов базис 666, для каталогов 777; 666 AND NOT 027 = 640, то есть rw-r----- (группа без записи, остальные без доступа).

linux-hard-008 · permissions · filesystem

Куда идти после вопросов?