🐧 50 основных вопросов на собеседовании по Linux | Вопросы и ответы |

🐧 50 основных вопросов на собеседовании по Linux | Вопросы и ответы

Статьи

Вы готовитесь к интервью по Linux?

Мы подготовили некоторые из часто задаваемых вопросов о Linux и ответы на них.

Если вы новичок (со знанием Linux или с сертификацией) или с профессиональным опытом администрирования Linux, пробегитесь по вопросам и ответам для подготовки к собеседованию.

Содержание
  1. 1. Что такое Linux и основные компоненты?
  2. 2. Что такое ядро Linux?
  3. 3. В чем разница между Linux и Unix?
  4. 4. Что такое inode в Linux? Как найти индекс, связанный с файлом?
  5. 5. Что такое оболочка Linux? Как проверить текущую оболочку?
  6. 6. Какой командой найти количество памяти и используемую подкачку?
  7. 7. Различия между жесткой и символической ссылкой?
  8. 8. Объясните права на файлы в Linux?
  9. 9. Как создать и удалить каталог в Linux?
  10. 10. Как создавать файлы в Linux?
  11. 11. Как переименовать файл и каталог в Linux?
  12. 12. Как копировать файлы и каталог в Linux?
  13. 13. Как составить список и смонтировать устройства в Linux?
  14. 14. Как создать пустой файл в Linux?
  15. 15. Как запланировать задачу в Linux? Что такое crontab и объясните поля в crontab?
  16. 16. Какие основные команды Vim вы знаете?
  17. 17. Как добавить двоичный файл в переменную $PATH?
  18. 18. Объясните команду Grep и регулярные выражения?
  19. 19. В чем разница между umask и ulimit?
  20. 20. Объясните вывод команды ls в Linux?
  21. 21. Объясните вывод команды top в Linux?
  22. 22. Каковы состояния процесса в Linux?
  23. 23. Как сделать резервную копию или архивировать файлы в Linux (команда tar)?
  24. 24. Как остановить запущенный процесс в Linux?
  25. 25. Как искать файлы в linux?
  26. 26. Как проверить, работает ли конкретный сервис?
  27. 27. Как запустить сервис при перезагрузке?
  28. 28. Как запустить и остановить службу?
  29. 29. Как выполнить удаленный вход на другой компьютер Linux?
  30. 30. Как проверить использование диска?
  31. 31. Зачем использовать команду export?
  32. 32. Как узнать версию ядра с нескольких серверов Linux, используя скрипт bash?
  33. 33. Какие минимальные требования для установки Linux?
  34. 34. Как установить права доступа к файлам / каталогам Linux?
  35. 35. Как установить владельца для файлов / каталогов?
  36. 36. Как создать пользователя и группу в Linux?
  37. 37. Как найти версию ядра / ОС в Linux?
  38. 38. Как узнать IP-адрес интерфейса?
  39. 39. Что такое образ initrd?
  40. 40. Объясните термины suid, sgid и sticky bit?
  41. 41. Что такое уровни запуска в linux и как их изменить?
  42. 42. Что такое SeLinux?
  43. 43. Что такое dev/null ?
  44. 44. В чем разница между виртуальным хостингом на основе имени и виртуальным хостингом на основе IP?
  45. 45.  Что такое переменные среды?
  46. 46. Какое использование файлов /etc/passwd и /etc/shadow?
  47. 47. Зачем устанавливать безпарольный вход по ssh?
  48. 48. Что такое swappiness в Linux?
  49. 49. Кэш и буфер на  Linux
  50. 50. В чем разница между apt и apt-get?
  51. Заключение

1. Что такое Linux и основные компоненты?

Linux – это бесплатная операционная система с открытым исходным кодом, основанная на ядре Linux.

Это одна из широко используемых операционных систем, особенно в мире серверов и разработчиков.

Его использование простирается от размещения веб-сайтов и приложений до основной операционной системы в таких интеллектуальных устройствах, как смартфоны, планшеты и телевизоры.

Linux состоит из 4 основных компонентов:

  • Ядро: это ядро системы Linux. Он отвечает за взаимодействие с аппаратными компонентами и обеспечивает взаимодействие операционной системы с аппаратными устройствами.
  • Оболочка: Оболочка – это интерфейс между пользователем Linux и ядром. Именно в оболочке команды назначаются пользователем и затем выполняются операционной системой.
  • Системные библиотеки: это специальные программы или функции, которые отвечают за реализацию большинства функций операционной системы, не полагаясь на права доступа к коду модулей ядра.
  • Системные утилиты. Это специальные программы, выполняющие определенные задачи. например, LibreOffice, Brasero, Gparted.

2. Что такое ядро Linux?

Ядро Linux является главным компонентом системы Linux.

Оно связывает базовое оборудование с операционной системой.

⏬ Как понизить версию ядра в Linux

3. В чем разница между Linux и Unix?

Linux – это форк системы UNIX.

В то время как Linux является открытым исходным кодом и бесплатен в использовании, UNIX является проприетарной операционной системой.

Разница между macOS и ядрами Linux

4. Что такое inode в Linux? Как найти индекс, связанный с файлом?

Инод (индексный узел) – это структура данных в файловой системе в стиле Unix, которая описывает объект файловой системы, такой как файл или каталог.

Когда создается файл, ему присваивается имя и номер индекса, который является целым числом, уникальным в файловой системе.

🐧 Как получить общее количество инодов раздела root

5. Что такое оболочка Linux? Как проверить текущую оболочку?

Оболочка Linux – это интерпретатор команд или программа, которая принимает команды и передает их в операционную систему для выполнения.

Чтобы проверить используемую оболочку, выполните команду:

echo $0

6. Какой командой найти количество памяти и используемую подкачку?

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

7. Различия между жесткой и символической ссылкой?

а) Жесткая ссылка не может быть создана для каталогов. Жесткая ссылка может быть создана только для файла.

б) Символические ссылки или симлинки могут ссылаться на каталог.

в) удаление исходного файла, на который указывает твоя жесткая ссылка, не удаляет саму жесткую ссылку; Жесткая ссылка по-прежнему предоставляет содержимое основного файла.

г) Если вы удалите жесткую ссылку или символическую ссылку, исходный файл останется без изменений.

e) Удаление исходного файла не удаляет вложенную символическую ссылку, но без исходного файла символическая ссылка бесполезна

8. Объясните права на файлы в Linux?

В Linux существует 3 основных типа прав доступа к файлам: чтение, запись и выполнение.

Эти разрешения могут быть назначены либо файлу, либо каталогу рекурсивно.

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

  • Чтение: В разрешениях на чтение используется возможность открывать и читать файл.
  • Запись: Разрешение на запись позволяет пользователю открывать, изменять или редактировать содержимое файла и сохранять изменения.
  • Выполнить: Это позволяет пользователю выполнять или запускать исполняемый файл или программу или скрипт оболочки.

🧟♀️ StickyBit, SUID и SGID в Linux с примерами

9. Как создать и удалить каталог в Linux?

Чтобы создать каталог, используйте команду mkdir, как показано далее:

mkdir directory_name

Например, чтобы создать каталог с именем «data», выполните команду:

mkdir data

Чтобы удалить каталог на Linux, используйте команду rm или rmdir.
  • Команда rmdir используется для удаления пустых каталогов.
  • Команда rm в основном используется с флагом -R для рекурсивного удаления каталогов.

10. Как создавать файлы в Linux?

Для создания файлов используйте команду touch.

Например, чтобы создать файл file1.doc, выполните команду:

touch file1.doc

Вы также можете использовать команду cat, за которой следует оператор перенаправления или знак «больше»>
сопровождаемый именем файла.

Затем введите содержимое файла и, наконец, нажмите CTRL + D, чтобы выйти из файла.

cat > file1.doc

Введите содержимое файла и нажмите CTRL + D

11. Как переименовать файл и каталог в Linux?

Чтобы переименовать файлы, используйте команду mv.

Обратите внимание: чтобы это сработало, путь к файлу, который нужно переименовать, должен быть одинаковым.

Например, чтобы переименовать файл file1.doc в каталоге /data/files на file2.doc, выполните команду:

mv /data/files/file1.doc /data/files/file2.doc

12. Как копировать файлы и каталог в Linux?

Чтобы скопировать файлы в Linux, используйте команду cp.

Синтаксис довольно прост:

cp  /source/of/the/file  /destination/of/the/file

13. Как составить список и смонтировать устройства в Linux?

Для просмотра списка точек монтирования выполните команду:

df  -aTh

Чтобы найти больше информации о точках монтирования в вашей системе, выполните команду:
findmnt
Кроме того, вы можете использовать команду cat:

cat /proc/self/mounts

Также вы можете использовать команду mount, как показано далее:
mount -l

14. Как создать пустой файл в Linux?

Чтобы создать пустой файл в Linux, используйте команду touch:

touch new_file

15. Как запланировать задачу в Linux? Что такое crontab и объясните поля в crontab?

Cron – это демон, который выполняет команды в определенные даты и время в Linux.

Вы можете использовать его для планирования действий, как одноразовых или повторяющихся задач.

Crontab – это программа, используемая для установки, удаления или перечисления таблиц, используемых для управления демоном cron на сервере.

Каждый пользователь может иметь свой собственный crontab, и, хотя это файлы в /var/spool/cron/crontabs, они не предназначены для непосредственного редактирования.

Вот несколько параметров командной строки crontab:

  • crontab -e Отредактировать файл
  • crontab -l Показать файл
  • crontab -r Удалить файл
Традиционный формат cron состоит из шести полей, разделенных пробелами:
<Minute> <Hour> <Day_of_the_Month>
<Month_of_the_Year> <Day_of_the_Week> <command/program to
execute>
Формат объясняется следующим образом:
* * * * * *
| | | | | |
| | | | | +–Год (диапазон: 1900-3000)
| | | | +—- День недели (диапазон: 1-7, 1 – понедельник)
| | | +—— Месяц года (диапазон: 1-12)
| | +——– День месяца (диапазон: 1-31)
| +———- Час (диапазон: 0-23)
+———— Минута (диапазон: 0-59)

17. Как добавить двоичный файл в переменную $PATH?

$ export PATH=$PATH:/path/to/the/binary/file

18. Объясните команду Grep и регулярные выражения?

Команда Grep – это выражение, используемое для фильтрации результатов или вывода.

Например, чтобы вывести список каталогов и искать только файлы со словом «cron», выполните команду:

ls | grep cron

19. В чем разница между umask и ulimit?

Umask расшифровывается как «User file creation mask», которая определяет настройки маски, которая определяет, какие права доступа к файлам устанавливаются для файлов и каталогов при их создании.

А ulimit – это встроенная команда linux, которая обеспечивает контроль над ресурсами, доступными для оболочки и / или запускаемым ею процессам.

Вы можете ограничить пользователя определенным диапазоном, отредактировав /etc/security/limits.conf, в то же время общесистемные настройки могут быть обновлены в /etc/sysctl.conf

20. Объясните вывод команды ls в Linux?

Команда ls выводит содержимое каталога в Linux.
Она отображает файлы и подкаталоги внутри каталога.
При использовании с другими аргументами, он может перечислять права доступа к файлам и даже отображать скрытые файлы.

21. Объясните вывод команды top в Linux?

Команда top – это утилита мониторинга, которая дает пользователю представление о системных показателях, таких как время безотказной работы, средняя загрузка,% ЦП и % использования памяти.

22. Каковы состояния процесса в Linux?

Состояния процесса, как следует из названия, относится к текущему состоянию процесса Linux.

Существует 4 состояния процесса, а именно: Запуск, ожидание, остановка и зомби.

23. Как сделать резервную копию или архивировать файлы в Linux (команда tar)?

Чтобы создать резервную копию каталога, просто запустите команду tar:

$ tar -cvf tarball_name.tar /path/to/directory

Например, чтобы создать архив в формате tar.gz файла sales.txt в /data/reports/path, выполните:

$ tar -cvf sales.tar.gz  /data/reports/sales.txt

Вы также можете заархивировать весь каталог, как показано тут:

$ tar -cvf repors.tar.gz  /data/reports/

24. Как остановить запущенный процесс в Linux?

Чтобы остановить запущенный процесс, используйте команду kill, за которой следует PID процесса.

Например, чтобы остановить процесс с PID 3836, выполните команду

kill 3836

25. Как искать файлы в linux?

Для поиска файлов в Linux используйте команду locate или find

👸 Как использовать на Linux команду find для поиска файлов

26. Как проверить, работает ли конкретный сервис?

Чтобы проверить, работает ли служба, используйте синтаксис:systemctl status service_name

Например, чтобы проверить, работает ли Postfix, выполните команду:systemctl status postfix

27. Как запустить сервис при перезагрузке?

Чтобы запустить службу при запуске перезагрузки, используйте синтаксис:

systemctl enable service_name

Например, чтобы запустить httpd веб-сервер после перезагрузки, запустите

systemctl enable httpd

28. Как запустить и остановить службу?

Чтобы запустить службу в системе systemd, выполните команду:

systemctl start service_name

Например, чтобы запустить службу ssh, выполните команду:

systemctl start sshd

Чтобы остановить службу, запустите:

systemctl stop service_name

Чтобы остановить запуск SSH:

systemctl stop sshd

29. Как выполнить удаленный вход на другой компьютер Linux?

Вы можете войти на удаленный компьютер Linux, используя протокол SSH или службу VNC.

30. Как проверить использование диска?

Используйте команду df, чтобы проверить пространство, используемое на вашем жестком диске, а также оставшееся / свободное пространство.

Кроме того, используйте команду du для проверки использования определенными файлами и каталогами.

31. Зачем использовать команду export?

Для экспорта командных меток и экспорта переменных среды.

32. Как узнать версию ядра с нескольких серверов Linux, используя скрипт bash?

#!/bin/bash
#we user variable serverlist to keep there path to file with server names
serverlist='server_list.txt'
#we write in variable all server list
servers=`cat $serverlist`
#we use variable result to keep there path to file with result
result='result.txt'

#this print header to file with resilt using \t\t to add 2 tab symbols
echo -e "Servername \t\t kernel version"> $result
#this get each line of serverlist one by one and write to server variable
for server in $servers
do
#this login to server by ssh and get uname -r
kernel=`ssh root@${server} "uname -r"`
#this write server name and kernel version separated by 2 tab to result file
echo -e "$server \t\t $kernel" >> $result
#end of for loop.
done

33. Какие минимальные требования для установки Linux?

В связи с тем, что новые дистрибутивы Linux запускаются раз в неделю или месяц, нет четких минимальных требований.

Более новые версии потребуют более высоких минимальных требований, чем более старые версии из-за обновленных функций и архитектуры графического интерфейса.

Каковы лучшие дистрибутивы Linux в 2019 году

Тем не менее, любой дистрибутив Linux должен работать с ПК со следующими минимальными требованиями:

25 GB of hard disk space
2 GB RAM
2 Ghz dual core processor
A screen resolution of 1024x768
A CD/DVD ROM or USB port for inserting installation media

34. Как установить права доступа к файлам / каталогам Linux?

Чтобы установить права доступа к файлу, используйте команду chmod, затем восьмеричное или символическое значение, а затем имя файла или имя каталога.

Например, чтобы назначить файлу права 664:

chmod 664 filename

Чтобы назначить права для каталога, используйте опцию -R для рекурсивного назначения разрешений.

chmod -R 664 directory_name

35. Как установить владельца для файлов / каталогов?

Чтобы установить владельца файла, используйте команду chown.

chown user:user filename

Для каталога используйте опцию -R для рекурсивного назначения разрешений. Например

 

chown -R user:user directory_name

36. Как создать пользователя и группу в Linux?

Чтобы создать пользователя, запустите команду adduser user_name :

adduser Radyga

37. Как найти версию ядра / ОС в Linux?

Запустите команду uname -a

38. Как узнать IP-адрес интерфейса?

Вы можете легко найти IP-интерфейс, выполнив команду ifconfig имя_интерфейса или используя команду ip (рекомендуется).

Пример:

ifconfig eth0

ip addr show

39. Что такое образ initrd?

Начальный RAM-диск (initrd) – это исходная корневая файловая система, которая монтируется до того, как будет доступна настоящая корневая файловая система.

Initrd привязан к ядру и загружен как часть процедуры загрузки ядра.

Затем ядро монтирует этот initrd как часть двухэтапного процесса загрузки, чтобы загрузить модули, чтобы сделать реальные файловые системы доступными и получить доступ к настоящей корневой файловой системе.

Таким образом, образ initrd играет жизненно важную роль в процессе загрузки Linux.

40. Объясните термины suid, sgid и sticky bit?

В дополнение к базовым правам для файлов в Linux существует несколько специальных разрешений, доступных для исполняемых файлов и каталог

SUID: если установлен бит setuid, когда файл выполняется пользователем, процесс будет иметь те же права, что и владелец исполняемого файла.

SGID: То же, что и выше, но наследует групповые привилегии файла при исполнении, а не привилегии пользователя. Аналогичным образом, когда вы создаете файл в каталоге, он наследует групповое владение каталогами.

Sticky bit: Sticky bit использовался в исполняемых файлах Linux, чтобы они оставались в памяти больше времени после первоначального выполнения, надеясь, что они понадобятся в ближайшем будущем. Но в основном это касается папок, что подразумевает, что файл или папка, созданные в папке с поддержкой stickybit, могут быть удалены только владельцем. Очень хорошая реализация sticky-бита – это /tmp, где каждый пользователь имеет разрешение на запись, но удалить его могут только пользователи, владеющие файлом.

41. Что такое уровни запуска в linux и как их изменить?

Уровень выполнения – это состояние init и всей системы, которое определяет, какие системные службы работают, и они идентифицируются по номерам.

Существует 7 различных уровней выполнения (уровень выполнения 0-6) в системе Linux для различных целей.

Описания приведены ниже.

0: Halt System (To shutdown the system)
1: Single user mode
2: Basic multi user mode without NFS
3: Full multi user mode (text based)
4: unused
5: Multi user mode with Graphical User Interface
6: Reboot System
Чтобы изменить уровень выполнения, отредактируйте файл «/etc/inittab» и измените запись initdefault (id: 5: initdefault :).
Если мы хотим изменить уровень запуска на лету, это можно сделать с помощью команды «init».
Например, когда мы вводим «init 3» в командной строке, это переместит систему с текущего уровня выполнения на runlevl 3.
Текущий уровень можно просмотреть, введя команду ‘who -r’

42. Что такое SeLinux?

SELinux – это аббревиатура от Security-enhanced Linux.

Это реализация контроля доступа и функция безопасности для ядра Linux.

Он предназначен для защиты сервера от неправильной настройки и / или скомпрометированных демонов.

Он устанавливает ограничения и инструктирует серверные демоны или программы, к каким файлам они могут обращаться и какие действия они могут предпринимать, определяя политику безопасности.

43. Что такое dev/null ?

у нас еть целая статья про это:

♾️ Что такое /dev/null в Linux?

44. В чем разница между виртуальным хостингом на основе имени и виртуальным хостингом на основе IP?

Виртуальные хосты используются для размещения нескольких доменов на одном экземпляре Apache.

Вы можете иметь один виртуальный хост для каждого IP-адреса вашего сервера, или один и тот же IP-адрес, но разные порты, или один и тот же IP-адрес, один и тот же порт, но разные имена хостов.

Последнее называется «ame based vhosts».

На виртуальном хостинге на основе IP мы можем запустить более одного веб-сайта на одном сервере, но каждый веб-сайт имеет свой IP-адрес, в то время как в виртуальном хостинге на основе имен мы размещаем несколько веб-сайтов на одном IP-адресе.

Но для этого вам нужно поместить более одной записи DNS для вашего IP-адреса в базу данных DNS.

45.  Что такое переменные среды?

у нас еть целая статья про это:

🐧 Как установить и перечислить переменные среды в Linux

46. Какое использование файлов /etc/passwd и /etc/shadow?

Файл /etc/shadow хранит действительный пароль в зашифрованном формате с некоторыми дополнительными свойствами, связанными с паролем пользователя.
В основном он учитывает параметры старения. Все поля разделены двоеточием (:).
Он содержит одну запись на строку для каждого пользователя, указанного в файле /etc/passwd.

47. Зачем устанавливать безпарольный вход по ssh?

Чтобы еще больше повысить безопасность системы, большинство организаций решили использовать аутентификацию на основе ключей вместо аутентификации на основе пароля.

Мы можем обеспечить аутентификацию на основе ключей, отключив стандартную аутентификацию по паролю.

Открытый ключ добавляется в файл конфигурации сервера, в то время как личный ключ остается конфиденциальным на стороне клиента.

48. Что такое swappiness в Linux?

Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки.

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

swappiness может иметь значение от 0 до 100

swappiness = 0 говорит ядру избегать выгрузки процессов из физической памяти как можно дольше

swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кеш подкачки

49. Кэш и буфер на  Linux

у нас еть целая статья про это:

В чем разница между кешем и буфером в Linux?

50. В чем разница между apt и apt-get?

у нас еть целая статья про это:

Разница между apt и apt-get

Заключение

В этой статье мы показали наиболее ожидаемые вопросы на собеседовании про Linux.

Помимо этих вопросов, вы должны быть готовы объяснить ежедневные задачи Linux, проекты, некоторые критические ситуации, с которыми вы столкнулись. Удачи!!

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Александр

    Linux – не форк UNIX. Перепутали с FreeBSD?

    Ответить
    1. cryptoparty автор

      FreeBSD это разновидность Unix

      Ответить
      1. Иван

        FreeBSD это разновидность BSD, если уж на то пошло. Unix – операционная система, а Linux – это всего-лишь ядро, на основе которого строятся операционные системы. Все они Unix-подобные. Linux был написан с нуля, основываясь на Unix, а вот BSD как-раз fork

        Ответить
  2. Айтуган

    Серверные Демоны))0)

    Ответить
    1. cryptoparty автор

      почему нет ? 🙂

      Ответить
  3. Дмитрий

    Linux – это операционная система а ядро!
    GNU/Linux – это не бесплатная операционная система, а свободная!
    С такими вопросами никто на работу брать не будет даже juniorом

    Ответить
  4. Jony23

    tar -zcvf xxx.tar.gz /path/…
    я бы добавил -z для сжатия Gzip

    Ответить
  5. Кристина

    Спасибо большое, готовлюсь к собеседованию по Вашей статье

    Ответить
    1. cryptoparty автор

      Удачи, а куда если не секрет?

      Ответить