Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
05.06.2015
Размер:
20.41 Кб
Скачать

24. Переменные окружения и псевдонимы.

В OC Linux имеется возможность настройки сеанса пользователя (аккаунта) с помощью переменных окружения и псевдонимов.

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

Например, в интерпретаторе BASH синтаксическое правило назначения переменной выглядит следующим образом:

имя_переменной=значение_переменной.

Чтобы отобразить все заданные в памяти переменные, требуется ввести команду env. Отобразим часть переменных окружения:

LANG=ru_RU.UTF-S

LM_LICENSE_FILE=7326@82.179.185.68

ISEDB=/home/antonk/DBte st/

SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass

EOME=/home/antonk

3HLVL=2

LOGNAME=antonk

CVS_RSH=ssh

QTLIB=/usr/lib64/qt-3.3/lit

SSH_CONNECTION=82.179.185.70 1209 82.179.185.125 22 LESSOPEN=|/usr/bin/lesspipe.sh %s

ISEROOT=/syn/SYNOPSYS/TCAD61

STROOT_LIB=/root/STDB

STDB=/root/STDB

G_BROKEN FILENAMES=1

В операциях перенаправления также используется переменная окружения, которая в зависимости от значения может позволить или не позволить перезаписать уже существующий файл. Имя переменной – noclobber. Она относится к числу служебных переменных, которые задаются с помощью команды set.

В следующем примере создадим новый файл «rrr», с помощью переменной noclobber установим запрет на перезапись файла средствами перенаправления и попробуем стандартный вывод расширенного действия выполнения команды ls записать в вновь созданный файл «rrr». Перезапись не разрешена. Далее с помощью переменной noclobber разрешим перезапись уже существующего файла «rrr» и посмотрим его содержимое.

[antonk@lab4236s ~]$ cat > rrr

1223333

[antonk@lab4236s ~]$ cat rrr

1223333

[antonk@lab4236s ~]$ set -o noclobber

[antonk@lab4236s ~]$ ls -ld /home/antonk > rrr

bash: rrr: cannot overwrite existing file

[antonk@lab4236s ~]$ set +o noclobber

[antonk@lab4236s ~]$ ls -ld /home/antonk > rrr

[antonk@lab4236s ~]$ cat rrr

drwx------ 27 antonk antonk 4096 Sep 22 11:53 /home/antonk

[antonk@lab4236s ~]$

Перечень служебных переменных можно отобразить с помощью команды set –o. Часть вывода служебных переменных приведена ниже:

[antonk@lab4236s ~]$ set –o

allexport off

braceexpand on

arrexit off

arrtrace off

functrace off

hashall on

histexpand on

ignoreeof off

interactive-comments on

keyword off

monitor on

noclobber off

Переменные окружения называют цифрами и латинскими буквами в верхнем регистре. Важно, чтобы название переменной начиналось именно с латинской буквы. Отображение значения переменной осуществляется с помощью команды echo $имя_переменной, где символ $ указывает на то, что речь идет не о самой переменной, а о ее значении.

В следующем примере создадим переменную MY_VAR и присвоим ей значение 5. Затем убедимся, что такая переменная действительно существует, и возвратим ее значение:

[antonk@lab4236s ~]$ MY_VAR=5

[antonk@lab4236s ~]$ set | grep MY_VAR

MY_VAR=5

[antonk@lab4236s ~]$ echo $MY_VAR

5

[antonk@lab4236s ~]$

В отдельных случаях удобно использовать так называемые псевдонимы. Псевдонимы (aliases) – сокращенные имена, заменяющие одну или несколько команд, которые также могут содержать опции и параметры. Формат команды: alias dir=строка_команды.

Например, установим псевдоним на команду ls с опциями –ld для папки /home/antonk и назовем его lh:

[antonk@lab4236s ~]$ alias lh='ls -ld /home/antonk'

[antonk@lab4236s ~]$ lh

drwx--------- 27 antonk antonk 4096 Sep 22 14:22 /home/antonk

[antonk@lab4236s ~]$

Теперь по команде lh будет отрабатываться комбинация ls –ld /home/antonk . Следует отметить, что длинные выражения с правой стороны от равенства, включающие пробелы, знаки табуляции или другие спецсимволы, ограничиваются одиночными апострофами. Вновь созданные переменные окружения и псевдонимы действуют в течение текущего сеанса и по завершении сеанса командного интерпретатора стираются из памяти. Для того чтобы в новом сеансе они вновь работали, их можно занести в точечный файл rc-скрипта BASH-интерпретатора – в файл .bashrc .

Соседние файлы в папке KTNI_Kozlov_otvety