Перейти к содержанию

Резюме

Резюме

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

  • оболочки входа (login shells);
  • неинтерактивные оболочки (non-login shells).

При запуске оболочки входа первым читается файл /etc/profile для начальной настройки среды оболочки. Затем оболочка выполняет поиск следующих файлов в домашнем каталоге пользователя в указанном порядке:

  • .bash_profile
  • .bash_login
  • .profile

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

Далее была рассмотрена функция истории команд оболочки bash. С её помощью можно нажимать клавишу со стрелкой вверх для прокрутки списка ранее введённых команд. Эти команды сохраняются в файле .bash_history в домашнем каталоге каждого пользователя.

Оболочка bash также предлагает автодополнение команд. Используя эту функцию, можно ввести часть команды и нажать клавишу Tab, чтобы оболочка автоматически завершила ввод.

Затем было рассказано о том, как получить справку при работе с командной оболочкой Linux. Сначала мы рассмотрели утилиту man для просмотра страниц руководства. Большинство команд и утилит в системе Linux имеют связанную man-страницу, содержащую сведения о назначении и способах использования соответствующей команды или утилиты. Все man-страницы вместе составляют справочное руководство. Руководство разбито на разделы в соответствии с функциональностью утилиты или команды. Файлы руководства хранятся в каталоге, указанном переменной MANPATH или директивой MANPATH в файле /etc/man_db.conf.

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

Кроме того, был описан поиск по man-страницам. Для поиска слова в пределах одной man-страницы нужно ввести / и вслед за ним искомую строку. Для поиска по всем man-страницам можно воспользоваться man -k или утилитой apropos.

После утилиты man мы обратились к утилите info. Она содержит более развёрнутую документацию, чем man. Для просмотра информации о команде или утилите следует ввести info с именем нужной утилиты. Были также рассмотрены сочетания клавиш для навигации внутри узлов info и между ними. Для поиска строки внутри узлов info нужно нажать Ctrl-S и ввести искомый шаблон.

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

  • echo
  • set
  • env

Чтобы задать значение переменной, достаточно ввести имя_переменной=значение. После присвоения переменной окружения нового значения следует выполнить команду export имя_переменной в приглашении командной строки, чтобы новое значение стало доступным другим оболочкам, включая субоболочки, запущенные текущей оболочкой.

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

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

Затем речь зашла о псевдонимах. Псевдоним (alias) — это сокращённое обозначение команд в системе Linux. При запуске оболочки большинство дистрибутивов автоматически определяет многие псевдонимы. Просмотреть их можно командой alias. Кроме того, можно определить собственные псевдонимы, введя alias имя_псевдонима="команды" в приглашении командной строки. Как и переменные, определения псевдонимов не сохраняются после завершения сеанса. Чтобы сделать их постоянными, нужно добавить соответствующие команды в один из файлов конфигурации bash.

В завершение был рассмотрен вопрос управления вводом и выводом команд оболочки. Большинство команд оболочки работают с тремя файловыми дескрипторами:

  • stdin (0)
  • stdout (1)
  • stderr (2)

Перенаправить вывод stdout и stderr в файл можно с помощью 1>имя_файла или 2>имя_файла, добавив соответствующую конструкцию к любой команде. Если указанный файл не существует, оболочка создаст его. Если файл существует, его содержимое будет перезаписано. Чтобы сохранить существующее содержимое файла, вместо > используется >>. Для передачи данных из файла на стандартный ввод команды применяется символ <.

Помимо перенаправления в файл, можно использовать конвейер для передачи stdout одной команды на stdin другой. Это делается вводом команда | команда в приглашении командной строки. В конвейере можно объединить произвольное количество команд.

Ускоренное повторение

  • Linux предлагает интерфейс командной строки и графический пользовательский интерфейс.
  • Интерфейс командной строки Linux создаётся оболочками.
  • Оболочка bash является оболочкой по умолчанию для большинства дистрибутивов.
  • Оболочки Linux не выполняют поиск в текущем каталоге при запуске файла из приглашения командной строки.
  • Оболочки, используемые для входа в систему, называются оболочками входа.
  • Оболочки, открываемые после входа пользователя в систему, являются неинтерактивными оболочками.
  • Файл .bashrc используется для настройки неинтерактивных оболочек.
  • Файл /etc/profile является первым файлом, читаемым при создании оболочки входа.
  • После чтения /etc/profile оболочка bash выполняет поиск одного из следующих файлов конфигурации в домашнем каталоге пользователя:
    • .bash_profile
    • .bash_login
    • .profile
  • Первый обнаруженный из этих файлов используется для настройки среды оболочки пользователя.
  • Оболочка bash сохраняет историю команд в файле .bash_history.
  • Нажатие клавиши со стрелкой вверх отображает последние команды, введённые в приглашении командной строки.
  • Оболочка bash предлагает автодополнение команд с помощью клавиши Tab.
  • Страницы руководства (man) являются одним из основных средств ведения документации в системе Linux.
  • Страницы руководства просматриваются с помощью утилиты man.
  • Страницы руководства ведутся для большинства команд, утилит, служб и файлов конфигурации системы.
  • Расположение man-страниц в файловой системе хранится в переменной окружения MANPATH или в директиве MANPATH в файле /etc/man.config.
  • Все man-страницы вместе составляют справочное руководство.
  • Руководство разделено на следующие разделы:
    • Раздел 1: Пользовательские программы и команды оболочки
    • Раздел 2: Функции ядра
    • Раздел 3: Библиотечные функции
    • Раздел 4: Специальные файлы из /dev
    • Раздел 5: Описания форматов файлов и соглашений
    • Раздел 6: Игры
    • Раздел 7: Прочие соглашения
    • Раздел 8: Утилиты, используемые суперпользователем root
    • Раздел 9: Подпрограммы ядра
  • К числу наиболее часто используемых разделов man-страниц относятся:
    • NAME
    • SYNOPSIS
    • DESCRIPTION
    • AUTHOR
    • REPORTING BUGS
    • COPYRIGHT
    • SEE ALSO
  • Для поиска текста в пределах man-страницы нужно ввести /, а затем искомый текст.
  • Для поиска текста по всем man-страницам можно воспользоваться одним из следующих средств:
    • man -k
    • apropos
  • Помимо man, для просмотра системной документации можно использовать утилиту info.
  • Утилита info отображает более подробную информацию, чем утилита man.
  • Информация, отображаемая утилитой info, называется узлом (node).
  • Чтобы воспользоваться info, нужно ввести info в приглашении командной строки, а затем имя команды, утилиты или файла конфигурации, о которой требуется получить сведения.
  • Для поиска информации в info нужно нажать Ctrl-S и ввести искомый термин.
  • Переменные окружения используются для определения среды оболочки.
  • Просмотреть значения переменных окружения можно с помощью команд оболочки echo, set и env.
  • При обращении к переменной окружения необходимо использовать символ $, чтобы указать, что это имя переменной, а не строка.
  • Задать значение переменной окружения можно, введя имя_переменной=значение в приглашении командной строки.
  • После задания значения переменной его нужно экспортировать с помощью команды export.
  • Значение, присвоенное переменной окружения, не сохраняется после завершения сеанса.
  • Чтобы присвоение переменной стало постоянным, нужно добавить соответствующие команды в один из файлов конфигурации bash.
  • Пользовательские переменные можно создавать так же, как и переменные окружения.
  • Пользовательские переменные необходимо экспортировать, чтобы они были доступны другим оболочкам.
  • Можно создавать псевдонимы в системе как сокращения для команд.
  • Просмотреть существующие псевдонимы можно с помощью команды alias.
  • Новый псевдоним определяется командой alias имя_псевдонима=команда.
  • Псевдонимы не сохраняются после завершения сеанса. Для их сохранения нужно добавить соответствующие команды в один из файлов конфигурации bash.
  • Большинство команд командной оболочки Linux имеют три стандартных файловых дескриптора:
    • stdin (0)
    • stdout (1)
    • stderr (2)
  • Перенаправить вывод (stdout и stderr) с экрана в файл можно с помощью символа > после команды.
  • Конструкция 1>имя_файла перенаправляет stdout в указанный файл.
  • Конструкция 2>имя_файла перенаправляет stderr в указанный файл.
  • Использование > приводит к созданию указанного файла, если он не существует. Если файл существует, его содержимое будет перезаписано.
  • Использование >> сохраняет существующее содержимое указанного файла и добавляет новый вывод в конец.
  • Символ < позволяет задать файл, используемый в качестве stdin для команды.
  • Конвейеры позволяют передать stdout одной команды на stdin другой команды.
  • Синтаксис использования конвейеров: команда1 | команда2.
  • В рамках одного конвейера можно использовать несколько команд.