Выбрать главу

$ 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"

13.3. Применение команды stty

Команда stty позволяет установить характеристики используемого терминала. Чтобы уточнить текущие установки опций stty, примените команду stty -a.

$ stty -а

speed 9600 baud; rows 24; columns 80; line=0

intr=^C; quit=^\; erase=^?; kill=^U; eof=^D; eol=<undef>;

eol2=<undef>; start=^Q; stop=^S; susp=^Z, rprnt=^R; werase=^W;

next=^V; flush=^0; min=1, time=0;

-parenb -parodd cs8 -hupci -cstopb cread -clocal -crtscts

-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -ignor icrnl ixon

-ixoif -iuclc -ixany -imaxbel

opcst -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel n10 cr0 tab0 bs0

vt0 ff0 isig icanon iexcen echo echoe echok -echonl

-noflsh -xcase

-tostop -echoprt echoctl echoke

Довольно часто при настройке терминала не работает клавиша [Backspace], т. е. при ее нажатии не происходит удаление символа. Данная команда stty сообщает, что в качестве клавиши [Backspace] используется комбинация клавиш ^?. Однако эта комбинация не действует. С помощью комбинации клавиш [Ctrl+H] можно вернуться на одну позицию и удалить предыдущий символ. Поэтому для устранения данной проблемы воспользуемся командой stty. Общий формат установки параметров команды stty в командной строке:

stty символ

Ниже показана установка управляющей последовательности ^H, соответствующей коду клавиши [Backspace]:

$ stty erase '\^H'

При использовании приведенной выше команды stty в файле .profile могут возникнуть затруднения. Команда stty на самом деле может предполагать наличие управляющей последовательности <CONTROL‑H>. Для устранения этого недостатка необходимо во время работы в редакторе vi поступить следующим образом: нажмите клавишу [Ctrl] и одновременно с ней клавишу [V], затем отпустите клавишу [V] и нажмите клавишу [Н].

Ниже приводятся наиболее распространенные наименования команды stty.

Наименование Клавиша Значение
intr ^C Завершение процесса
echo Подключение режима отображения
-echo Отключение режима отображения
eof ^D Конец файла, выход из системы
kill ^Y Удаление строки
start ^Q Начало прокрутки текста на экране
Stop ^S Завершение прокрутки текста на экране

Весьма полезен следующий параметр команды stty:

stty -g

Этот параметр позволяет сохранить результаты выполнения команды stty в удобочитаемом формате. Затем эти результаты можно назначить команде stty, как показано выше на примере листинга файла /etc/profile. Для этого достаточно разместить содержимое команды stty -g в соответствующей переменной, ввести необходимые изменения в команду stty, а по завершении передать эти изменения команде stty.