Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1320 / 264 | Оценка: 4.34 / 3.65 | Длительность: 21:13:00
Лекция 12:

Командные процессоры

< Лекция 11 || Лекция 12: 123456

Псевдонимы команд

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

alias telent telnet

Создать псевдоним очень просто:

alias псевдоним команда

Команда может быть последовательностью команд с ключами и аргументами, тогда ее следует заключить в апострофы:

alias ll 'ls –l'

Такая команда приведет к тому, что каждый раз при вводе ll командный процессор будет фактически выполнять команду

ls –l

Синтаксис определения псевдонимов в разных командных процессорах разный. Псевдонимы обычно определяются в стартовых файлах.

Синтаксис команд alias:

Командный процессор Команда 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 псевдоним.

Переменные среды окружения

Как отмечалось в "лекции 9" , каждый процесс имеет свою среду окружения – специальную область, в которой хранятся имена переменных и их значения. Для использования значения переменной в командном процессоре надо применять конструкцию

$имя_переменной.

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

Попробуйте

$i=2
$j=3
expr $i \* $j

Присвоение переменной значения во всех командных процессорах, кроме csh, выполняется командой

VAR=value

В csh команда иная:

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 без параметров.

Предопределенные переменные

Предопределенные переменные содержатся в среде окружения командного процессора независимо от установок, которые может сделать пользователь в стартовых скриптах. Имена предопределенных переменных среды окружения во всех командных процессорах, кроме csh (и, в некоторых случаях, tcsh) пишутся символами верхнего регистра: PATH, USER, TERM, PS1, PS2.

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

В любых командных процессорах обязательно заранее определены переменные перечисленные в таблице 12.5.

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

set

Любой скрипт может быть вызван с аргументами, которые в скрипте называются позиционными параметрами. К аргументам с первого по девятый следует обращаться как к $1..$9. Значение $0 – это имя самого скрипта, по которому его вызвали. Один и тот же скрипт может быть вызван с разными именами, например, если с ним установлены символи- ческие связи (symbolic links).

Таблица 12.5.
Переменная Смысл
HOME Домашний каталог пользователя
SHELL Текущий shell
PS1 Вид приглашения shell'a
PS2 Вид приглашения "продолжение команды"
TERM Тип терминала пользователя
USER или LOGNAME Имя пользователя
PATH Список каталогов, где надо искать программы, когда пользователь запускает программу, указывая только ее имя, но не путь. Каталоги разделяются двоеточиями

Команда shift n (n – положительное или отрицательное смещение) позволяет двигать "окошко" $1..$9 по всему массиву аргументов скрипта вперед и назад, если аргументов больше девяти. Shift без параметров эквивалентен shift 1. В csh "окно" умеет сдвигаться только на одну позицию вперед.

Кроме вышеописанных переменных обычно определены переменные перечисленные в таблице 12.6

Таблица 12.6.
Переменная Смысл
$ Номер процесса текущего shell'a
* Все позиционные параметры
_ Последняя вызванная команда
1,2,..9 Один позиционный параметр
$# Число позиционных параметров
< Лекция 11 || Лекция 12: 123456
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.