esh

Встраиваемый командный интерпретатор

Синтаксис:

esh [-c команда] [-irv] [файл_сценария]

Опции:

-c команда
Выполнить данную команду.
-i
Перейти в интерактивный режим после выполнения файла сценария. Если эта опция не указана, утилита esh завершает работу после выполнения сценария.
-r
Запустить в ограниченном режиме. В этом режиме выполнение определенных операций не допускается. При попытке выполнения недопустимой операции появится сообщение об ошибке "Operation not permitted" ("Операция запрещена").

Недопустимые операции включают выполнение исполняемых файлов, начинающихся с косой черты, экспорт переменных и перенаправление стандартных потоков ввода, вывода и ошибок на другое устройство. Для получения дополнительной информации см. "Формат командной строки" и "Встроенные команды."
-v
Вывести расширенную информацию. Выводить каждую команду на экран перед выполнением.
файл_сценария
Файл, содержащий выполняемые команды командного интерпретатора.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита esh предоставляет подмножество функциональных возможностей, втсречающихся в стандартном командном интерпретаторе, /bin/sh. Использовать утилиту esh целесообразно в ситуациях, когда объем памяти ограничен. Например, ее можно использовать для выполнения простого файла инициализации встраиваемой системы.

Формат командной строки

В утилите esh для командной строки используется следующий формат:

команда аргумент1 аргумент2 ... [оператор-перенаправления файл] [&]

где:

команда
Выполняемая команда. Если команда начинается не с косой черты, то для нее используется путь, указанный в переменной среды PATH. В ограниченном режиме команда не может начинаться с косой черты.
оператор-перенаправления файл
Оператор перенаправления. При вызове команды в ее окружении устанавливаются три стандартных файла. Эти файлы, стандартный поток ввода, стандартный поток вывода и стандартный поток ошибок ( stdin, stdout, stderr), обычно присоединены к активному терминалу. Стандартные потоки ввода, вывода и ошибок команды можно перенаправить следующим образом:
Значение Результат
<файл Перенаправить стандартный поток ввода из этого файла.
>файл Перенаправить стандартный поток вывода в этот файл. Если файл существует, он перезаписывается; если файл не существует, он создается.
>>файл Перенаправить стандартный поток вывода в этот файл. Если файл существует, информация присоединяется в конец файла; если файл не существует, он создается.
2>файл То же, что и >файл, но для стандартного потока ошибок.
2>>файл То же, что и >>файл, но для стандартного потока ошибок.
& Если команда содержит не выделенный кавычками символ &, то утилита esh не ожидает завершения выполнения команды, а немедленно переходит к обработке следующей команды. Стандартный поток ввода команды перенаправляется из /dev/null, и сигналы SIGINT и SIGQUIT игнорируются.

Раскрытие шаблонов имен файлов

Большинство команд используется для тех или иных манипуляций с файлами. Соответственно, для утилиты esh предусмотрено "условное обозначение" имени файла (состоящее из знаков *, ?, [ и ]), которое можно использовать для определения файлов, которые должна обрабатывать команда. Это же условное обозначение используется и стандартным командным интерпретатором. Для получения дополнительной информации см. "Шаблоны имен файлов" в ksh.

Выделение специальных символов

Следующие символы имеют в утилите esh специальное значение:

& \ " * ? [ space

Выделение специальных символов кавычками используется для подавления специального значения этих символов и сохранения их прямого значения.

Заключение последовательности в двойные кавычки используется для выделения последовательности символов или слов. Для выделения одиночного символа используются двойные кавычки или символ начала управляющей последовательности (\) перед требуемым символом.

Символ начала управляющей последовательности (обратная косая черта)

Символ начала управляющей последовательности (\) сохраняет непосредственное значение следующего символа. Получить одиночный символ обратной косой черты при помощи экранирования специального символа \ двойными кавычками невозможно. Для получения символа обратной косой черты следует ввести \\.

Двойные кавычки

Заключение символов и слов в двойные кавычки ("") сохраняет прямое значение всех находящихся внутри двойных кавычек символов, за исключением символа \. Пример.

"ab cd"

представляет один пятизначный аргумент.

Прямое значение двойных кавычек можно сохранить с помощью символа \. Пример.

ab\"cd

представляет один пятизначный аргумент ab"cd.

Встроенные команды

Следующие команды являются встроенными в esh (т.е. утилита esh интерпретирует и выполняет их внутренними средствами):

Команда . (точка)
Команда alias
Команда cd
Команда emount
Команда ewaitfor
Команда exec
Команда exit
Команда export
Команда kill
Команда reopen
Команда set
Команда unset

Команда . (точка)

. файл

Команда . (точка) считывает и выполняет команды из файл в текущем окружении. Путь поиска, содержащийся в переменной среды PATH, используется для поиска каталога, который содержит файл. Для работы этой команды не требуется, чтобы файл был исполняемым.

Команда alias

alias [имя=значение]...

Без аргументов команда alias выводит список всех псевдонимов и их значений. Если указано только имя, выводится его значение. Любое имя, указанное со значением, определяет псевдоним.

Замена псевдонима выполняется, если первым словом оператора является определенный псевдоним, кроме тех случаев, когда этот псевдоним уже заменен.

Вывод списка всех псевдонимов:

alias

Удаление псевдонима:

alias имя=

Команда cd

cd [каталог]

Изменить рабочий каталог текущей среды выполнения. Если каталог не указан, значение переменной среды HOME становится новым рабочим каталогом.

Команда emount

emount специальное_устройство каталог [тип_фс]

Монтировать специальное устройство. Аргументы:

специальное_устройство
Имя специального устройства.
точка_монтирования
Место монтирования устройства в системе.
тип
Тип монтируемых файловой системы или менеджера:
Тип: Файловая система или менеджер:
cd fs-cd.so
cifs fs-cifs
dos fs-dos.so
ext2 fs-ext2.so
mac fs-mac.so
nfs fs-nfs2, fs-nfs3
nt fs-nt.so
qnx4 (по умолчанию) fs-qnx4.so
qnx6 fs-qnx6.so
udf fs-udf.so

Команда ewaitfor

ewaitfor путь [макс_секунд [задержка]]

Ждать создания данного пути. Аргументы:

путь
Проверяемый путь.
макс_секунд
Максимальное количество секунд ожидания появления файла. Значение по умолчанию – 1 секунда.
задержка
Количество миллисекунд ожидания между попытками. Значение по умолчанию – 100 мсек.

Команда exec

exec [команда [аргумент...]]

Выполнить команду и/или манипулировать дескрипторами файлов.

Командой exec открываются, закрываются и копируются дескрипторы файлов в соответствии с указанными перенаправлениями ввода-вывода, представленными как часть аргумента аргумент. Если команда указана, она порождается в качестве замены для утилиты esh. Любые указанные аргументы передаются порожденному процессу.

Если утилита esh работает в ограниченном режиме (-r), то возможность использования команды exec для запуска команды, путь которой начинается с косой черты, отсутствует.

Команда exit

exit [n]

Вызвать завершение утилиты esh со статусом завершения n. Если n не указано, то утилита esh завершается со статусом последней выполненной команды.

Команда export

export имя[=слово]... export -p

Отметить экспортируемые переменные среды. Таким образом, они находятся в среде выполняемых в дальнейшем команд. Если указана опция -p, то имена и значения всех экспортированных переменных записываются в стандартный поток вывода.

Если установлен ограниченный режим (-r), использование этой команды невозможно.

Команда kill

kill идентификатор_процесса

Установить сигнал SIGTERM для процесса с идентификатором процесса идентификатор_процесса.

Команда reopen

reopen [устройство]

Закрыть стандартные потоки ввода, вывода и ошибок и присоединить их к указанному устройству. Эта команда часто используется в сценариях запуска. Если устройство не указано, то используется /dev/con1.

Если установлен ограниченный режим (-r), использование этой команды невозможно.

Команда set

set -v

Активировать режим вывода расширенной информации; перед выполнением все команды выводятся в стандартный поток вывода.

Команда unset

unset переменная

Сбросить указанную переменную. Если установлен ограниченный режим (-r), использование этой команды невозможно.

Примеры:

Вызов порожденного командного интерпретатора:

esh

Вызов порожденного командного интерпретатора с файлом сценария:

esh /etc/backup

Выполнение следующей команды и завершение работы:

esh -c "ls /bin"

Файлы:

/etc/esh
Текстовый файл ASCII, содержащий команды командного интерпретатора, выполняется при запуске утилиты esh в качестве начального командного интерпретатора.

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

HOME
Путевое имя основного каталога пользователя.
LOGNAME
Регистрационное имя пользователя в системе (см. login)
PATH
Путь к каталогам, используемый утилитой esh для поиска исполняемых программ и сценариев командного интерпретатора esh. Для изменения переменной среды PATH необходимо использовать команду export.

Если переменная среды PATH при вызове утилиты esh отсутствует в существующем окружении, для нее устанавливается значение /bin:/usr/bin. Для получения дополнительной информации об установке переменной среды PATH см. "Setting PATH and LD_LIBRARY_PATH" ("Установка переменных PATH и LD_LIBRARY_PATH") в главе «Конфигурирование среды» документа «Руководство системного программиста (администратора)» КПДА.10964-01.
SHELL
Путевое имя предпочтительного командного интерпретатора пользователя.
TERM
Тип терминала.
TMPDIR
Имя каталога для создания временных файлов утилит.
TZ
Установка часового пояса.

Предостережения:

Текущая версия утилиты esh удаляет одинарные кавычки ('), в результате чего многие команды, такие как find, невозможно использовать обычным способом.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

sh, fesh, ksh, uesh




Предыдущий раздел: Утилиты