Командные интерпретаторы

Командные интерпретаторы

Часто пользовательские процессы являются дочерними процессами командного интерпретатора, указанного в /etc/passwd для данного пользователя. Файлы инициализации командных интерпретаторов обычно модифицируют этот путь.

В login, имя командного интерпретатора предваряется '-', например bash вызывается как '-bash'. Это сигнализирует интерпретатору, что он является 'login' интерпретатором. В этом случае, интерпретатор вызывает файлы начальной инициализации. Иначе выполняется 'облегченная' версия инициализации. Дополнительно, интерпретатор проверяет 'интерактивность' сессии - считываются-ли команды из файла или с поступают интерактивного терминала. Это влияет на процесс инициализации, так, что не интерактивные сессии инициализируются минимально. Bash не вызывает в этом случае никаких файлов инициализации!

bash

Вызванный как обычный 'login' интерпретатор, bash исполняет общесистемный файл инициализации /etc/profile, где можно установить системное окружение и path для пользователей bash. Когда интерпретатор вызывается в не-интерактивном режиме, этот файл не исполняется. Наиболее важный случай - это rsh, когда удаленная команда исполняется на другой машине. В таком случае /etc/profile не запускается, и path наследуется у демона rsh.

Bash имеет аргументы командной строки -login и -i, которые могут быть использованы для установки интерпретатора в качестве 'login' интерпретатора или интерактивного интерпретатора.

Пользователь может изменить значения указанные в /etc/profile, создав файл ˜/.bash_profile, ˜/.bash_login или ˜/.profile . Заметьте, что только первый из этих файлов исполняется в зависимости от логики инициализации csh. ˜/.bash_login не исполняется для 'login' интерпретаторов и если существует .bash_profile, он не исполняется вообще!

Если bash используется с именем sh, вместо bash, он эмулирует инициализацию оригинального Bourne shell интерпретатора: исполняет только файлы /etc/profile и ˜/.profile и только для 'login' интерпретаторов.



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости