Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: маркетинг, реклама, торговля" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Страницы справочного руководства ОС UNIX на русском : man ksh(1), часть седьмая
Информационный Канал Subscribe.Ru |
Выпуск 148
man ksh(1), часть седьмая
Уважаемые подписчики!
Это седьмой, предпоследний выпуск из серии, посвященной командному
интерпретатору ksh. Перевод, по сложившейся традиции, сделан
по справочному руководству ОС Solaris 8. Через неделю представлю
вам окончательный вариант, со всеми перекрестными ссылками.
И еще. Если кто-то очень хочет послушать "живьем" что-нибудь по тематике моих рассылок (UNIX, Oracle, Informix) в исполнении вот такого товарища

то не стесняйтесь, обращайтесь. Я готов проводить полуторачасовые семинары в Киеве в любой аудитории в любой день недели (это пока, до конца марта - потом могут появиться ограничения). Если мне покажется интересной тема, я с удовольствием выступлю в Киеве бесплатно. Если будет что сказать и показать, конечно... Предложения от жителей областных центров Украины и ближайшего зарубежья тоже принимаются. Вобщем, жду ваших писем на эту тему.
Продолжается описание специальных команд...
- set [±abCefhkmnopstuvx] [±o опция]... [±A имя] [аргумент...]
-
Флаги этой команды имеют следующие значения:
- -A
-
Присвоение массиву. Сбросить переменную имя и присвоить значения
последовательно из списка аргументов. Если использован флаг
+A, переменная имя первоначально не сбрасывается.
- -a
-
Все определенные в дальнейшем переменные автоматически экспортируются.
- -b
-
Требует от командного интерпретатора уведомлять пользователя асинхронно о
завершении фоновых заданий. В стандартный поток ошибок будет выдаваться следующее
сообщение:
"[%d]%c %s%s\n", <номер_задания>, <текущее>, <статус>, <имя_задания>
где поля имеют следующие значения:- <текущее>
-
Символ + идентифицирует задание, которое будет использоваться по умолчанию
для команд fg и bg; это задание также можно указать с помощью
идентификатора задания %+ или %%. Символ - идентифицирует
задание, которое стало бы используемым по умолчанию при завершении текущего;
это задание также можно указать с помощью идентификатора задания %-.
Для других заданий в этом поле выдается пробел. Не более одного задания может быть
помечено символом + и не более одного задания - знаком -.
Если есть приостановленное задание, приостановленное задание будет текущим.
Если есть не менее двух приостановленных заданий, то предыдущее задание
тоже будет приостановленным.
- <номер_задания>
-
Номер, который может использоваться для идентификации группы процессов для команд
wait, fg, bg и kill. При использовании этих команд
задание можно указать, предварив номер задания символом %.
- <статус>
-
Не определяется.
- <имя_задания>
- Не определяется.
Когда командный интерпретатор уведомляет пользователя о том, что задание завершено, он может удалить идентификатор процесса задания из своего списка известных в текущей среде выполнения. По умолчанию асинхронное уведомление не будет включено.
- -C
-
Предотвращает перезапись существующих файлов с помощью оператора перенаправления
командного интерпретатора, >; оператор перенаправления >|
будет переопределять эту опцию noclobber для отдельного файла.
- -e
-
Если команда имеет ненулевой статус выхода, выполнить обработчик сигнала ERR,
если он установлен, и завершить работу. Этот режим отключен при чтении профилей.
- -f
-
Отключает генерацию имен файлов.
- -h
-
Каждая команда при первом вводе становится отслеживаемым псевдонимом.
- -k
-
Все аргументы-присвоения переменным помещаются в среду для команды, а не только те,
что предшествуют имени команды.
- -m
-
Фоновые задания будут работать в отдельной группе процессов и при завершении будет
выдаваться строка. В сообщении о завершении будет выдаваться статус выхода
фоновых заданий. В системах, поддерживающих управление заданиями, этот флаг
автоматически устанавливается для интерактивных командных интерпретаторов.
- -n
-
Читать команды и проверять их на синтаксические ошибки, но не выполнять. Для
интерактивных командных интерпретаторов игнорируется.
- -o
-
Следующий аргумент может быть одной из опций:
- allexport
-
То же, что и опция -a.
- errexit
-
То же, что и опция -e.
- bgnice
-
Все фоновые задания запускаются с пониженным приоритетом. Это - стандартный
режим работы.
- emacs
-
Позволяет при вводе командной строки использовать команды в стиле редактора emacs.
- gmacs
-
Позволяет при вводе командной строки использовать команды в стиле редактора gmacs.
- ignoreeof
-
Командный интерпретатор не завершит работу при получении символа конца файла (EOF).
Надо использовать команду exit.
- keyword
-
То же, что и опция -k.
- markdirs
-
Ко всем именам каталогов, получающимся в результате генерации имен файлов,
добавляется завершающий символ /.
- monitor
-
То же, что и опция -m.
- noclobber
-
Предотвращает перезапись существующих файлов при перенаправлении с помощью >.
Если эта опция включена, для перезаписи файла требуется использовать >|.
Эквивалент опции -u.
- noexec
-
То же, что и опция -n.
- noglob
-
То же, что и опция -f.
- nolog
-
Не сохранять определения функций в файле истории.
- notify
-
Эквивалент опции -b.
- nounset
-
То же, что и опция -u.
- privileged
-
То же, что и опция -p.
- verbose
-
То же, что и опция -v.
- trackall
-
То же, что и опция -h.
- vi
-
Переводит в режим ввода в стиле редактора vi, пока вы не введете
управляющий символ 033 (клавиша Esc). Он переводит в управляющий режим.
Нажатие клавиши Enter посылает строку на выполнение.
- viraw
-
Каждый символ обрабатывается по мере ввода в режиме vi.
- xtrace
- То же, что и опция -x.
- -p
-
Отключает обработку файла $HOME/.profile и использует файл
/etc/suid_profile вместо файла ENV. Этот режим включен, когда
эффективный идентификатор пользователя не совпадает с реальным или когда
эффективный идентификатор группы не совпадает с реальным. Отключение
этой опции вызывает установку эффективных идентификаторов пользователя и группы
равным реальным.
- -s
-
Сортировать позиционные параметры лексикографически.
- -t
-
Выйти после чтения и выполнения одной команды.
- -u
-
Считать неустановленные параметры ошибкой при подстановке.
- -v
-
Выдавать входные строки командного интерпретатора по мере чтения.
- -x
-
Выдавать команды и их аргументы по мере выполнения.
- -
-
Отключает флаги -x и -v и останавливает проверку аргументов на
совпадение с флагами.
- --
- Не изменять никакие флаги; полезно для установки параметру $1 значения, начинающегося с -. Если после этого флага аргументов нет, позиционные параметры сбрасываются.
Использование + вместо - вызывает выключение этих флагов. Перечисленные флаги можно также указывать при вызове порожденного командного интерпретатора. Текущий набор флагов можно найти в $-. Если не установлен флаг -A, остальные аргументы считаются позиционными параметрами и присваиваются, последовательно, $1, $2...
- ...
- Если аргументы для команды не заданы, имена и значения всех переменных выдаются в стандартный выходной поток.
- * shift [n]
-
Позиционные параметры, начиная с $n+1..., переименовываются в $1...;
по умолчанию значение n - 1. Параметр n
может быть любым арифметическим выражением, которое вычисляется в неотрицательное
число меньше или равное $#.
- stop %идентификатор_задания...
stop идентификатор_процесса... -
Команда stop останавливает выполнение фоновых заданий с указанными идентификаторами
или любого процесса с указанным идентификатором.
(see ps(1)).
- suspend
-
Приостанавливает выполнение текущего командного интерпретатора (если только он не является
начальным).
- test выражение
-
Вычисляет условные выражения. См. описание использования в разделе
"Условные выражения" ранее и на странице справочного руководства test(1).
- * times
-
Выдает накопленные времена выполнения в пользовательском и системно режиме
для командного интерпретатора и всех запущенных из него процессов.
- * trap [аргумент сигнал...]
-
Аргумент - это команда (обработчик), которая читается и выполняется
при получении командным интерпретатором указанных сигналов. Аргумент
просматривается при выполнении команды trap и при получении сигнала.
Сигнал можно задать по номеру или по имени. Команды
trap выполняются в порядке номеров сигналов. Любая попытка задать обработчик
для номера сигнала, который игнорировался при входе в текущий командный интерпретатор,
не сработает.
Если указан аргумент -, командный интерпретатор сбросит обработчик каждого сигнала в стандартное значение. Если аргумент пустой (''), командный интерпретатор будет игнорировать все указанные сигналы при их получении. В противном случае, аргумент будет читаться и выполняться командным интерпретатором при получении одного из соответствующих сигналов. Указанное в команде trap действие (обработчик) будет переопределять предыдущее действие (будь-то стандартное или явно установленное). После завершения действия значение $? будет таким же, как и перед вызовом обработчика.
В качестве сигнала можно указывать EXIT, 0 (эквивалентно EXIT) или имя сигнала без префикса SIG, например, HUP, INT, QUIT, TERM. Если сигнал имеет значение 0 или EXIT и команда trap выполняется в теле функции, то команда аргумент выполняется после завершения функции. Если указан сигнал 0 или EXIT в команде trap вне функции, команда аргумент выполняется при выходе из командного интерпретатора. Если указан сигнал ERR, аргумент будет выполняться каждый раз, когда какая-то команда завершится с ненулевым статусом выхода. Если указан сигнал DEBUG, аргумент будет выполняться после каждой команды.
Среда, в которой командный интерпретатор выполняет обработчик сигнала EXIT, будет идентичной среде сразу после выполнения последней команды и до срабатывания обработчика сигнала EXIT.
При каждом вызове обработчика аргумент будет обрабатываться как в команде:
eval "$аргумент"
Сигналы, игнорировавшиеся при входе в неинтерактивный командный интерпретатор, не могут быть перехвачены или переустановлены, хотя при попытке сделать это никакое сообщение об ошибке выдавать не нужно. Интерактивный командный интерпретатор может переустанавливать или перехватывать сигналы, игнорируемые при входе. Обработчики будут действовать в данном командном интерпретаторе, пока не будут явно изменены другой командой trap.
При входе в порожденный командный интерпретатор обработчики устанавливаются в стандартные значения. Это не означает, что команду trap нельзя использовать в порожденном командном интерпретаторе для установки новых обработчиков.
Команда trap без аргументов будет выдавать в стандартный выходной поток список команд, ассоциированных с каждым сигналом. При этом используется следующий формат:
trap -- %s %s... <аргумент>, <сигнал>...
Командный интерпретатор будет форматировать результат, включая правильную расстановку кавычек, так, что он подходит для повторного ввода в командном интерпретаторе в качестве команд, задающих те же перехватчики. Например:
save_traps=$(trap) ... eval "$save_traps"
Если указанное имя или номер сигнала недопустимы, будет возвращен ненулевой статус выхода; иначе возвращается 0. Как для интерактивных, так и для неинтерактивных командных интерпретаторов недопустимые имена или номера сигналов не считаются синтаксической ошибкой и не вызовут аварийного прекращения работы командного интерпретатора.
Обработчики не выполняются, пока задание ждет завершения приоритетного процесса. Таким образом, обработчик сигнала CHLD не будет выполнен, пока не завершится работа приоритетного задания.
- type имя...
-
Для каждого имени показывать, как оно будет интерпретироваться
при указании в качестве имени команды.
- ** typeset [±HLRZfilrtux[n]] [имя[=значение]]...
-
Устанавливает атрибуты и значения для переменных и функций командного интерпретатора.
Когда команда typeset вызывается в функции, создается новый экземпляр
каждой переменной имя. Значения и типы переменных восстанавливаются
при завершении выполнения функции. Можно задавать атрибуты из следующего списка:
- -H
-
Этот флаг обеспечивает сопоставление имен файлов UNIX файлам хоста на не-UNIX машинах.
- -L
-
Выравнивать влево и удалять начальные пробелы из значения. Если n -
не ноль, оно определяет ширину столбца; в противном случае, она определяется
по размеру первого присвоенного значения. При присвоении значения переменной,
оно дополняется справа пробелами или усекается, при необходимости, чтобы поместиться
в поле. Начальные нули удаляются, если установлен также флаг -Z. Флаг
-R отключается.
- -R
-
Выравнивать вправо и дополнять значение начальными пробелами. Если n -
не ноль, оно определяет ширину столбца; в противном случае, она определяется
по размеру первого присвоенного значения. При присвоении значения переменной,
оно дополняется слева пробелами или усекается, при необходимости, чтобы поместиться
в поле. Флаг -L отключается.
- -Z
-
Выравнивать вправо и заполнять начальными нулями, если первый непробельный
символ - цифра и флаг -L не установлен. Если n -
не ноль, оно определяет ширину столбца; в противном случае, она определяется
по размеру первого присвоенного значения.
- -f
-
Имена задают функции, а не переменные. Присвоения им невозможны
и допускаются только флаги -t, -u и -x. Флаг -t
включает трассировку выполнения для данной функции. Флаг -u вызывает
пометку этой функции как неопределенной. Переменная FPATH будет
просматриваться в поисках определения функции при ссылке на нее. Флаг
-x позволяет использовать определение функции при вызове процедур
командного интерпретатора по имени.
- -i
-
Параметр - целочисленный. Это ускоряет выполнение арифметических операций.
Если n - не ноль, она задает основание системы счисления;
в противном случае система счисления для выдачи значения определяется по
первому присвоенному значению.
- -l
-
Все символы верхнего регистра переводятся в нижний регистр. Флаг верхнего
регистра, -u, сбрасывается.
- -r
-
Указанные имена помечаются как доступные только для чтения и
их значения нельзя будет изменить в дальнейшем с помощью присвоений.
- -t
-
Помечает переменные тегами. Теги определяет пользователь и они не имеют
специального значения для командного интерпретатора.
- -u
-
Все символы нижнего регистра переводятся в верхний регистр. Флаг нижнего
регистра, -l, сбрасывается.
- -x
- Указанные имена помечаются для автоматического экспорта в среду выполняемых в дальнейшем команд.
Атрибут -i нельзя задавать вместе с -R, -L, -Z, или -f.
Использование + вместо - вызывает сброс этих флагов. Если имена не заданы, но флаги есть, выдается список имен переменных (и, опционально, их значений), для которых эти флаги установлены. (Использование + вместо - не позволяет выдавать значения.) Если не заданы ни имена, ни флаги, выдаются имена и атрибуты всех переменных.
- ulimit [-HSacdfnstv] [ограничение]
-
Установить или выдать ограничение ресурсов. Ресурсы, которые можно ограничивать,
перечислены ниже. Многие системы не позволяют задавать некоторые из
этих ограничений. Ограничение указанного ресурса устанавливается, когда
задан параметр ограничение. Ограничение может быть
числом в единицах, указанных для каждого ресурса ниже, или значением
unlimited. Флаги H и S задают, устанавливается ли
для данного ресурса жесткое или мягкое ограничение. Жесткое ограничение, если
установлено, не может быть превышено. Мягкое ограничение может быть превышено,
вплоть до соответствующего жесткого ограничения. Если не указано ни H, ни
S, задаются оба ограничения. Если ограничение не указано,
выдается текущее ограничение.
В этом случае выдается мягкое ограничение, если явно не указана опция H. Если указано более одного ресурса, то перед каждым значением выдается имя и единица измерения.
- -a
-
Выдает все текущие ограничения ресурсов.
- -c
-
Максимальный размер дампов памяти в блоках по 512 байтов.
- -d
-
Ограничение, в Кбайтах, на размер области данных.
- -f
-
Максимальное количество 512-байтовых блоков в файлах, записываемых порожденными
процессами (читать можно файлы любого размера).
- -n
-
Количество дескрипторов файлов плюс 1.
- -s
-
Ограничение, в Кбайтах, на размер области стека.
- -t
-
Количество секунд процессорного времени, которые может использовать каждый процесс.
- -v
- Размер виртуальной памяти, в Кбайтах.
Если опции не указаны, предполагается опция -f.
- umask [-S] [маска]
-
Пользовательская маска создания файла устанавливается равной указанной маске
(см. umask(2)). Маску можно задавать в виде восьмеричного
числа или в символьном виде, как описано на странице справочного руководства chmod(1).
Если указано символьное значение, новое значение umask является
дополнением к результату применения маски к дополнению предыдущего
значения umask. Если маска не указана, выдается текущее значение
маски. Флаг -S приводит к выдаче маски в символьном виде.
- unalias имя...
-
Указанные в списке имен псевдонимы удаляются из списка псевдонимов.
- unset [-f] имя...
-
Указанные в списке имен переменные теряют значения, т.е.
их значения и атрибуты удаляются. Переменные, доступные только для
чтения, нельзя сбросить с помощью unset. Если установлен флаг -f,
то имена считаются именами функций. Сброс переменных ERRNO,
LINENO, MAILCHECK, OPTARG, OPTIND, RANDOM,
SECONDS, TMOUT и _ лишает их специального смысла,
даже если им в дальнейшем присваиваются значения.
- * wait [задание]
-
Ждать завершения указанного задания и сообщать о его статусе
завершения. Если задание не указано, командный интерпретатор
ждет завершения всех активных на момент выполнения этой команды порожденных
процессов. Статус выхода этой команды совпадает со статусов выхода процесса,
завершения которого ждали. Описание и формат задания см. в разделе
"Задания".
- whence [-pv] имя...
-
Для каждого имени показать, как оно будет интерпретироваться
при указании в качестве имени команды.
Флаг -v выдает более подробный отчет.
Флаг -p требует искать указанное имя по путям, даже если это имя является псевдонимом, функцией или зарезервированным словом.
Copyleft (no c) 2005 В. Кравчук, OpenXS Initiative, перевод на русский язык
В следующем выпуске
Завершающая часть перевода страницы справочного руководства ksh(1). Далее по плану долгой и счастливой жизни рассылки - перевод man smb.conf(5). А еще мне нравится идея перевести страницу справочного руководства по командному интерпретатору zsh. Чтобы достойно завершить свои труды по распространению информации о shell-ах среди широких народных масс.
С наилучшими пожеланиями,
В.К.
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.othos.unixman |
Отписаться |
В избранное | ||