В оболочку Korn, или POSIX, встроен ряд команд, которые можно выполнять в процессах этой оболочки. По умолчанию выходная информация этих команд направляется в файл с дескриптором 1, и если в команде нет синтаксических ошибок, то для нее устанавливается код завершения ноль (0). Разрешается перенаправление ввода и вывода. Встроенные команды разделяются на два типа - особые встроенные команды и обычные встроенные команды.
Полный перечень встроенных команд в алфавитном порядке приведен в разделе Список встроенных команд оболочки Korn (POSIX).
Особые встроенные команды отличаются от обычных следующим:
Кроме того, значения, указанные в операторах присваивания после особых команд export, readonly и typeset, анализируются по тем же правилам, что и значения обычных операторов присваивания. Для строки, указанной после знака равенства (=), выполняется подстановка по тильде, но при этом слова не разбиваются на части и не выполняется подстановка имен файлов.
В оболочке Korn предусмотрены следующие особые встроенные команды:
: eval newgrp shift
. exec readonly times
break exit return trap
continue export set typeset
unset
: [аргумент ...] | Только интерпретирует аргументы. Эта команда применяется в случае, если необходимо указать какую-либо команду (например, в условии then команды if), но при этом данная команда не должна выполнять никаких действий. |
. файл [аргумент ...] | Считывает указанный файл, а затем выполняет содержащиеся в нем
команды. Команды выполняются в среде текущей оболочки. Поиск
указанного файла выполняется в каталогах, перечисленных в переменной PATH. Если заданы какие-либо аргументы,
они переопределяют позиционные параметры. В противном случае
позиционные параметры остаются без изменений. Код завершения команды
. равен коду завершения последней выполненной команды.
Дополнительная информация о позиционных параметрах приведена в разделе Подстановка параметров в оболочке Korn (POSIX).
Примечание: Команда . файл[аргумент ...] сначала считывает весь файл, а затем выполняет указанные в нем команды. Поэтому команды alias и unalias, содержащиеся в файле, не действуют для любых функций, определенных в файле. |
break [n] | Прерывает цикл команды for, while, until или select, если он выполняется. С помощью необязательного параметра n можно задать число циклов, из которых нужно выйти. Значение n должно быть целым числом, не меньшим 1. |
continue [ n ] | Возобновляет следующий внешний цикл команды for, while, until или select. Если вы укажете переменную n, то команда возобновит цикл n-го уровня. Значение n должно быть целым числом, не меньшим 1. |
eval [аргумент ...] | Разбирает указанные аргументы как входную информацию для оболочки и выполняет полученную в итоге команду или команды. |
exec [аргумент ...] | Выполняет команду, указанную в аргументе, в процессе текущей оболочки (без создания нового процесса). Входные и выходные аргументы выполняемой команды применяются к текущему процессу. Если команда exec будет указана без аргументов, она изменит дескрипторы файлов в соответствии со списком перенаправления ввода и вывода. В этом случае все дескрипторы файлов с номерами, превышающими 2, открытые с помощью этой команды, автоматически закрываются при вызове любой другой команды. |
exit [n] | Завершает работу оболочки с кодом выхода n. Параметр n должен быть целым числом от 0 до 255. Если он не будет указан, то код завершения оболочки будет равен коду завершения последней выполненной команды. Кроме того, если не включена опция ignoreeof команды set, работа оболочки завершается при обнаружении символа конца файла. |
export -p [имя[=значение]] ... | Помечает указанные имена для автоматического экспорта в среду при
выполнении последующих команд.
-p выдает имена и значения всех экспортируемых переменных в следующем формате:
"export %s= %s\n", <имя> <значение> |
newgrp [Группа] | Аналогична команде exec/usr/bin/newgrp
[группа].
Примечание: Эта команда не возвращает управление в оболочку. |
readonly -p [имя[=значение]] ... | Помечает имена, указанные в параметре имя, как
неизменяемые. Указанные значения нельзя будет изменять в
дальнейшем.
-p выдает имена и значения всех экспортируемых переменных в следующем формате:
"export %s= %s\n", <имя> <значение> |
return [n] | Возвращает управление из текущей функции в сценарий, из которого она была вызвана. С помощью необязательного параметра n можно задать код возврата. Если параметр n не будет указан, то код возврата будет равен коду возврата последней выполненной команды. Вне функций и сценариев команда return равносильна команде exit. |
set [+ |-abCefhkmnostuvx ] [+ |-o опция]... [+ |-Aимя] [аргумент ...] | Если команда set указана без опций и аргументов, она выдает
список переменных среды в соответствии со списком упорядочения для текущей
локали. Если эта команда указана с какими-либо опциями, она задает или
отменяет соответствующие атрибуты оболочки. Если эта команда указана с
аргументами, она задает или отменяет позиционные параметры оболочки.
Ниже приведено описание флагов команды set:
|
| |
Если перед каким-либо флагом команды set будет указан символ
+ вместо символа -, то данный флаг будет
отключен. Все перечисленные флаги можно применять при запуске
оболочки. Текущий набор флагов хранится в параметре
$-. Если не будет указан флаг -A, то остальные
аргументы будут считаться позиционными параметрами и присвоены переменным
$1, $2 и т.д. Если не будет указан ни один
аргумент, то имена и значения всех именованных параметров будут направлены в
стандартный вывод.
| |
shift [n] | Переименовывает позиционные параметры, с $n+1 по $1. По умолчанию n равно 1. Для n допустимы любые арифметические выражения, результатом которых будет неотрицательное число, не превышающее значение параметра $#. |
times | Показывает общее время, которое заняло выполнение пользовательских и системных процессов в оболочке. |
trap [команда] [сигнал] ... | Выполняет указанную команду, когда оболочка получает один из
перечисленных сигналов. Параметр команда считывается один
раз при определении прерывания и еще один раз при его активизации. В
этой команде можно указывать как номера, так и имена сигналов. Команды
прерываний выполняются в соответствии с номерами сигналов. Любая
попытка задать прерывание (trap) по сигналу, проигнорированному при входе в
текущую оболочку, будет неудачной.
Если в качестве параметра команда будет указано значение -, то будут восстановлены исходные состояния всех прерываний. Если в команде trap не будет указана команда прерывания, то будут восстановлены первоначальные значения всех указанных сигналов.
Примечание: В этом случае первый из перечисленных сигналов должен быть задан по номеру, так как в противном случае команда trap интерпретирует его как команду прерывания.
Если для сигнала будет задано значение ERR, то указанная команда будет автоматически выполняться после любых команд с ненулевым кодом завершения. Если для сигнала будет задано значение DEBUG, то указанная команда будет выполняться после каждой команды. Если для сигнала будет задано значение 0 или EXIT, а команда trap будет выполняться в теле функции, то указанная команда будет выполнена после завершения этой функции. Если значение сигнала - 0 или EXIT, а команда trap будет выполняться вне функции, то указанная команда будет выполнена после выхода из оболочки. Команда trap без аргументов показывает список команд, связанных с каждым номером сигнала. Полный список сигналов, допустимых для команды trap без префикса SIG, приведен в разделе sigaction, sigvec или signal subroutine книги AIX 5L Version 5.1 Technical Reference: Base Operating System and Extensions Volume 2. |
typeset [+HLRZfilrtux [n]] [имя[=значение]] ... | Позволяет задавать атрибуты и значения параметров оболочки. Если
эта команда выполняется в теле функции, то она создает новый экземпляр
параметра имя. После завершения функции восстанавливаются
исходные тип и значение параметра. Команда typeset
поддерживает следующие флаги:
|
| |
unset [-fv ] имя ... | Аннулирует значения и атрибуты указанных параметров. Если при этом
будет указан флаг -v, то параметр имя считается именем
переменной, и эта переменная будет удалена из среды. С помощью этой
команды нельзя отменять неизменяемые переменные. Если вы сбросите
какую-либо из специальных переменных ERRNO, LINENO,
MAILCHECK, OPTARG, OPTIND, RANDOM,
SECONDS, TMOUT и _ (символ подчеркивания), то
она потеряет свое особое значение, даже если будет впоследствии
восстановлена.
Если будет указан флаг -f, то имя считается именем функции, и определение этой функции будет отменено. |
В оболочке Korn предусмотрены следующие обычные встроенные команды:
alias fg print ulimit
bg getopts pwd umask
cd jobs read unalias
command kill setgroups wait
echo let test whence
fc
alias [-t ] [-x ] [псевдоним[=строка]] ... | Создает или переопределяет псевдонимы, или отправляет текущий список
псевдонимов в стандартный вывод.
Более подробная информация приведена в описании команды alias книги AIX 5L Version 5.1 Commands Reference. |
bg [ИД-задания...] | Переключает указанные задания в фоновый режим. Если
ИД-задания не указан, то в фоновый режим переключается текущее
задание. Дополнительная информация об управлении заданием приведена в
разделе "Управление заданиями в оболочке Korn (POSIX)".
Дополнительная информация о выполнении заданий в фоновом режиме приведена в описании команды bg в книге AIX 5L Version 5.1 Commands Reference. |
cd [аргумент] | |
cdтекущий новый | Эту команду можно указывать в двух различных форматах. В первом
формате она делает текущим каталог, заданный командой
аргумент. Если в качестве аргумента указан символ
- , то текущим будет сделан предыдущий каталог. Если
аргумент не указан, вместо него подставляется значение переменной
оболочки HOME. После выполнения команды cd имя нового
текущего каталога присваивается переменной PWD.
Переменная оболочки CDPATH задает список каталогов, в которых выполняется поиск каталога, указанного в параметре аргумент. Имена каталогов в этой переменной разделяются символом : . По умолчанию переменная CDPATH не определена, и поиск указанного каталога выполняется в текущем каталоге. В переменной CDPATH текущий каталог обозначается пустым символом, поэтому чтобы добавить его в эту переменную, нужно указать в ней начальное двоеточие или два двоеточия подряд между какими-либо каталогами. Если имя каталога, в который нужно перейти, начинается с символа косой черты (/), то его поиск выполняется относительно корневого каталога. В противном случае поиск этого каталога выполняется в каталогах, перечисленных в переменной CDPATH, или в текущем каталоге, если эта переменная не определена. В противном случае поиск этого каталога выполняется в каталогах, перечисленных в переменной CDPATH, или в текущем каталоге, если эта переменная не определена. Во втором формате команда cd находит в значении переменной PWD (имя текущего каталога) строку текущий, заменяет ее на строку новый и пытается перейти в каталог с полученным именем. |
command [-p ] команда [аргумент ...] | |
command [-v | -V ] команда | Указанная команда будет интерпретирована как простая команда,
без поиска функций оболочки.
Более подробная информация приведена в описании команды command книги AIX 5L Version 5.1 Commands Reference. |
echo [строка ...] | Записывает строки символов в устройство стандартного вывода. Информация о применении и описание приведены в справке по команде echo. Флаг -n не поддерживается. |
fc [-r ] [-eредактор] [первый [последний]] | |
fc -l [-n ] [-r ] [первый [последний]] | |
fc -s [старый=новый] [первый] | Позволяет просматривать и изменять содержимое файла хронологии команд, а
также повторять введенные ранее команды.
Более подробная информация приведена в описании команды fc книги AIX 5L Version 5.1 Commands Reference. |
fg [ИД-задания] | Переключает указанные задания в интерактивный режим. Если ИД
задания не указан, то в интерактивный режим будет переключено текущее
задание.
Дополнительная информация о выполнении заданий в интерактивном режиме приведена в описании команды fg в книге AIX 5L Version 5.1 Commands Reference. |
getoptsопции имя [аргумент...] | Проверяет правильность опций в параметре аргумент.
Более подробная информация приведена в описании команды getopts книги AIX 5L Version 5.1 Commands Reference. |
jobs [-l | -n | -p ] [ИД-задания...] | Показывает состояние заданий, запущенных в среде текущей оболочки.
Если ИД-задания не указан, то выдается информация о состоянии всех
активных заданий. Учтите, что при завершении задания оболочка удаляет
ИД его процесса из списка активных заданий.
Более подробная информация приведена в описании команды jobs книги AIX 5L Version 5.1 Commands Reference. |
kill [ -s { имя-сигнала | номер-сигнала } ] ИД-процесса... | Передает сигнал (по умолчанию SIGTERM) выполняющемуся процессу. Как правило, это приводит к завершению процесса. Для того чтобы завершить процесс, укажите его ИД в параметре ИД-процесса. Оболочка передает ИД всех процессов, выполняющихся в фоновом режиме (кроме случая, когда процессы запущены конвейером - тогда выдается только номер последнего процесса). Для определения ИД процесса можно воспользоваться командой ps. |
kill [ -имя-сигнала | -номер-сигнала ] ИД-процесса... | |
kill -l [ состояние-завершения ] | Содержит список имен сигналов.
Более подробная информация приведена в описании команды kill книги AIX 5L Version 5.1 Commands Reference. |
letвыражение... | Вычисляет указанное арифметическое выражение. Если результат последнего полученного выражения отличен от 0, то код завершения команды let будет равен 0; в противном случае код завершения let будет равен 1. Дополнительная информация приведена в разделе "Арифметические вычисления в оболочке Korn (POSIX)". |
print [-Rnprsu [n]] [аргумент ...] | Направляет указанный аргумент в стандартный вывод оболочки. Если
эта команда будет указана без флагов или с одним из флагов минус
(-) и два минуса (--), то аргументы будут
направлены в стандартный вывод в том же формате, что и с помощью команды
echo. Остальные флаги выполняют следующие функции:
|
pwd В большинстве случаев равносильна команде print -r - $PWD. |
Примечание: Внутренняя команда pwd оболочки Korn не поддерживает символьные связи. |
read [-prsu [n ]] [имя?приглашение] [имя...] | Считывает входную информацию оболочки. Одна команда read считывает
одну строку и разделяет ее на поля в соответствии с тем, какие
символы-разделители указаны в переменной IFS.
Более подробная информация приведена в описании команды read книги AIX 5L Version 5.1 Commands Reference. |
setgroups | Выполняет команду /usr/bin/setgroups в отдельной оболочке. Более подробная информация приведена в описании команды setgroups. Отличие встроенной команды setgroups от внешней заключается в том, что встроенная команда выполняется в отдельной оболочке, а внешняя заменяет текущую оболочку. Поскольку встроенная команда поддерживается только для совместимости, в сценариях рекомендуется применять внешнюю команду и указывать ее абсолютное имя /usr/bin/setgroups. |
test [выражение] | То же, что и [выражение]. Информация о применении и описание приведены в разделе "Условные выражения в оболочке Korn (POSIX)". |
ulimit [-HSacdfmnst ] [ограничение] | Задает или показывает ограничения на ресурсы пользовательских процессов
из файла /etc/security/limits. В этом файле первоначально
установлены следующие шесть ограничений:
fsize = 2097151 core = 2048 cpu = 3600 data = 131072 rss = 65536 stack = 8192 Данные значения применяются по умолчанию при создании пользователя. Их можно изменить с помощью команды mkuser при создании или команды chuser при изменении пользователя. Все ограничения делятся на гибкие и жесткие. С помощью команды ulimit пользователи могут изменять свои гибкие ограничения в пределах от 0 до жестких ограничений. Жесткие ограничения может изменять только пользователь с правами доступа root. Во многих случаях не обязательно устанавливать все ограничения. Для того чтобы задать ограничения на конкретный тип ресурсов, нужно указать параметр ограничение. Параметр ограничение должен быть числом, допустимым для указанного типа ресурсов, или значением unlimited. Допустимы следующие флаги команды ulimit:
|
Для просмотра значения какого-либо ограничения нужно вызвать эту команду без параметра ограничение. По умолчанию выдается значение гибкого ограничения (с флагом -H - значение жесткого ограничения). При просмотре ограничений для нескольких типов ресурсов одновременно команда ulimit выдает перед каждым значением тип ресурсов, к которым оно относится. Если команда будет указана без опций, то будет считаться, что указана опция -f. Для того чтобы изменить только гибкое или только жесткое ограничение, укажите опцию -H или -S, так как по умолчанию и гибкое, и жесткое ограничение устанавливаются равными значению параметра ограничение. Дополнительная информация об ограничениях на пользовательские и системные
ресурсы приведена в разделе getrlimit,
setrlimit, or vlimit subroutine книги AIX 5L
Version 5.1 Technical Reference: Base Operating System and
Extensions Volume 1.
| |
umask [-S ] [маска] | Определяет права доступа к файлу. Это значение, совместно с
правами доступа создающего процесса, определяет права доступа к создаваемому
файлу. Значение по умолчанию: 022. Без параметра
маска команда umask выдает значение маски прав доступа, применяемое
в среде текущей оболочки.
Дополнительная информация о правах доступа к файлам приведена в описании команды umask в книге AIX 5L Version 5.1 Commands Reference. |
unalias { -a | Псевдоним... } | Отменяет указанные (или все, если задан флаг -a)
псевдонимы. Действие этой команды распространяется только на среду
текущей оболочки.
Более подробная информация приведена в описании команды unalias книги AIX 5L Version 5.1 Commands Reference. |
wait [ИД-процесса...] | Ожидает завершения указанного задания и завершается. Если ИД
процесса не указан, то команда wait будет ожидать завершения всех активных
подчиненных процессов. Состояние завершения этой команды равно
состоянию завершения указанного процесса.
Более подробная информация приведена в описании команды wait книги AIX 5L Version 5.1 Commands Reference. |
whence [-pv ] имя... | Указывает, как будет проинтерпретировано указанное имя, если оно будет
введено в качестве команды. Если в команде whence будет
указано только имя команды, то она выдаст полное имя этой команды.
|