Россия |
Командные процессоры
Псевдонимы команд
Псевдонимы - это сокращения для часто используемых длинных команд или их последовательностей. Если вы часто делаете однотипные опечатки при вводе команд, можно создать такие псевдонимы, чтобы команда с опечаткой была псевдонимом правильной команды, например:
alias telent telnet
Создать псевдоним очень просто:
alias псевдоним команда
Команда может быть последовательностью команд с ключами и аргументами, тогда ее следует заключить в апострофы:
alias ll 'ls -l'
Такая команда приведет к тому, что каждый раз при вводе ll командный процессор будет фактически выполнять команду
ls -l
Синтаксис определения псевдонимов в разных командных процессорах разный. Псевдонимы обычно определяются в стартовых файлах.
командный процессор команда alias ключ для экспорта sh alias ll='ls -l' csh alias ll 'ls -l' ksh alias ll='ls -l' -x bash alias ll='ls -l'
Так же, как и переменные среды окружения, псевдонимы могут экспортироваться, т.е. передаваться "по наследству" запускаемым из данного сеанса работы другим командным процессорам. Для этого используются ключи команды alias. Команда alias является встроенной командой командного процессора.
Отмена назначенного псевдонима выполняется командой
unalias псевдоним
Переменные среды окружения
Как отмечалось в лекции 7, каждый процесс имеет свою среду окружения - специальную область, в которой хранятся имена переменных и их значения. Если нужно использовать значение переменной в командной строке, применяется конструкция
$имя_переменной
Например, echo $TERM выведет на экран значение переменной TERM. Пользователь может определить свои собственные переменные. Новая переменная появляется, как только вы даете команду присвоить значение несуществующей переменной. Переменная не имеет типа, так как считается, что все переменные имеют тип "строка". При этом если попытаться выполнить арифметическую операцию с переменными, имеющими значение неких чисел, то такая строка будет преобразована в число, число использовано в операции и результат преобразован обратно в строку.
Попробуйте:
i=2 j=3 expr $i \* $j
Присвоение переменной значения во всех командных процессорах, кроме csh, выполняется командой
VAR=value
set VAR=value
или
setenv VAR value
Переменные со специальными названиями типа DISPLAY, TERMINFO и т.п. используют программы, которые проверяют свою среду окружения на наличие таких переменных и их значений. Поведение таких программ может изменяться в зависимости от значения переменных.
Переменные могут экспортироваться, т.е. передаваться от процессов-родителей процессам-потомкам. Для экспорта переменной надо дать команду
export имя_переменной
Если надо удалить переменную среды окружения, можно присвоить ей пустое значение (это неравнозначно удалению, но иногда этого достаточно), а можно удалить ее вовсе командой unset.
В tcsh есть возможность создавать переменные только для чтения, без права изменения значений, для этого служит команда
set -r имя=значение
Кроме того, в tcsh можно присвоить переменной значение в виде списка слов, к которым потом можно обращаться по номеру слова, начиная с 1:
set var=(hello world) echo {$var[1]} hello echo {$var[2]} world
Для вывода на экран списка всех переменных с их значениями надо дать команду set без параметров.