3.13.2.1. Переменная среды PATH
Когда вы используете команду ls, как shell
находит соответствующий выполняемый файл
(программу) для ls? На самом деле в
большинстве систем ls находится в /bin/ls.
shell использует переменную среды PATH
("ТРОПА") для указания возможного
местоположения выполняемых файлов
соответствующих команд.
Например, ваша переменнаяPATH может иметь
значение
/bin:/usr/bin:/usr/local/bin:.
Это список каталогов (в которых shell будет искать
команду), отделяемых друг от друга двоеточием ":".
Когда вы используете команду ls, shell
прежде всего проверяет наличие /bin/ls, затем
/usr/bin/ls и т.д.
Обратите внимание на то, что переменная PATH
не помогает находить обычные файлы. Например,
если вы используете команду
/home/larry# cp foo bar
shell не использует PATH для нахождения
местопребывания файлов foo и bar -
предполагается, что эти имена однозначно
определяют место. shell использует PATH только
для нахождения команды cp.
Это экономит вам массу времени; это означает,
что вы не обязаны помнить, где находятся
выполняемые файлы команд. Во многих системах
выполняемые файлы разбросаны во многих местах,
таких как /usr/bin, /bin или /usr/local/bin.
Вместо того, чтобы писать полное имя команды
(вроде /usr/bin/cp), вы просто указываете в PATH
перечень каталогов, которые бы вы хотели, чтобы
shell автоматически просматривал.
Обратите внимание, что PATH содержит ".",
что означает "текущий рабочий каталог". Это
позволяет вам создавать shell-сценарии или
программы и выполнять их как команды из текущего
каталога, без необходимости указывать это прямо
(как в случае ./makebook). Если каталог не
указан в PATH, то shell не будет его
просматривать в поиске команд, это касается и
текущего каталога.
3.13.3. Shell-Сценарии инициализации
В дополнение к shell-сценариям, которые создаете
вы, существует множество сценариев, которые
использует сам shell для своих целей. Наиболее
важными среди них являются сценарии
инициализации, которые автоматически
выполняются shell при вашем входе в систему.
Сценарии инициализации сами по себе - это
обычные сценарии, как это описывалось выше. Но
они очень полезны при установке вышей среды
путем автоматического выполнения набора команд
при вашем входе в систему. Например, если вы
всегда используете команду mail для
проверки своей почты в момент входа в систему, вы
можете поместить эту команду в свой сценарий
инициализации и она будет выполнена
автоматически.
Как Bash, так и Tcsh делают различие между начальным
shell (вызываемым при входе в систему) и прочими
вызовами shell. Начальный shell вызывается в момент
входа пользователя в систему; часто это
единственный экземпляр shell, который вы
используете. Но если вы вызываете shell из другой
программы, такой какvi, вы тем самым
запускаете новый (экземпляр) shell. Кроме того,
когда вы запускаете на выполнение shell-сценарии,
вы автоматически инициируете новый экземпляр
shell.
Файлы инициализации, используемые в Bash: /etc/profile
(устанавливается системным администратором,
выполняется всеми экземплярами начальных
пользовательских bash, вызванными при входе
пользователей в систему), $HOME/.bash_profile
(выполняется при входе пользователя) и $HOME/.bashrc
(выполняемый всеми прочими не начальными
экземплярами bash). Если .bash_profile
отсутствует, вместо него используется .profile.
Tcsh использует следующие сценарии
инициализации: /etc/csh.login (выполняется всеми
пользовательскими tcsh в момент входа в
систему), $HOME/.tcshrc (выполняется во время
входа в систему и всеми новыми экземплярами tcsh)
и $HOME/.login (выполняется во время входа после
.tcshrc). Если .tcshrc отсутствует, вместо
него используется .cshrc.
Для того, чтобы лучше понять функции этих
файлов, вам следует больше узнать о shell.
Программирование на shell сложный вопрос, далеко
выходящий за рамки этой книги. Дополнительную
информацию можно получить из Руководства на bash
и tcsh.
[ Назад | Оглавление | Далее ]
|