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 .
[ Назад | Оглавление | Далее ]
|