Начало работы
Прежде чем начать работу в среде Linux пользователю необходимо войти в систему (пройти регистрацию). Регистрация - это процесс во время которого пользователь идентифицирует себя в операционной системе. При этом доступ получают лишь пользователи, известные системе. При создании нового пользователя, ему дается уникальное имя регистрации и пароль. Пароль может быть сгенерирован системой, либо введен самим пользователем.
Регистрация в системе производится с помощью программы login. В задачи login входит проверка введенных пользователем имени и пароля. При корректности введенных значений (их совпадении с хранящимися в файлах /etc/passwd, /etc/shadow) пользователь получает доступ в сеть, в противном случае система отказывает в доступе и на экране появляется соответствующее сообщение.
Выход из системы
При завершении работы с системой пользователь должен выполнить команду выхода, при которой освобождаются все использованные им системные ресурсы. Выход (или разрегистрация) осуществляется по нажатию комбинации клавиш "Ctrl+D", вызове logout или exit.
Оболочки Linux
Оболочкой (shell) называют программу, обеспечивающую интерфейс пользователя с ядром Linux. После входа пользователя в систему для него запускается одна из оболочек (в зависимости от записи в файле /etc/passwd). Все взаимодействие пользователя с ядром до конца сеанса работы осуществляется через данную среду (рис.7).
Рис. 7 Взаимодействие пользователя с ядром
Программа, указанная в /etc/passwd, может не быть оболочкой Linux, однако, как правило, ей является.
Введенная пользователем команда обрабатывается оболочкой и передается ядру системы. Таким образом, оболочка выполняет функции интерпретатора командного языка или командного интерпретатора. Кроме собственного набора встроенных команд, оболочка позволяет также использовать утилиты Linux и приложения доступные в системе.
На рис.8 показаны основные компоненты оболочки.
При вводе пользователем команды в строке-приглашении Linux выполняется ряд действий:
Командный интерпретатор проверяет, является ли введенная строка одной из его встроенных команд (например, cd или pwd).
Если команда неизвестна, выясняется, является ли она вызовом программы-приложения. Утилиты Linux также считаются приложениями (например, Is или rm).
Интерпретатором выполняется поиск соответствующего приложения во всем каталогах пути поиска.
Если введенная команда не является встроенной или исполнимым файлом в пути поиска, появляется сообщение об ошибке.
Команда распознанная оболочкой, преобразуется в набор системных запросов адресуемых к ядру Linux.
Командный интерпретатор оболочки содержит развитый командный язык, поддерживающий большинство конструкций языков программирования высокого уровня, в частности циклы, функции, переменные и массивы.
Рис.8 Структура оболочки shell
Любая команда, которая может быть задана в командной строке, может быть включена в исполняемую программу. Это означает, что повторяющиеся действия могут быть оформлены в виде программного файла и выполняться при его вызове.
Существует несколько разновидностей оболочек. Две главные - это "Bourne shell" (shell Баурна или просто shell) и "С shell". Shell Баурна использует командный синтаксис, похожий на первоначально придуманный для UNIX. В большинстве UNIX-систем shell Баурна имеет имя /bin/sh. С shell использует иной синтаксис, чем-то напоминающий синтаксис языка программирования Си. В большинстве UNIX-систем он имеет имя /bin/csh. В Linux есть несколько вариаций этих оболочек. Две наиболее часто используемые, это Новый Shell Баурна (Bourne Again Shell) или "Bash" (/bin/bash) и Tcsh (/bin/tcsh).