it-git.ru
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • 📰

9+ Часто задаваемых вопросов о Linux на собеседованиях

Linux

Linux — это мощная и гибкая операционная система, которая предоставляет пользователю широкие возможности для настройки и управления. 

Разберем самые базовые и связанные с Linux вопросы, которые могут встретиться на собеседовании. Эти темы включают дерево процессов, зомби-процессы, сигналы, управление памятью, права доступа и другие фундаментальные концепции.

1. Дерево процессов

1.1. Что такое дерево процессов?

В Linux каждый процесс имеет уникальный идентификатор (PID) и может порождать дочерние процессы. Процесс, который создал другой процесс, называется родительским процессом (PPID — Parent Process ID). Все процессы образуют иерархическую структуру, которая называется деревом процессов.

1.2. Как посмотреть дерево процессов?

Используйте команду pstree:

pstree
[/code][/code][/code]

Пример вывода:

systemd─┬─sshd───sshd───bash
        ├─cron
        └─nginx───nginx

Если pstree не установлен, используйте ps:

ps -ef --forest
[/code][/code][/code]

1.3. Родительский процесс PID 1

Процесс с PID 1 — это init (или systemd в современных системах). Он является корнем дерева процессов и отвечает за запуск всех остальных процессов при загрузке системы.

2. Зомби-процессы

2.1. Что такое зомби-процесс?

Зомби-процесс — это процесс, который завершился, но его запись в таблице процессов все еще существует, потому что родительский процесс не вызвал системный вызов wait() для получения кода завершения.

2.2. Как найти зомби-процессы?

Используйте команду ps:

ps aux | grep Z
[/code][/code][/code]

Статус "Z" означает, что процесс является зомби.

2.3. Почему зомби-процессы опасны?

Зомби-процессы сами по себе не потребляют ресурсы (память, CPU), но они занимают место в таблице процессов. Если таблица процессов переполнится, система не сможет создавать новые процессы.

2.4. Как устранить зомби-процессы?

  1. Убедитесь, что родительский процесс правильно обрабатывает завершение дочерних процессов.
  2. Если родительский процесс не реагирует, можно отправить ему сигнал SIGCHLD:
    kill -SIGCHLD <PPID>
    [/code]
    [/code]
    [/code]
    
  3. Если ничего не помогает, завершите родительский процесс:
    kill -9 <PPID>
    [/code]
    [/code]
    [/code]
    

3. Сигналы (Signals)

3.1. Что такое сигналы?

Сигналы — это программные прерывания, которые используются для взаимодействия между процессами или для управления их выполнением.

3.2. Основные сигналы:

  • SIGTERM (15): Запрос на завершение процесса (по умолчанию для команды kill).
  • SIGKILL (9): Принудительное завершение процесса.
  • SIGSTOP (17): Остановка процесса (не может быть проигнорирована).
  • SIGCONT (18): Возобновление остановленного процесса.
  • SIGHUP (1): Сигнал о потере терминала (часто используется для перечитывания конфигурации).

3.3. Как отправить сигнал?

kill -<SIGNAL> <PID>
[/code][/code][/code]

Пример:

kill -9 1234  # Принудительно завершить процесс с PID 1234
[/code][/code][/code]

4. Управление памятью

4.1. Как посмотреть использование памяти?

Используйте команду free:

free -h
[/code][/code][/code]

Пример вывода:

              total        used        free      shared  buff/cache   available
Mem:           7.7G        2.1G        3.4G        200M        2.2G        5.1G
Swap:          2.0G        0B          2.0G

4.2. Как посмотреть использование памяти конкретным процессом?

Используйте команду top или htop:

top
[/code][/code][/code]

Или:

ps -o pid,user,%mem,cmd ax | sort -b -k3 -r
[/code][/code][/code]

5. Права доступа

5.1. Что такое права доступа?

Права доступа определяют, кто может читать, писать или выполнять файл/директорию. Права задаются для трех категорий:

  • Владелец (u)
  • Группа (g)
  • Остальные пользователи (o)

5.2. Как изменить права?

Используйте команду chmod:

chmod 755 filename  # rwxr-xr-x
[/code][/code][/code]

Или символический метод:

chmod u+x filename  # Добавить право на выполнение для владельца
[/code][/code][/code]

5.3. Как изменить владельца и группу?

Используйте команду chown:

chown user:group filename
[/code][/code][/code]

6. Файловые дескрипторы

6.1. Что такое файловые дескрипторы?

Файловый дескриптор — это абстрактный указатель на открытый файл, сокет или устройство. Каждый процесс имеет свои файловые дескрипторы, которые хранятся в /proc/<PID>/fd/.

6.2. Как посмотреть файловые дескрипторы процесса?

ls -l /proc/<PID>/fd/
[/code][/code][/code]

7. Орфаны (Orphan Processes)

7.1. Что такое орфан-процесс?

Орфан-процесс — это процесс, у которого завершился родительский процесс. В Linux такие процессы автоматически "усыновляются" процессом с PID 1 (init/systemd).

7.2. Как найти орфан-процессы?

Проверьте PPID процесса:

ps -ef | awk '$3 == 1 {print $0}'
[/code][/code][/code]

8. Журналирование (Logging)

8.1. Как посмотреть логи системы?

Основные логи находятся в /var/log/. Используйте команду journalctl для systemd:

journalctl -xe  # Посмотреть последние логи
journalctl -u ssh.service  # Логи конкретной службы
[/code][/code][/code]

9. Работа с дисками и разделами

9.1. Как посмотреть подключенные диски?

lsblk
fdisk -l
[/code][/code][/code]

9.2. Как проверить SMART-статус диска?

smartctl -a /dev/sda
[/code][/code][/code]

10. Еще 5 моментов которые могут пригодится

  1. Как работает fork() в Linux?

    • fork() создает точную копию текущего процесса. Новый процесс (дочерний) получает новый PID, а у родительского процесса сохраняется старый PID.
  2. Что такое inode?

    • Inode — это метаданные файла, содержащие информацию о размере, правах доступа, владельце, времени создания и т.д., но не имя файла.
  3. Как работает механизм перенаправления ввода/вывода?

    • Перенаправление ввода/вывода позволяет изменить стандартные потоки (stdin, stdout, stderr):
      command > output.txt  # Перенаправить stdout в файл
      command 2> error.txt  # Перенаправить stderr в файл
      command &> all.txt    # Перенаправить stdout и stderr в файл
      [/code]
      [/code]
      [/code]
      
  4. Что такое swap?

    • Swap — это область на жестком диске, используемая как дополнительная память, когда RAM переполнена.
  5. Как работает монтирование файловых систем?

    • Монтирование — это процесс подключения файловой системы к определенной директории (точке монтирования).

  • 19.03.2025
  • 112
  • 0
LazyJournal: Удобный интерфейс для работы с journalctl в терминале
LazyJournal: Удобный интерфейс для работы с journalctl в терминале
26-02-2025, 16:00, Linux
Что такое виртуализация?
Что такое виртуализация?
3-02-2025, 08:54, Виртуализация
Пакетные менеджеры linux: APT, YUM, DNF, Pacman — обзор базовых функции по управлению пакетами
Пакетные менеджеры linux: APT, YUM, DNF, Pacman — обзор базовых функции по управлению пакетами
22-01-2025, 20:41, Linux
Netplan для настройки сети
Netplan для настройки сети
14-03-2025, 09:17, Linux
pstree, linux, ps, grep, Signals, chmod, chown, Inode
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • Active Directory
  • ▒ IT Новости
AD astra cisco cmd debian Docker Exchange firewall hp interface linux LXC Mail mikrotik network ovirt ProxMox PVE radius raid route router RouterOS s3 vpn windows Россия база данных безопасность виртуализация данные диск защита копирование массив надежность настройка программный райд скрипт файл
Показать все теги

Что такое IT-GIT?

«IT» — это не просто технологии, а целый мир инноваций и решений, направленных на преодоление сложностей. Мы представляем экспертность в области информационных технологий и широкой технологической экосистемы, стремясь к постоянному развитию и совершенствованию.

«Git» — это отсылка к одной из самых популярных систем контроля версий, которая обеспечивает эффективное сотрудничество, быструю итерацию и надежное управление сложными проектами. Мы стремимся объединить и поделиться опытом и идеями специалистов в сфере технологий, создавая пространство для обмена знаниями.

Инновационные технологии + совместный опыт экспертов в области технологий = путь к успеху!


  • ◆ Полезное
  • ▻ Заметки по докеру
  • ▻ Процесс расширения LVM на примере виртуальной машины
  • ▻ Расширение раздела на HDD/SSD
  • ▻ Ремонт файловой системы linux
  • ▻ Коды символов Юникода в UTF-8
  • ▻ Загрузка CHR RouterOS
  • ▻ #mikrotik
  • ▻ #zfs

  • ★ TOP 20
  • ☆ Шпаргалка по ZFS
  • ☆ Robocopy — описание и примеры использования
  • ☆ Настройка сети через командную строку и BAT файл
  • ☆ Для чего нужен протокол STP/RSTP на примере Mikrotik
  • ☆ Мигрируем на Exchange с почты для домена (yandex, mail, google и др.)
  • ☆ Как подключить сетевой диск всем пользователям с использованием AD
  • ☆ НP ProCurve. наиболее часто используемые команды консоли.
  • ☆ Сброс пароля Windows 10 с помощью встроенной учетной записи Администратора
  • ☆ Настройка условной пересылки DNS-запросов в Mikrotik RouterOS
  • ☆ Как создать программный RAID 1 массив (зеркало) средствами Windows 10, 8.1, 8, 7, Vista
  • ☆ Проверить, запущена ли программа
  • ☆ Не работает fetch в netwatch Mikrotik (ROS 7.13)
  • ☆ Как создать RAID 1 из уже заполненного диска на Windows 10, 8.1, 8, 7, Vista
  • ☆ Mikrotik (vpn server) + Windows server 2008r2 (ad, radius server)
  • ☆ Отечественная виртуализация - на чем построена, обзор, сравнение.
  • ☆ Ремонт файловой системы linux
  • ☆ Сравнение решений WireGuard
  • ☆ Увеличение zfs диска (ISCSI FreeNAS)
  • ☆ Mikrotik, 3 провайдера, переключение и разделение трафик
  • ☆ Полезности Mikrotik
Monitorus. Мониторинг сайтов и серверов.
 
  Top.Mail.Ru      © 2019-2025.    www.IT-GIT.ru    ✉ info@it-git.ru