Утилиты GNU

21.11.2021 Автор: Mohira Абдукаримова

Помимо ядра для управления аппаратными устройствами, компьютерной операционной системе необходимы служебные программы для выполнения стандартных функций, таких как управление файлами и программами. Хотя Линус создал ядро ​​системы Linux, у него не было системных утилит для работы на нем. К счастью для него, в то же время, когда он работал, группа людей вместе работала в Интернете, пытаясь разработать стандартный набор утилит компьютерной системы, имитирующий популярную операционную систему Unix.

Организация GNU (GNU означает GNU’s Not Unix) разработала полный набор утилит Unix, но не имела системы ядра для их запуска. Эти утилиты были разработаны в соответствии с философией программного обеспечения, называемой программным обеспечением с открытым исходным кодом (OSS).

Концепция OSS позволяет программистам разрабатывать программное обеспечение, а затем выпускать его в мир без каких-либо лицензионных сборов. Любой желающий может использовать, изменять или включать программное обеспечение в свою собственную систему без уплаты лицензионных сборов. Объединение ядра Linux Линуса с утилитами операционной системы GNU позволило создать полную, функциональную и бесплатную операционную систему.

Хотя объединение ядра Linux и утилит GNU часто называют просто Linux, вы увидите, что некоторые пуристы Linux в Интернете называют его системой GNU / Linux, чтобы отдать должное организации GNU за ее вклад в дело.

Основные утилиты GNU

Проект GNU был в основном разработан для системных администраторов Unix, чтобы иметь доступную среду, подобную Unix. Это привело к тому, что в проекте было перенесено множество общих утилит командной строки системы Unix. Основной набор утилит, поставляемых для систем Linux, называется пакетом coreutils.

Пакет GNU coreutils состоит из трех частей:

  • Утилиты для работы с файлами
  • Утилиты для работы с текстом
  • Утилиты для управления процессами

Каждая из этих трех основных групп утилит содержит несколько утилит, которые неоценимы для системного администратора и программиста Linux. В этой книге подробно рассматривается каждая из утилит, содержащихся в пакете GNU coreutils.

Оболочка

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

Он позволяет вводить текстовые команды, а затем интерпретирует команды и выполняет их в ядре.

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

Можно также сгруппировать команды оболочки в файлы для выполнения в качестве программы. Эти файлы называются сценариями оболочки. Любую команду, которую можно выполнить из командной строки, можно поместить в сценарий оболочки и запустить как группу команд. Это обеспечивает большую гибкость при создании утилит для часто выполняемых команд или процессов, для которых требуется несколько групп, сгруппированных вместе.

Довольно много оболочек Linux доступны для использования в системе Linux. Различные оболочки имеют разные характеристики, некоторые из них более полезны для создания сценариев, а некоторые — для управления процессами. Оболочкой по умолчанию, используемой во всех дистрибутивах Linux, является оболочка Bash. Оболочка Bash была разработана проектом GNU как замена стандартной оболочки Unix, названной оболочкой Bourne (по имени ее создателя). Название оболочки Bash — это игра на этой формулировке, называемая «оболочка снова Борна».

В таблице  перечислены различные оболочки, которые мы рассмотрим.

ОболочкаОписание
ashПростая, легкая оболочка, которая работает в средах с низким объемом памяти, но полностью совместима с оболочкой Bash.
kornПрограммная оболочка, совместимая с оболочкой Bourne, но поддерживающая расширенные функции программирования, такие как ассоциативные массивы и арифметика с плавающей запятой.
tcshОболочка, которая включает элементы языка программирования C в сценарии оболочки.
zshРасширенная оболочка, которая включает в себя функции из Bash, tcsh и korn, обеспечивая расширенные функции программирования, общие файлы истории и тематические подсказки.

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