BASH. Часть 1. Введение.

Начну потихоньку выкладывать статьи, освящающие работу с системой Linux в текстовом режиме, другими словами, с консоли или терминала. Начинающему пользователю может казаться, что он никогда не будет работать в этом режиме, поскольку существует графический режим. Однако это мнение ошибочно, ибо многие действия оказывается быстрее и удобнее выполнять именно в текстовом режиме. Даже находясь в графическом режиме, вы часто будете открывать окно эмулятора терминала и выполнять необходимые действия в этом окне. Поскольку Linux — это многозадачная ОС, уже в текстовом режиме обеспечивается возможность работы в нескольких окнах. А для редактирования простого текста или HTML-файла вовсе не обязательно запускать графическую оболочку.


Что такое оболочка?

Хотя мы часто говорим, что «пользователь работает с операционной системой», фактически это не совсем верно, поскольку на деле взаимодействие с пользователем организует специальная программа. Существует два вида таких программ — оболочка, или shell, для работы в текстовом режиме (интерфейс командной строки) и графический интерфейс пользователя GUI (Graphical User Interface), организующий взаимодействие с пользователем в графическом режиме.

 

Сразу надо сказать, что в принципе любая программа в Linux может быть запущена как через оболочку (если запущен Х-сервер), так и через графический интерфейс пользователя. Запуск программ из оболочки эквивалентен (двойному) щелчку мышкой по иконке программы в GUI. Но, с другой стороны, некоторые программы не приспособлены для запуска через GUI и, соответственно, могут быть исполнены только из командной строки.

 

Собственно говоря, название «оболочка», на мой взгляд, не совсем верно. Мне кажется, что правильнее было бы называть эту программу командным процессором, или интерпретатором команд. Но так уж повелось во всех UNIX-системах, что интерпретатор команд для текстового режима называют оболочкой.
Когда-то (в первых UNIX-системах) это была программа с именем sh, которое было сокращением от shell. Потом были разработаны несколько ее улучшенных вариантов, в частности, Bourne shell — расширенная версия sh, написанная Стивом Борном (Steve Bourne). В рамках проекта GNU (проект Р. Столлмана по разработке свободного ПО) была создана оболочка bash, название которой расшифровывается как Boume-ggain shell, т. е. «снова оболочка Борна». По-английски в этом названии просматривается еще и игра слов, связанная с тем, что Bourne звучит как borne (рождаться, рожденный), и получается «заново рожденная shell». Оболочка bash была написана Брайеном Фоксом (Brian Fox — основной разработчик) и Четом Рэми (Chet Rarney). Именно bash и будет далее рассматриваться, и всюду, где говорится об оболочке вообще, смело можете считать, что речь идет о bash.

 

Сама по себе оболочка bash не выполняет никаких прикладных задач. Но она обеспечивает выполнение всех приложений: нахождение вызываемых программ, их запуск и организацию ввода/вывода. Кроме того, оболочка отвечает за работу с переменными окружения и выполняет некоторые преобразования (подстановки) аргументов. Но главное свойство оболочки, которое делает ее мощным инструментом пользователя — это то, что она включает в себя простой язык программирования. Как давно доказано в математике, любой алгоритм можно построить из пары-тройки основных операций и одного условного оператора. Реализацию условных операторов (а также операторов цикла) и берет на себя оболочка. Она использует все остальные утилиты и программы (и те, которые имеются в составе операционной системы, и те, что устанавливаются отдельно) как базовые операции поддерживаемого ею языка программирования, обеспечивает передачу им аргументов, а также передачу результатов их работы другим программам или
пользователю. В результате получается очень мощный язык программирования. И в этом основная сила и одна из существенных функций оболочки.

Другие части.

BASH. Часть 1. Введение.
BASH. Часть 2. Специальные символы.
BASH. Часть 3. Выполнение команд.
BASH. Часть 4. Стандартный ввод/вывод.
BASH. Часть 5. Параметры и переменные. Окружение оболочки.
BASH. Часть 6. Раскрытие выражений

Из книги Виктора Костромина «Linux для пользователя».