Вопросы по администрированию linux

Вопросы для собеседования Системного администратора или 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 и именно это так отличает его учетную запись от всех прочих.

uid=1000(kirill) gid=1000(kirill) группы=1000(kirill),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),125(sambashare)

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 — тогд на удаление каждого объекта будет задаваться вопрос- а точно ли вы этого хотите.

Читайте также:  Увеличение дискового пространства linux

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 и тп), тем самым еще сильней ускоря поиск.

Читайте также:  Восстановление жестких дисков linux

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 тоже) — это переменные, задаваемые для каждого отдельного сеанса пользователя (как интерактивный — вход в режиме графического интерфейса, запуск командного интерпретатора так и не интерактивный- запуск процесса от имени пользователя), и несущие ряд настроек- пути поиска бинарных файлов утилит, локаль и язык окружения, основной редактор и прочее.

Читайте также:  Линукс минт grub customizer

Как посмотреть — используя например команды “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):

Источник

Оцените статью
Adblock
detector