Меню

Тест системный администратор linux



Тест системный администратор linux

Вопросы для интервью системного администратора Linux/DevOps

Коллекция вопросов для собеседования linux сисадмина/devops. Не стесняйтесь добавлять свои через pull request’ы, issues или сообщением по электронной почте.

  1. Участники
  2. Общие вопросы
  3. Простые вопросы о Linux
  4. Вопросы среднего уровня о Linux
  5. Сложные вопросы о Linux
  6. Вопросы экспертного уровня о Linux
  7. Вопросы по сетям
  8. Вопросы о MySQL
  9. Вопросы о DevOps практиках
  10. Забавные вопросы
  11. Время демо
  12. Другие ссылки
  • moregeek
  • typhonius
  • schumar
  • negesti
  • peter
  • andreashappe
  • quatrix
  • biyanisuraj
  • pedroguima
  • Ben
  • bharatnc
  • Что вы узнали за вчера/эту неделю?
  • Расскажите о предпочитаемом окружении разработчика/администратора. (OS, редактор, браузеры, инструменты и т.п.)
  • Расскажите о последнем проекте на Linux, который вы закончили.
  • Расскажите о самой большой неудаче, которую вы допустили [какой-то период времени] и как вы изменились на сегодняшний день. Что вы вынесли из этого опыта?
  • Почему мы должны выбрать вас?
  • Какую роль играет DNS в сети?
  • Что такое HTTP?
  • Что такое HTTP прокси и как он работает?
  • Опишите кратко как работает HTTPS?
  • Что такое SMTP? Расскажите кратко сценарий доставки сообщения через SMTP.
  • Что такое RAID? Что такое RAID0, RAID1, RAID5, RAID10?
  • Что такое резервная копия 0-го уровня? Что такое инкрементальная резервная копия?
  • Опишите иерархию файловой системы в Linux.
  • Какое имя и UID администратора?
  • Как посмотреть все файлы в каталоге, включая скрытые?
  • Какая команда в Unix/Linux удаляет каталог со всем его содержимым?
  • Какая команда в Unix/Linux показывает свободную/используемую память? Существует ли свободная память в Linux?
  • Как найти строку «my konfu is the best» в файлах каталога рекурсивно?
  • Как подключиться к удаленному серверу или что такое SSH?
  • Как получить все переменные окружения и как их можно использовать?
  • Я получил «command not found» при запуске ifconfig -a . Что может быть не так?
  • Что произойдет, если я нажму TAB-TAB?
  • Какая команда показывает доступное свободное пространство на диске в Unix/Linux?
  • Какие команды вы знаете, которые могут быть использованы для проверки DNS записей?
  • Какая команда Unix/Linux используется для изменения владельца файла, прав доступа к файлу?
  • Что делает команда chmod +x FILENAME ?
  • Что означают права 0750 для файла?
  • Что означают права 0750 для каталога?
  • Как добавить пользователя без прав входа в систему?
  • Как добавить/убрать пользователя в/из группы?
  • Что такое bash алиас?
  • Как установить email для пользователя root?
  • Что делает Ctrl+c?
  • Что содержится в файле /etc/services?
  • Как перенаправить STDOUT и STDERR в bash?
  • Какая разница между UNIX и Linux?
  • В чем разница между Telnet и SSH?
  • Объясните три усредненных значения load average и что они означают? Какой командой можно посмотреть load average?
  • Можете назвать букву в нижнем регистре, которая не является валидной опцией для GNU ls ?
  • Что такое модуль ядра Linux?
  • Расскажите по шагам как загрузить систему в однопользовательском режиме для решения проблем.
  • Расскажите по шагам как вы будете решать проблему с ошибкой 404 в веб-приложении, которое вы обслуживаете.
  • Что делают следующие команды и как вы из будете использовать?
  • tee
  • awk
  • tr
  • cut
  • tac
  • curl
  • wget
  • watch
  • head
  • tail
  • Что делает & в конце команды?
  • Что делает & disown в конце команды?
  • Что такое пакетный фильтр и как он работает?
  • Что такое виртуальная память?
  • Что такое swap и для чего он используется?
  • Что такое A-запись, NS-запись, PTR-запись, CNAME-запись, MX-запись?
  • Знаете ли вы еще какие-либо RR-записи и для чего они используются?
  • Что такое Split-Horizon DNS?
  • Что такое sticky bit?
  • Что делает установленный на файл immutable bit?
  • Какая разница между символическими и жесткими ссылками? Что произойдет если удалить символическую/жесткую ссылку?
  • Что такое inode и какая информация хранится в inode?
  • Как принудительно запустить проверку файловой системы при следующей перезагрузке?
  • Что такое SNMP и для чего он используется?
  • Что такое уровень запуска и как узнать текущий?
  • Что такое SSH port forwarding?
  • Какая разница между локальным и удаленным пробросом портов SSH?
  • Какие шаги надо предпринять, чтоб добавить пользователя в систему не используя утилиты useradd/adduser?
  • Что такое MAJOR и MINOR нумерация спец. файлов?
  • Опишите команду mknod и когда она используется?
  • Опишите сценарий, когда вы можете получить ошибку «filesystem is full», но ‘df’ показывает наличие свободного места.
  • Опишите сценарий, когда вы удаляете файл,но ‘df’ не показывает, что место освободилось.
  • Опишите как работает ‘ps’.
  • Что случиться, если процесс-потомок умрет и не будет процесса-родителя, ожидающего его и что в этом плохого?
  • Объясните кратко каждое из состояний процесса.
  • Как узнать какой процесс слушает указанный порт?
  • Что такое зомби-процесс и какова его причина возникновения?
  • Вы запускаете bash скрипт и хотите видеть его вывод на экране и одновременно сохранить этот вывод в файл. Как это сделать?
  • Объясните, что делает echo «1» > /proc/sys/net/ipv4/ip_forward.
  • Кратко объясните, какие шаги надо предпринять, чтоб создать и установить сертификат для сайта https://foo.example.com.
  • Можно ли создать несколько HTTPS виртуальных хостов, используя один IP?
  • Что такое wildcard сертификат?
  • Какие типы файловых систем в Linux вам известны?
  • В чем разница между процессом и потоком? И родительским и потомком процессами после системного вызова fork?
  • В чем разница между exec и fork?
  • Для чего используется nohup ?
  • В чем разница между этими двумя командами?
  • myvar=hello
  • export myvar=hello
  • Как много NTP севреров настроено в вашем локальном ntp.conf?
  • Что означает колонка ‘reach’ в выводе ntpq-p ?
  • Вам необходимо обновить ядро на 100-1000 серверах, как вы будете это делать?
  • Как можно получить Host, Channel, IS, LUN для SCSI диска?
  • Как можно ограничить использование памяти для процесса?
  • Что такое быстрый поиск и замена в bash (^x^y)?
  • Какие вы знаете альтернативные оболочки? Какую вы используете?
  • Что такое tarpipe (или, как вы будете копировать все, включая жесткие ссылки и специальные файлы, с одного сервера на другой)?
  • Как можно проверить, что пакет httpd уже был установлен?
  • Как посмотреть содержимое установочного пакета?
  • Как вы определите какой пакет лучше: openssh-server-5.3p1-118.1.el6_8.x86_64 или openssh-server-6.6p1-1.el6.x86_64?
  • Как вы можете объяснить мне разницу между хранилищем, основанным на блоках и объектах?
  • Что такое туннель и как вы можете обойти http прокси?
  • В чем разница между IDS и IPS?
  • Какие горячие клавиши вы используете регулярно?
  • Что такое Linux Standard Base?
  • Что такое атомарная операция?
  • Вы только что настроили http сервер, который не запустился после рестарта. Что вы будете делать?
  • Какие ключи содержатся в

/.ssh/authorized_keys и для чего нужен этот файл?

  • Я добавил свой публичный ключ в authorized_keys, но до сих пор получаю запрос пароля. Что может быть не так?
  • Вы когда-нибудь собирали RPM, DEB или solaris пакеты?
  • Что сделает :()< :|:& >;: с вашей системой?
  • Как можно перехватить Linux сигнал из скрипта?
  • Можно ли перехватить SIGKILL?
  • Что происходит, когда ядро Linux запускает OOM killer и как он выбирает какой процесс необходимо убить в первую очередь?
  • Опишите процесс загрузки Linux с максимально возможным количеством деталей, начиная с момента включения компьютера и заканчивая получением приглашения командной строки.
  • Что такое закрытие в chroot?
  • При попытке отмонтировать каталог получаем ошибку занятости, как найти какой PID держит каталог?
  • Что такое LD_PRELOAD и когда он используется?
  • Вы запустили бинарник и ничего не произошло. Как вы будете искать проблему?
  • Что такое cgroups? Можете ли вы указать сценарий, когда это может быть использовано?
  • Как можно удалить файл, имя которого содержит непечатные символы?
  • Как можно увеличить/уменьшить приоритет процесса в Linux?
  • Что такое run-levels в Linux?
    • Запущенный процесс получает EAGAIN: Resource temporarily unavailable при чтении сокета. Как можно закрыть этот плохой сокет/файловый дескриптор без убивания процесса?
    • Что такое localhost и почему ping localhost может не работать?
    • В чем сходство между «ping» и «traceroute»? Как traceroute находит промежуточные хосты?
    • Какая команда можно использовать для поиска всех открытых портов и/или соединений с сокетами на машине?
    • Валидный ли IP адрес 300.168.0.123?
    • Какие IP диапазоны/подсети являются частными или не маршрутизируемыми (RFC 1918)?
    • Что такое VLAN?
    • Что такое ARP и для чего используется?
    • В чем разница между TCP и UDP?
    • Какова цель шлюза по умолчанию?
    • Какая команда используется для просмотра таблицы маршрутизации в Linux?
    • TCP-соединение в сети может быть однозначно определено четырьмя вещами. Что это за вещи?
    • Когда клиент использует бразер для подключения к веб-серверу, какие порты источника и назначения будут у этого соединения?
    • Как можно добавить IPv6 адрес для конкретного интерфейса?
    • Вы добавили IPv4 и IPv6 адреса на eth0 интерфейс. Ping на v4 адрес работает, но ping на v6 адрес дает ответ sendmsg: operation not permitted . Что может быть не так?
    • Что такое SNAT и когда он должен быть использован?
    • Объясните, как можно войти по ssh на Linux сервер, который сбрасывает (DROP) все новые входящие пакеты, используя SSH туннель.
    • Как вы будете противодействовать DDoS атаке?
    • Как можно посмотреть содержимое ip пакета?
    • Что такое IPoAC (RFC 1149)?
    • Как создать пользователя?
    • Как предоставить права пользователю?
    • В чем разница между ‘left’ и ‘right’ join?
    • Объясните кратко разницу между InnoDB и MyISAM.
    • Зачем надо запускать «mysql_secure_installation» после установки MySQL?
    • Как проверить какие задачи запущены?
    • Как вы делаете бекап MySQL?
    • Как вы можете описать ваш workflow при создании скрипта?
    • Что такое GIT?
    • Что такое динамически/статически слинкованные файлы?
    • Что делает «./configure && make && make install»?
    • Для чего используется puppet/chef/ansible?
    • Для чего используется Nagios/Zenoss/NewRelic?
    • Для чего используется Jenkins/TeamCity/GoCI?
    • В чем разница между контейнеризацией и виртуализацией?
    • Как создать нового postgres пользователя?
    • Что такое виртуальный IP адрес? Что такое кластер?
    • Как вывести все строки печатных символов, присутствующих в файле?
    • Как найти зависимости для библиотеки?
    • Что такое Automake и Autoconf?
    • ./configure вывела ошибку, что libfoobar не найдена в система, как вы будете исправлять это? Что может быть не так?
    • Какие преимущества/недостатки у скриптов против компилируемых программ?
    • Какая связь между непрерывной доставкой (continuous delivery) и DevOps?
    • Каковы важные аспекты системы непрерывной интеграции и развертывания?
    • Как бы вы включили совместное использование сетевых файлов в AWS, которые позволили бы экземплярам EC2 в нескольких зонах доступности обмениваться данными?
    • Небрежный сисадмин запустил команду chmod 444 /bin/chmod — как ву будете исправлять проблему?
    • Я потерял пароль пользователя root. Что мне делать?
    • Я перезагрузил удаленный сервер, но спустя 10 минут все еще не могу зайти по SSH. Что может быть не так?
    • Если бы вы попали на пустынный остров с 5 утилитами коммандной строки, то какие утилиты это были бы?
    • Вы сталкиваетесь с случайным компьютером и, похоже, это консоль к мирозданию. Что первое вы наберете?
    • Расскажите о креативном использовании ssh в вашей практике?
    • Вы случайно удалили запущенный скрипт, как вы будете его восстанавливать?
    • Что случится 19 января 2038 года?
    • Как перезагрузить сервер когда команда reboot не доступна?
    • Распакуйте test.tar.gz без использования man и google.
    • Удалите все «*.pyc» файлы рекурсивно из testdir.
    • Найдите все «my konfu is the best» во всех *.py файлах.
    • Замените все вхождения «my konfu is the best» на «I’m a linux jedi master» во всех *.txt файлах.
    • Проверьте доступность 443 порта на машине с IP X.X.X.X.
    • Получите страницу http://myinternal.webserver.local/test.html при помощи telnet.
    • Как отправить email без почтового клиента, только с помощью командной строки?
    • Напишите метод get_prim в python/perl/bash/pseudo.
    • Найдите все файлы, доступ к которым был осуществлен за последние 30 дней.
    • Объясните следующую команду (date ; ps -ef | awk ‘‘ | sort | uniq | wc -l ) >> Activity.log
    • Напишите скрипт, показывающий разницу двух каталогов.
    • Из лог файла, содержащего : [MESSAGE] : [ERROR_NO] — Human readable text выведите сумму/количество указанной ошибки, которая повторяется каждый час, или указанный час.

    Некоторые вопросы ‘заимствованы’ из других замечательных ссылок, например:

    Источник

    Системный администратор Linux. Вопросы

    Собеседования подходят к завершению, кандидаты согласованы, офферы разосланы. А это значит, что настало время выполнить обещания и выложить вопросы к кандидатам.

    В комментариях к предыдущим постам было высказано много мнений по поводу тематики и самих вопросов. Была и критика, и занудство, и здравые мысли. От себя могу сказать, что это не универсальный список вопросов для собеседования. Это то, с чем у нас приходится сталкиваться чаще всего, что надо понимать и без чего рост компетенций будет заметно усложнён. Часть вопросов просто для понимания кругозора кандидата.

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

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

    Готовы? Ну тогда поехали!

    В: Как посмотреть версию ядра?
    О: uname -a
    В+: А если только версию?
    О+: uname -r

    В: Как узнать какие модули ядра загружены?
    О: lsmod
    В+: Как загрузить и выгрузить модуль?
    О+: Загрузить командой modprobe, выгрузить ей же, но с ключом —remove, если модуль не используется.

    В: Есть сервер с двумя интерфейсами. Один интерфейс смотрит в интернет, другой в локалку. На обоих адреса прописаны статикой. Как пользователей из локалки выпустить в интернет через этот сервер?
    О: Маршрут по умолчанию должен быть назначен на интерфейс с интернетом, нужно поднять NAT через iptables и SNAT/DNAT или MASQUERADE, надо включить forward пакетов.
    В+: Как именно это сделать?
    О+: Для примера шлюз будет на RHEL-based дистрибутиве. В других дистрибутивах есть созвучные или аналогичные опции. В настройках интерфейса с локалкой надо прописать defroute=no, на интерфейсе с интернетом defroute=yes. Либо можно указать маршрут в файле route-название_интерфейса, который располагается рядом с файлом настроек интерфейса. Настройка NAT будет зависеть от того, фиксирован ли список клиентов в локалке или нет. Если фиксирован — настройка через SNAT, если не фиксирован — MASQUERADE. Так же, если к клиенту будут обращения из внешней сети, придётся использовать DNAT. Включить forward пакетов можно временно командой echo 1 > /proc/sys/net/ipv4/ip_forward или постоянно, прописав net.ipv4.ip_forward = 1 в файл /etc/sysctl.conf и загрузить их из файла командой sysctl -p.
    О++: Можно ещё поднять прокси и выпустить через него. Например squid. При этом либо явно указав этот прокси у клиентов, либо прозрачно, через iptables и POSTROUTING.

    [Дословный синтаксис команд не нужен. Главное, что кандидат понимает что именно и как он будет делать. Если кандидат расскажет ещё что такое этот ip_forward — это будет дополнительным плюсом.]

    В: Есть сервер с двумя интерфейсами, к каждому из которых подключён отдельный интернет провайдер. Например первый 100 мегабит, второй 50. Можно ли как-то получить суммарный внешний канал в 150 мегабит?
    О: Штатно — нельзя. Но можно поставить пакет iproute2, который позволяет сделать два маршрута по умолчанию, каждый из которых будет иметь свой вес. Например вес первого интерфейса сделать вес 2, а второго — 1. Тогда трафик будет пытаться направляться в соотношении 2 к 1 относительно интерфейсов. В идеальных условиях это даст суммарные 150 мегабит. В реальных — будет зависимость и «тяжелых» сессий, которые будут привязываться к одному конкретному интерфейсу.

    В: Как посмотреть какой DNS использует система? У нас настроен DHCP и «в лоб» в настройках на клиенте ничего нет. Файл /etc/resolv.conf много где считается устаревшим и там может быть пусто.
    О: Попробовать отрезольвить любой адрес. Например командами nslookup, host или dig. Они показывают какой DNS сервер был использован.
    В+: А если у нас какая нибудь Ubuntu, которая из коробки за собой тянет dnsmasq? В таком случае эти команды будут говорить, что DNS сервером является 127.0.1.1 или 127.0.0.53. Как быть?
    О+: Если есть dnsmasq, значит у него есть конфиги и логи, в которых можно посмотреть что он использует. В крайнем случае можно использовать tcpdump и посмотреть какие есть исходящие подключения на 53 порт.

    В: Как посмотреть таблицу маршрутизации на любой системе?
    О: Это можно сделать командами route -n или ip r
    В+: А на любой системе одной и той же командой?
    О+: Команда netstat -rn работает везде, на Linux, Windows, MacOS, Solaris. Даже на Android. В некоторых системах это единственный вариант посмотреть маршруты.

    В: Есть LVM. На одной VG есть 2 LV. Один смонтирован в корень системы, другой в /home. При создании разделов ошиблись и создали корень слишком маленький, а home слишком большой. Можно ли как-то перекинуть место из одного раздела в другой? Оба раздела содержат данные, которые нельзя удалять. В разделе home есть достаточно свободного места. Систему нельзя перезагружать.
    О: Уменьшить можно, если файловая система позволяет уменьшать свой размер. Например ext4 позволяет это сделать, а xfs — нет. Увеличивать разделы можно «на горячую». Для уменьшения надо размонтировать /home, уменьшить файловую систему, уменьшить LV с этим разделом, смонтировать /home, увеличить LV раздела с корнем, увеличить файловую систему. Командой lvextend с ключом -r последние два действия можно совместить.
    В+: А есть там xfs?
    О+: Тогда придётся использовать временный диск. Скопировать на него данные из /home, пересоздать раздел меньшего размера, скопировать данные обратно. Можно командами pvs или vgs посмотреть свободное место на LVM. Возможно не всё пространство было размечено и его можно будет использовать вместо временного диска.

    В: Как определить тип файловой системы, в которую отформатирован LV раздел в LVM? Команда fdisk -l показывает, что код раздела 83 или 8E, т.е. раздел Linux или LVM раздел.
    О: Если раздел смонтирован можно командами df -T, mount или findmnt
    В+: А если не смонтирован?
    О+: Команда lsblk с ключом -f показывает тип файловой системы и метки, например для oracleasm дисков.

    В: Как получить сводку о всём железе?
    О: Командами группы ls. Например lspci, lsusb и т.д. Либо cat /proc/cpuinfo, cat /proc/meminfo и т.д.
    В+: А более развёрнуто? Например с серийными номерами памяти и количеством плашек памяти?
    О+: Можно через smbios командой dmidecode. Либо через ipmitool подключиться к менеджменту, если он есть, и через его shell достать данные.

    В: Как обновить все пакеты, кроме одного? Например кроме ядра.
    О: В RHEL-based командой yum update —exclude kernel*. В других дистрибутивах должен быть похожий ключ, который можно посмотреть в man’е к пакетному менеджеру.
    В+: А если постоянно исключить из обновления?
    О+: Можно использовать yum versionlock kernel*. В других дистрибутивах так же можно поискать в man’е по словам lock, hold или freeze.

    Для начала, думаю, достаточно. Продолжение будет в следующих постах. Постараюсь сильно с ними не затягивать.

    Источник

    KAZARIN OnLine

    Blog about IT, Me, education, etc…

    Вопросы для собеседования Системного администратора или DevOps инженера Linux. Часть 2. Simple Linux Questions

    Всем привет! в прошлой статье мы начали разбор статьи с GitHub — Linux System Administrator/DevOps Interview Questions.
    Сегодня будет пачка вопрос из раздела «Простые» — экзамен на звание junior Linux administrator.

    Простые вопросы / Simple Linux Questions

    1. Какое имя и UID у администратора системы? (What is the name and the UID of the administrator user?)

    В Linux системе, как в большинстве unix-like/base систем, администратором (а точнее суперпользователем, тк администратором может идейно выступать любой пользователь, сопровождающий систему и способный получить права суперпользователя) является пользователь с учетной записью root. Название является исторически сложившимся и в принципе может быть заменено на любое другой. Права суперпользователя зависят не от названия учетной записи, а от ее идентификатора — UID (User ID). Для суперпользователя uid=0 и именно это так отличает его учетную запись от всех прочих.

    2. Как вывести список всех, даже скрытых файлов, находящихся в директории (How to list all files, including hidden ones, in a directory?)

    За вывод содержимого текущего (если без аргументов, содержащих путь к какой-то определенной директории) отвечает команда ls — сокращение от слова list. Параметр -a (сокращение от all) позволяет посмотреть все файлы, даже скрытые ( их имя начинается с точки), а если комбинировать его с параметром -l (long) — то мы увидим подробную информацию. Есть еще одна команда — tree, которая не входит в стандартный комплект утилит, которая также может показывать содержимое каталогов ( однако в более удобном-наглядном древовидном представлении) и так же может показывать скрытые файлы, дополнительную информацию и тд.

    3. Какая linux/unix команда позволяет удалить директорию и все ее содержимое? (What is the Unix/Linux command to remove a directory and its contents?)

    Существует команда rmdir, созданная специально для удаления директорий, однако она не удалит их, если директории не пусты. Команда rm может помочь нам в этом — если применить флаг -r (recursive) она рекурсивно удаляет все содержимое каталога и потом его тоже. Флаг -f позволит сделать это игнорируя различные предупреждения, однако будьте осторожны с этой комбинацией rm -rf — так как она может запросто снести вам большую часть системы). В обычной ситуации я бы рекомендовал использовать комбинацию -ri — тогд на удаление каждого объекта будет задаваться вопрос- а точно ли вы этого хотите.

    4. Какая команда покажет вам объем свободной или используемой памяти? Существует ли в linux свободная память? (Which command will show you free/used memory? Does free memory exist on Linux?)

    Еще одна команда, входящая в стандартный набор утилит linux — free. Как раз для этого и предназначена. Ряд модификаторов типа -h, -m, -b меняет формат вывода (байты, мегабайты и тп). Команда выводит информацию как по оперативной памяти, так и по свопу (аналог “подкачки” в windows). Однако столбцов там больше чем 2 ( свободно/занято), а точнее их 6:

    • total – общее количество установленной в системе памяти — ОЗУ и под своп;
    • used – реально использующая в данный момент и зарезервированная системой память; Вычисляется как ( total – free – buffers – cache)
    • free – свободная память (вообще никем не используется);
    • shared – Shared memory или Разделяемая память, обычно используется tmpfs.
    • buffers – буферы в памяти – страницы памяти, зарезервированные системой для выделения их процессам, когда они потребуют этого, также известна как heap-memory;
    • cached – файлы, которые недавно были использованы системой/процессами и хранящиеся в памяти на случай если вскоре они снова потребуются.
    • available — оценка того, сколько памяти может быть доступно для запуска новых приложений без свопинга. То есть это сколько памяти система также может освободить + использовать свободное пространство.

    5. Как найти строку “my konfi is the best” рекурсивно в файлах каталога? (How to search for the string «my konfi is the best» in files of a directory recursively?)

    Самым простым и известным способом поиска является использование утилиты grep, с ключами -r (рекурсивынй поиск) — то есть поиск по каталогам и подкаталогам и ключом -i (искать вне зависимости от регистра). Однако grep не является лучшим вариантом поиска, так как является утилитой общего назначения. Вторым вариантом является вызов связки find + grep — первой из них вы можете задать что искать надо только по файлам ( игнорируя каталоги, линки, сокеты и прочие объекты, в которых искомой строки быть точно не может) а так же указать по каким файлам искать (задать маску расширения например). Тем самым ускорив поиск. И наконец третий вариант — использовать специализированную утилиту ack или ack-grep (одно и то же — просто названия разные). Она создана для поиска среди файлов проекта с исходным кодом, поэтому понимает некоторые казалось бы очевидные вещи (не ищи среди резервных копий файлов, среди файлов метаданных git и тп), тем самым еще сильней ускоря поиск.

    6. Как удаленно подключиться к серверу или что такое SSH? (How to connect to a remote server or what is SSH?)

    Удаленно к серверу можно подключиться довольно большим числом способов, в зависимости от того, что есть под рукой ( то есть в зависимости от вашего окружения). Вот только некоторые из известных мне способов:

    • IP-KVM —
    • VNC via IPMI / iLo / iDRAC / etc…
    • VNC
    • VNC via Web
    • Web интерфейс
    • Telnet
    • SSH
    • RDP

    Однако, в обычной ситуации когда речь заходит про удаленное подключение к Linux серверу, речь обычно идет про SSH (а если быть точнее — openssh), который де-факто является стандартом удаленного управления Linux серверами. SSH или secure socket shell — протокол, обеспечивающий защищенный при помощи криптографических средств способ подключения к удаленному командному интерпретатору. Защита представляет собой обеспечение безопасности в двух аспектах:

    • Обеспечение конфиденциальности передаваемых данных — вводимых команд и получаемых ответов за счет шифрования всего трафика, передаваемого между клиентом и сервером.
    • Защита от атак типа MiTM — за счет сохранения отпечатка ключа сервера на стороне клиента при первом подключении с последующей сверкой его при каждом следующем подключении

    7. Как посмотреть все переменные окружения и как вы можете их использовать? (How to get all environment variables and how can you use them?)

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

    Как посмотреть — используя например команды “printenv” или “env”. Задать — с помощью команды “export”. Использовать можно для изменения поведения системы и запускаемых приложений. Так же в некоторых ситуациях для конфигурации программ и сервисов. В моей практике была система, состоящая из нескольких сервисов, написанных на node.js. Так вот ее конфигурация задавалась через переменные окружения, а вместо конфигурационного файла использовался специальный bashrc профайл с значением переменных окружения для пользователя, из под которого запускался процесс.

    8. Я получаю сообщение «command not found» когда я ввожу “ifconfig -a”, что я делаю не так? (I get «command not found» when I run ifconfig -a. What can be wrong?)

    Мне известны две причина:

    • Пакет, содержащий утилиту ifconfig не установлен (обычно она входит в пакет net-tools — установите его).
    • Каталог “/sbin”, в котором содержится эта утилита, не добавлен в пути поиска вашей переменной окружения “$PATH” — в таком случае попробуйте ввести полный путь для этой утилиты “/sbin/ifconfig -a”. Такое например случается когда вы работаете не под учетной записью с правами суперпользователя.

    9. Что происходит когда я ввожу “TAB-TAB”? (What happens if I type TAB-TAB?)

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

    10. Какая команда покажет доступное пространство в Unix/Linux системе? (What command will show the available disk space on the Unix/Linux system?)

    df или disk free — команда, отображающее свободное место на той или иной файловой. У команды существуют различные модификаторы ее вывода- например отображение размера в человеко-читаемом формате (-h):

    Источник

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

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

    1. В чем основное различие между Linux и Unix?

    Linux — это операционная система с открытым исходным кодом, а Unix — это проприетарная операционная система. Таким образом, Linux доступен для бесплатной загрузки, но Unix — это платная ОС (большинство версий).

    Подробнее о различиях читайте здесь: Разница между Unix и Linux

    2. Как найти активные соединения через терминал?

    Используя команду netstat , можно найти активные интернет-соединения с текущим компьютером. Это сетевой служебный инструмент из командной строки.

    3. Каковы минимальные требования к разделам в Linux и зарегистрируйте их.

    В каждом дистрибутиве Linux должно быть минимум два раздела, а именно:

    • Раздел подкачки
    • Корневая директория

    4. Для чего используется команда SU в Linux?

    Команда SU в Linux используется для переключения с одной учетной записи пользователя на другую. Вам просто нужно ввести sudo su и ввести пароль, чтобы переключиться на другую учетную запись пользователя в вашей системе Linux.

    5. Подайте команду на выключение системы.

    Команда для выключения ОС — shutdown -h time . Вместо времени вы можете добавить число, представляющее секунды, по истечении которых вам необходимо выключить систему.

    6. Что такое fork ()?

    fork () — это прежде всего системный вызов. Требуется создать новый процесс из уже активного процесса в системной памяти. Поэтому первичный процесс называется родительским процессом, а вновь созданный процесс — дочерним процессом.

    7. Сколько режимов уровней выполнения доступно в операционной системе Linux?

    Всего в операционной системе Linux доступно семь режимов уровня выполнения.

    8. Что вы имеете в виду под системным программным обеспечением с открытым исходным кодом?

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

    9. Как вы можете составить список всех запущенных программ в вашей системе Linux?

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

    10. В чем разница между BASH и DOS?

    BASH — это оболочка Unix и командный язык. DOS — это сокращенная форма Disk Operating System. Он используется в системах Microsoft для интерфейса командной строки. Команды DOS не чувствительны к регистру, тогда как команды BASH чувствительны к регистру.

    11. Как вы можете просмотреть текущий объем подкачки и оперативной памяти в вашей системе Linux?

    Есть команда, которую можно использовать в терминале в операционной системе Linux. Команда БЕСПЛАТНА. Это позволяет вам просматривать текущую активную оперативную память и память подкачки в системе.

    12. Допустимо ли редактировать исходный код Linux Ubuntu с юридической точки зрения?

    Определенно да. Linux Ubuntu в настоящее время имеет большое сообщество, которое регулярно редактирует исходный код для внесения изменений и отправляет его команде Linux. Эти изменения проверяются основной командой и внедряются в следующей версии. Таким образом, можно редактировать исходный код, поскольку он подпадает под лицензию GNU GPL.

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

    Чтобы просмотреть существующие файлы в текущем каталоге, вы можете использовать команду LS . Это сокращенная форма для СПИСОК.

    14. Что такое ядро ​​в Linux?

    Ядро в Linux — неотъемлемая часть ОС. Это ядро ​​ОС Linux. Ядро предоставляет базовые услуги и взаимодействует с пользовательскими командами. Он получает ваши команды, а затем получает результаты из ОС и снова отправляет их пользователю.

    15. Перечислите типы ядер.

    Ниже перечислены различные типы ядер:

    • Монолитное ядро
    • Микро ядро
    • Гибридное ядро

    16. Какая программа используется для безопасного входа в операционную систему Linux?

    Secure Shell используется для удаленного входа в ОС Linux. Он также известен как SSH. SSH — это зашифрованный или цитографический сетевой протокол. SSH — хорошая замена Telnet, который ранее использовался в ОС Linux для входа в систему.

    17. Назовите раздел, в котором хранятся файлы конфигурации системы в системе Linux.

    Раздел, в котором хранятся файлы конфигурации системы в ОС Linux, — это / etc.

    18. Кто является создателем операционной системы Linux?

    Линус Торвальдс создал операционную систему Linux.

    19. Подключите дистрибутивы Linux.

    Различные типы дистрибутивов Linux перечислены ниже:

    • Linux Mint
    • Ubuntu
    • Mandriva
    • Арка
    • Slackware
    • Debian
    • Fedora

    20. Где хранится пароль пользователя в операционной системе Linux?

    Пароли пользователей хранятся в каталоге / etc / passwd.

    21. В ОС Linux этот демон управляет процессом буферизации принтеров.

    Демон построчной печати, также известный как LPD, управляет процессом буферизации принтера.

    22. Включите файловые системы, поддерживаемые в ОС Linux.

    Файловые системы, поддерживаемые Linux, следующие:

    • XFS
    • EXT3
    • NFS
    • RAMFS
    • EXT4
    • АВТО
    • NTFS

    23. Что такое лицензия GNU GPL?

    Стандартная общественная лицензия GNU — это лицензия свободных программ. Эта Лицензия позволяет Пользователям делиться, копировать и манипулировать кодом программного обеспечения. Поэтому программный код доступен бесплатно.

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

    Команда, используемая для удаления файлов в Linux, — это rm .

    25. Назовите команду, используемую для удаления каталога.

    Для удаления каталога используется команда rmdir .

    26. Какого размера должна быть память подкачки в Linux?

    Обычно размер памяти подкачки в системах Linux должен быть в два раза больше размера ОЗУ.

    27. Объясните SE-Linux.

    SE — Linux — это сокращенная форма Security Enhanced — Linux. Он был разработан для предотвращения незаконных демонов и неправильной конфигурации сервера. Он обеспечивает реализацию контроля доступа. Он реализует права доступа к демонам, программам для файлов, к которым они могут получить доступ. Повышенная безопасность — Linux обеспечивает формирование политики безопасности.

    28. Кто является изобретателем операционной системы Unix?

    Операционная система Unix создана Деннисом Ричи и Кеном Томпсоном в Bell Labs в 1969 году.

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

    Редактором по умолчанию для текстовых файлов в операционной системе Linux является VI Editor. Его можно использовать для редактирования любого текста ASCII.

    30. Назовите аргумент для извлечения файлов из архивов с помощью Linux Terminal.

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

    31. Что такое диспетчер пакетов?

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

    32. Как называется загрузчик в операционной системе Linux Ubuntu?

    Загрузчик в ОС Linux Ubuntu называется загрузчиком GRUB.

    33. Как перейти из одного каталога в другой в операционной системе Linux?

    Используя команду CD в Терминале Linux, пользователь может переходить из одного каталога в другой. CD — это сокращенная форма Change Directory.

    34. Что такое Sudo Command?

    Команда Sudo используется для предоставления пользователям прав доступа наивысшего уровня. Если вы используете команду в терминале Linux, вы можете получить вывод «Доступ запрещен». Если вы хотите, чтобы терминал обрабатывал команду, вы можете использовать префикс SUDO, чтобы получить права администратора на то же самое.

    35. Что такое Shell?

    Оболочка — это в основном интерфейс между пользовательскими командами и операционной системой. Все, что вводит пользователь, интерпретируется оболочкой, а затем отправляется ядру операционной системы для получения результатов. Он преобразует их в системные вызовы.

    36. Включите загрузочные файлы в операционную систему Linux.

    В ОС Linux при загрузке загружаются следующие файлы:

    37. Как узнать рабочий уровень операционной системы Linux?

    Используя команду runlevel из Терминала Linux, вы можете найти уровень выполнения вашей системы Linux.

    38. Подайте команду для установки любого программного обеспечения в ОС Linux Ubuntu.

    Команда для установки любого программного обеспечения в ОС Linux выглядит следующим образом:

    sudo apt install имя-приложения

    39. Как можно завершить выполняющийся в данный момент процесс в терминале Ubuntu?

    Комбинация клавиш Ctrl + Z позволяет завершить процесс, выполняющийся в данный момент в Linux Ubuntu Terminal.

    40. Какую команду можно использовать для мониторинга портов Linux?

    Команда Nmap localhost используется для мониторинга портов в операционных системах Linux.

    41. Включите режимы уровня выполнения в Linux.

    Режимы уровня выполнения в Linux следующие:

    • Остановка
    • перезагружать
    • Однопользовательский режим
    • Неопределенный
    • Многопользовательский режим
    • X11
    • Многопользовательский режим с сетью

    42. Что является ядром ОС Linux?

    Ядро Linux — это ядро ​​операционной системы Linux.

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

    Источник

    Читайте также:  Цена это то что товар действительно стоит тест