Когда мы говорим, что "пользователь работает с операционной системой", фактически это не верно, поскольку на деле взаимодействие с пользователем организует специальная программа. Существует два вида таких программ — оболочка, или shell, для работы в текстовом режиме (интерфейс командной строки) и графический интерфейс пользователя GUI (Graphical User Interface), организующий взаимодействие с пользователем в графическом режиме.
Сразу надо сказать, что в принципе любая программа в Linux может быть запущена как через оболочку (если запущен X-сервер), так и через графический интерфейс пользователя. Запуск программ из оболочки эквивалентен (двойному) щелчку мышкой по иконке программы в GUI. Передача аргументов программе в текстовом режиме аналогична тому, что мы "бросаем" что-то на иконку программы в графическом. Но, с другой стороны, некоторые программы не приспособлены для запуска через GUI и, соответственно, могут быть исполнены, только из командной строки.
Когда-то (в первых UNIX®-системах) это была программа с именем sh, которое было сокращением от shell. Потом были разработаны несколько ее улучшенных вариантов, в частности, Bourne shell — расширенная версия sh, написанная Стивом Борном (Steve Bourne). В рамках проекта GNU (проект Р.Столлмана по разработке свободного ПО, см. www.gnu.org) была создана оболочка bash, название которой расшифровывается как Bourne-again shell, т. е. "снова оболочка Борна". По-английски в этом названии просматривается еще и игра слов, связанная с тем, что Bourne звучит как borne (рождаться, рожденный), и получается "заново рожденная shell". Оболочка bash была написана Брайеном Фоксом (Brian Fox — основной разработчик) и Четом Рэми (Chet Ramey). Именно bash мы и будем далее рассматривать, и всюду ниже, где говорится об оболочке вообще, вы смело можете считать, что речь идет о bash.
Сама по себе оболочка bash не выполняет никаких прикладных задач. Но она обеспечивает выполнение всех приложений: нахождение вызываемых программ, их запуск и организацию ввода/вывода. Кроме того, оболочка отвечает за работу с переменными окружения и выполняет некоторые преобразования (подстановки) аргументов.
Но главное свойство оболочки, которое делает ее мощным инструментом пользователя — это то, что она включает в себя простой язык программирования. Как давно доказано в математике, любой алгоритм можно построить из пары-тройки основных операций и одного условного оператора. Реализацию условных операторов (а также операторов цикла) и берет на себя оболочка. Она использует все остальные утилиты и программы (и те, которые имеются в составе операционной системы, и те, что устанавливаются отдельно) как базовые операции поддерживаемого ею языка программирования, обеспечивает передачу им аргументов, а также передачу результатов их работы другим программам или пользователю. В результате получается очень мощный язык программирования. И в этом основная сила и одна из существенных функций оболочки.
UNIX® это многозадачная, многопользовательская операционная система. Это означает, что много людей может одновременно использовать один компьютер, выполняя много различных задач. (Это существенное отличие от MS-DOS, где только один человек может использовать в данный момент операционную систему). В UNIX® пользователи должны себя идентифицировать при входе, что состоит из двух шагов: ввода имени (имя, по которому вас идентифицирует система) и входной пароль, который является вашим секретным словом для открытия вашего счета (регистрации в системе). Поскольку только вы знаете пароль, никто не может войти в систему под вашим именем.
В традиционных UNIX®-системах системный администратор присвоит вам имя и начальный пароль при вашей регистрации в системе (при заведении в системе нового пользователя). Но поскольку на своем персональном компьютере вы и системный администратор, вы должны себя (как пользователя) зарегистрировать в системе, прежде чем в нее войдете. Для дальнейших разговоров возьмем условное имя ``larry''.
Кроме прочего, каждая система UNIX® имеет приписанное ей hostname (имя).
Hostname используется для идентификации отдельных машин в сети, но даже если ваша машина не в сети, она все равно должна иметь hostname.
После регистрации в системе Вы увидите на экране приглашение. Вид приглашения может зависеть от имени пользователя. Стандарное правило: - пользователь root имееет приглашение заканчивающиеся симоволом «#».
Например:
linux:/ora_idx/backup/depot #
А у обычного пользователя это может выглядеть так:
user@linux:/ora_idx/backup/depot >
Таким образом приглашение формируется из имени_пользователя@имени_хоста:/имени_текущего_каталога.