10 основных вопросов и ответов на собеседовании по Linux — часть 4

Продолжаем серию вопросов для собеседования по Linux. Предыдущие части вопросов 1, 2 и 3.
В этой части 4 мы предлагаем вам ещё 10 основных вопросов о Linux, связанных с командами оболочки, сочетаниями клавиш и практическим применением. Как всегда, наша цель — помочь вам узнать что-то новое, не перегружая вас и ориентируясь на начинающих пользователей.
Эти вопросы основаны на реальных задачах и сценариях, с которыми я сталкивался в своей повседневной работе в качестве системного администратора Linux. Эта статья будет полезно, если вы готовитесь к собеседованию, хотите научиться лучше использовать командную строку или просто хотите узнать что-то новое о Linux.
1. Как определить макрос или привязать клавишу к команде в Bash?
Чтобы определить макрос или привязать клавишу к команде в Bash, можно использовать команду bind
, которая является встроенной функцией Bash и позволяет назначать пользовательские команды определённым клавишам, по сути создавая сочетания клавиш.
Сначала вам нужно выяснить, какую escape-последовательность отправляет ваш терминал при нажатии клавиши, которую вы хотите привязать. Самый простой способ сделать это — нажать Ctrl + v
, а затем клавишу (например, F12
), после чего на экране появится что-то вроде ^[[24~
, что является escape-кодом для этой клавиши.
Получив escape-последовательность, вы можете привязать клавишу к команде, используя следующий синтаксис:
bind '"\e[24~":"date"'
В этом примере нажатие F12
приведет к запуску команды date. Просто имейте в виду, что escape-последовательности могут отличаться в зависимости от вашего эмулятора терминала, поэтому последовательность для F12
в одной системе может отличаться в другой.
2. Как вывести список всех доступных команд?
Если вы новичок в Linux или вам просто интересно узнать, какие команды доступны в вашей среде, для этого есть удобная встроенная команда Bash.
Просто введите compgen -c
в терминале, и вы увидите полный список всех исполняемых команд, распознаваемых вашей оболочкой, включая встроенные команды, псевдонимы и программы в системной переменной PATH.
Это отличный способ изучить и открыть для себя новые инструменты, о существовании которых вы, возможно, даже не подозревали.
compgen -c
3. Как вывести на печать стек каталогов?
Чтобы просмотреть текущий стек каталогов в Linux, можно использовать команду dirs
, которая особенно полезна при навигации по каталогам с помощью pushd и popd, так как она показывает список каталогов, хранящихся в стеке.
При запуске dirs
выводятся каталоги в том порядке, в котором они были добавлены, при этом текущий каталог отображается первым. Например, если вы использовали pushd
для переключения между каталогами, выполните следующую команду:
dirs
может вернуть что-то вроде:
/usr/share/X11
Это означает, что /usr/share/X11
в данный момент находится в верхней части стека каталогов.
4. Как удалить все фоновые задания без перезагрузки?
Если у вас есть несколько фоновых или приостановленных заданий и вы хотите удалить их, не перезагружая систему, вы можете использовать команду disown -r
в Bash, которая указывает оболочке удалить все задания (выполняющиеся или остановленные) из таблицы заданий.
Проще говоря, он отделяет эти задания от текущего сеанса оболочки, так что оболочка больше не отслеживает их и не реагирует на них. Это удобный способ навести порядок без фактического завершения процессов или перезапуска системы.
disown -r
5. Что делает команда hash в Bash?
Команда hash
в Bash используется для управления внутренней хэш-таблицей оболочки, в которой хранятся полные пути к выполненным командам. При запуске команды Bash ищет её в этой таблице, а не в каталогах, что ускоряет выполнение команд.
Просто введя hash
в терминале, вы можете увидеть, сколько раз была использована каждая команда и какой путь для этого использует Bash. Например, если вы пару раз ввели ls и su
, вывод может выглядеть следующим образом:
hits command 2 /bin/ls 2 /bin/su
Это особенно полезно для проверки того, какие команды используются чаще всего, и подтверждения того, что Bash находит их в ожидаемых местах.
6. Какая команда Bash используется для целочисленной арифметики?
В Bash команда let
обычно используется для выполнения арифметических операций над целыми числами. Она вычисляет арифметические выражения и особенно полезна в скриптах, где требуется простая математика.
Например, предположим, что вы хотите сложить два числа:
let a=5 let b=10 let c=a+b echo $c
На выходе будет 15
, так как значения a
и b
складываются, а результат сохраняется в c
. Вы также можете использовать let
с другими операторами, такими как -
, *
, /
, %
и т. д.
7. Как просматривать большой текстовый файл по одной странице за раз?
Если вы работаете с большим текстовым файлом и не хотите, чтобы весь файл сразу отобразился на экране, вам нужно как-то прокручивать его страницу за страницей. Обычно для этого используют команду more
в сочетании с cat, например так:
cat bigfile.txt | more
Это работает отлично: текст отображается по одному экрану за раз, и вы можете перемещаться вперёд с помощью нажатия клавиши. Однако более удобный и гибкий вариант — использовать команду less напрямую:
less bigfile.txt
Команда less
позволяет прокручивать файл как вперёд, так и назад, выполнять поиск внутри файла и перемещаться с помощью клавиш со стрелками или клавиш «вверх» и «вниз». Она широко используется для чтения больших файлов в терминале.
8. Кому принадлежит словарь данных в Linux (или в обычной базе данных)?
В MySQL словарь данных управляется самим сервером MySQL, а не конкретным пользователем, как в Oracle. Однако пользователь root
(административный пользователь по умолчанию) имеет полный доступ ко всем базам данных, включая системные схемы, содержащие данные, похожие на словарь.
MySQL хранит метаданные и системную информацию во внутренних базах данных, таких как mysql
, information_schema
, и performance_schema
. Эти схемы предоставляют информацию о пользователях, разрешениях, конфигурации системы и определениях таблиц, но они контролируются и обслуживаются сервером, а не отдельным пользователем базы данных.
9. Как узнать, что делает команда в Linux?
Допустим, при изучении каталога zcat
вы наткнулись на такую команду, как /bin
, и понятия не имеете, что она делает. Вместо того чтобы запускать её вслепую, можно воспользоваться более безопасным и разумным способом узнать о ней больше.
Просто используйте команду whatis
, которая выводит краткое однострочное описание, взятое непосредственно со страницы руководства по команде.
Например, вы можете запустить:
whatis zcat
И вы получите такой результат:
zcat (1) - compress or expand files
Это краткое описание очень полезно, когда вам нужно быстро разобраться в команде, не углубляясь в полную справочную страницу.
10. Как проверить дисковые квоты и количество файлов, используемых каждым пользователем?
Чтобы просмотреть сводную информацию об использовании диска и пользовательских файловых квотах, можно использовать следующую команду. Она просканирует все файловые системы, перечисленные в /etc/mtab
, в которых включены квоты, и отобразит количество файлов (индексных дескрипторов) и объём дискового пространства, используемого каждым пользователем, а также установленные для них лимиты
repquota -a command
Просто убедитесь, что в вашей системе правильно настроены и активны дисковые квоты. В противном случае команда не вернёт значимых результатов, что особенно полезно в многопользовательских средах, где управление ограничениями ресурсов имеет решающее значение.
Заключительные мысли
На этом пока всё! Эти вопросы могут показаться простыми, но они отражают реальные задачи и часто встречаются на собеседованиях. Сохраните их, попробуйте решить и поделитесь с другими изучающими Linux.
До новых встреч! Продолжайте изучать, экспериментировать и следите за обновлениями, чтобы узнать больше о Linux и свободном программном обеспечении!
Редактор: AndreyEx