Site icon 8HOST.COM

Типы оболочек в системе Linux

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

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

Что такое оболочка и зачем она нужна?

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

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

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

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

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

Типы оболочек

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

1: Bourne Shell (sh)

Разработанная в AT&T Bell Labs Стивом Борном, Bourne Shell Считается первой оболочкой UNIX. Она обозначается как sh. 

Данная оболочка завоевала популярность благодаря своей компактности и высокой скорости работы. Именно это и сделало ее оболочкой по умолчанию для ОС Solaris. Также она используется как командная оболочка по умолчанию для всех административных скриптов системы Solaris.

Читайте также: Аргументы командной строки в shell-скриптах

Но у оболочки Bourne есть ряд существенных недостатков:

По умолчанию полный путь к исполняемому файлу Bourne Shell — /bin/sh и /sbin/sh. Для пользователей root используется символ # в качестве приглашения командной строки, а для не-root пользователей — символ $.

2: GNU Bourne-Again (bash)

GNU Bourne-Again (известная также как Bash) была разработана для совместимости с оболочкой Bourne. Она включает в себя полезные функции из других шеллов Linux, таких как Korn и C.

В отличие от командной оболочки Bourne, она позволяет автоматически вызывать ранее выполненные команды и редактировать их клавишами со стрелками.

Полный путь к оболочке GNU Bourne-Again — /bin/bash. По умолчанию она использует приглашение bash-VersionNumber# для пользователя root и bash-VersionNumber$ для пользователей без прав root.

Читайте также: 

3: C Shell (csh)

Оболочка C была разработана Биллом Джоем в Калифорнийском университете. Обозначается как csh. Она была создана для реализации полезных функций и синтаксиса языка программирования C.

Кроме того, у нее есть история команд, которой не было в других типах командных оболочек Linux (например, в Bourne). Еще одна отличительная особенность оболочки C — псевдонимы (aliases).

Полный путь к C shell: /bin/csh. По умолчанию она использует приглашение hostname# для пользователя с правами root и hostname% для пользователей без этих привилегий.

4: Korn Shell (ksh)

Была разработана в AT&T Bell Labs Дэвидом Корном как улучшение оболочки Bourne. 

Обозначается как ksh. Командная оболочка Korn по сути является расширением Bourne. Помимо всех функций из Bourne, она предоставляет пользователям новые возможности, среди которых встроенная поддержка арифметических операций и интерактивные функции, как в C shell.

Korn запускает скрипты оболочки Bourne, выполняя операции со строками, массивами и функциями подобно языку программирования C. Она также поддерживает скрипты, написанные для оболочки C. Кроме того, Korn работает быстрее большинства других типов командных оболочек Linux, включая C shell.

Полный путь к оболочке Korn: /bin/ksh. По умолчанию, для пользователя root используется приглашение #, non-root — $.

5: Z Shell (zsh)

Командная оболочка Z, или zsh — это расширение шелла sh с улучшенной кастомизацией. Если вы ищете современную оболочку со множеством функций, Z Shell — это то, что вам нужно.

Читайте также: Установка Z Shell (zsh) на облачный сервер

Особенности Z shell:

Заключение

Давайте подведем итоги по типам оболочек, которые мы рассмотрели в этом мануале:

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

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