Вперед: 2.7. Организация рабочего места
Назад: 2.6.2. Команды управления процессами
К содержанию: Оглавление


2.6.3. Команды управления окружением

Любая команда, запускаемая пользователем - будь то системная команда, компилятор или программа пользователя, выполняется в окружении, сформированном оболочкой. Это окружение формируется с помощью конфигурационных файлов. Механизм формирования окружения заключается, главным образом, в установке правильных значений для переменных окружения. К сожалению, в этом вопросе в UNIX-подобных системах единого стандарта нет.

В каждую версию системы включается несколько командных интерпретаторов и пользователю предлагается самому выбирать ту или иную оболочку. С точки зрения выполнения команд это никак не проявляется - любая внешняя команда или программа пользователя будет одинаковым образом выполняться в любой оболочке. А вот с точки зрения формирования среды и внутренних команд среды, различия имеются. Ранее упоминалось, что в UNIX-подобных системах поддерживаются два семейства оболочек (shell):

Bourne Shell (sh, ksh, bash) и

C Shell (csh, zsh, tcsh).

Оболочки имеют немного отличающийся синтаксис встроенных команд и используют различные конфигурационные файлы. Наибольшее распространение на сегодняшний день получили tcsh и bash, ставший фактически стандартным в Linux системах, поскольку в полной мере соответствует стандарту Posix.

Конфигурационные файлы:
bash - /etc/profile, ~/bash_profile, ~/bash_login, ~/.profile, ~/.bashrc
tcsh - /etc/csh.cshrc /etc/csh.login, ~/.login, ~/.cshrc ~/.tcshrc,

Таким образом видно, что часть установок делается системным администратором, а часть выполняется в персональных конфигурационных файлах каждого пользователя. Необходимые установки можно делать в любом из перечисленных файлах, но при этом следует иметь в виду, что некоторые конфигурационные файлы выполняются только один раз - при входе в систему, а другие каждый раз при запуске нового shell.

В оболочке bash действует следующий сценарий:

В оболочке tcsh действует следующий сценарий:

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

env

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

Просмотр выполняется слева направо, исполняется первая найденная команда. Каталог ~/bin указывает на то, что команды(программы) следует искать в пользовательском каталоге bin, а '.' на то, что поиск выполнять в текущем каталоге. Проверить, из какого каталога какая будет исполнена команда можно с помощью команды:

which команда

В оболочке tcsh имеется переменная REMOTEHOST, которая позволяет автоматически устанавливать правильное значение для переменной DISPLAY при подключении с удаленного компьютера. В оболочке bash такой переменной, к сожалению, нет и для того, чтобы работать с графическими приложениями необходимо устанавливать эту переменную.

Некоторые приложения требуют установки своих переменных. Например, на многопроцессорных(многоядерных) системах выполнение многонитевых программ регулируется переменной OMP_NUM_THREADS, указывающей максимальное число нитей, которое может запускаться на системе.

Команда env выдает довольно большой объем информации. Для того, чтобы посмотреть значение конкретной переменной можно воспользоваться командой:

echo $ИМЯ_ПЕРЕМЕННОЙ - здесь символ $ означает извлечение значения переменной.

Установка переменных окружения по разному выполняется в bash и tcsh.

Bash

Tcsh



Вперед: 2.7. Организация рабочего места
Назад: 2.6.2. Команды управления процессами
К содержанию: Оглавление