И в завершение последняя строка файла задает вид командной строки, содержащей регистрационное имя соответствующего пользователя.

В результате описанных выше действий устанавливается среда для глобального применения. А теперь выполним ее настройку, руководствуясь профильным файлом текущего пользователя.

<p><strong>13.2. Пользовательский файл $НОМЕ/.profile</strong></p>

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

Этот каталог действительно является исходным каталогом пользователя, поскольку именно в нем хранится вся личная информация пользователя.

Если имеется файл .profile, система использует его в качестве исходного файла. Значит, данный процесс обращается к существующему интерпретатору shell. В результате этого все существующие среды {/etc/profile) не будут изменяться под влиянием информации файла (.profile). При создании другого процесса локальные переменные интерпретатора shell фактически переписываются.

Вернемся к файлу .profile. Как правило, если учетная запись уже установлена, профильный файл в каком‑то виде уже существует. Важно помнить, что установки файла /etc/profile могут быть переопределены при добавлении в файл .profile нового элемента с другим значением либо при выполнении команды unset. Специальная настройка данного файла остается в ведении пользователя, поэтому рассмотрим стандартный файл .profile:

$ pg .profile

#.profile

set -a

MAIL=/usr/mail/$(LOGNAME:?)

PATH=$PATH export PATH

#

А теперь приступим к настройке данного файла.

Необходимо установить ряд переменных среды, подобных editor, чтобы утилита cron и другие приложения были осведомлены о применяемом редакторе. Кроме того, нас не устраивает режим эмуляции терминала vt220. Поэтому, изменим это значение на режим эмуляции терминала vt100. Это обстоятельство связано с переменной TERM.

Также можно создать каталог bin и указать его в настройках пути к своим файлам. Наличие подобного каталога желательно, поскольку именно в нем можно хранить все свои сценарии. Если же указать каталог в переменной path, можно вводить не полное имя пути к исполняемому сценарию, а лишь имя сценария.

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

$ P$1="`имя_сервера`>"

dns‑cepвep>

Или для текущего каталога, в котором вы находитесь,

$ P$1="\`pwd\`>"

\home\dave>

Если в приведенной выше командной строке возвращается слово "pwd", то вместо него воспользуйтесь командной строкой:

P$1='$PWD >';

В качестве дополнительной командной строки (которая обычно применяется при выполнении многострочной команды в командной строке) можно применять знак авторского права ©. Значение этого символа в коде ASCII равно восьмеричному числу 251, или десятичному числу 169.

$ PS2=" `echo "\251" `:"

/home/dave> while read line

©:do

©:echo $LINE

©:done

В Linux…

Для использования в echo восьмеричного значения применяется следующий синтаксис:

$ PS2="`echo -e "\251"`:"

Так как пользователи имеют доступ к параметрам администрирования системы, размещенным в каталоге /usr/admin, этот каталог следует задать в виде переменной среды. Тогда в данный каталог можно переходить с помощью команды cd.

ADMIN=/usr/adm

Кроме того, сразу же после регистрации желательно знать, сколько пользователей находится в системе. Для этого можно воспользоваться командой who или wc.

$ echo "`who | wc -l` users are on today"

19 users are on today

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

. /имя_пути/имя_файла

Чтобы использовать файл .profile в качестве исходного, достаточно ввести следующую команду:

$ . .profile

Если приведенный вариант не действует, можно попробовать следующий: $ . ./profile

Ниже показан измененный файл .profile.

$ pg .profile

#.profile

MAIL=/usr/mai1/${LOGNAME:?}

PATH=$PATH:$HOME:bin

#

EDITOR=vi

TERM=vt100

ADMIN=/usr/adm

P$1=" `hostname`>"

PS2=" `echo "\0251"`:"

export EDITOR TERM ADMIN PATH PS1

echo " `who | wc -l` users are on to‑day"

Перейти на страницу:

Похожие книги