|
@@ -67,11 +67,11 @@ Klish имеет два типа плугинов. Плугины для заг
|
|
команд (директория plugins/ в дереве исходных кодов).
|
|
команд (директория plugins/ в дереве исходных кодов).
|
|
|
|
|
|
Для настройки параметров сервера используется конфигурационный файл
|
|
Для настройки параметров сервера используется конфигурационный файл
|
|
-'/etc/klish/klishd.conf'. Альтернативный конфигурационный файл можно указать при
|
|
|
|
|
|
+`/etc/klish/klishd.conf`. Альтернативный конфигурационный файл можно указать при
|
|
запуске сервера klishd.
|
|
запуске сервера klishd.
|
|
|
|
|
|
Для настройки параметров клиента используется конфигурационный файл
|
|
Для настройки параметров клиента используется конфигурационный файл
|
|
-'/etc/klish/klish.conf'. Альтернативный конфигурационный файл можно указать при
|
|
|
|
|
|
+`/etc/klish/klish.conf`. Альтернативный конфигурационный файл можно указать при
|
|
запуске клиента klish.
|
|
запуске клиента klish.
|
|
|
|
|
|
|
|
|
|
@@ -89,9 +89,9 @@ Klish имеет два типа плугинов. Плугины для заг
|
|
Остальные плугины переводят внешние представление в ischeme, а klish
|
|
Остальные плугины переводят внешние представление в ischeme, а klish
|
|
обрабатывает ischeme внутренними механизмами.
|
|
обрабатывает ischeme внутренними механизмами.
|
|
|
|
|
|
-Установленные плугины dbs находятся в '/usr/lib/klish/dbs' (если конфигурировать
|
|
|
|
-сборку с --prefix=/usr). Их имена 'kdb-<имя>.so', например
|
|
|
|
-'/usr/lib/klish/dbs/kdb-libxml2.so'.
|
|
|
|
|
|
+Установленные плугины dbs находятся в `/usr/lib/klish/dbs` (если конфигурировать
|
|
|
|
+сборку с --prefix=/usr). Их имена `kdb-<имя>.so`, например
|
|
|
|
+`/usr/lib/klish/dbs/kdb-libxml2.so`.
|
|
|
|
|
|
|
|
|
|
## Плугины исполняемых функций
|
|
## Плугины исполняемых функций
|
|
@@ -119,9 +119,9 @@ shell скрипты, но и скрипты на других интерпре
|
|
используется интерпретатор shell.
|
|
используется интерпретатор shell.
|
|
|
|
|
|
Пользователи могут писать свои плугины и использовать собственные символы в
|
|
Пользователи могут писать свои плугины и использовать собственные символы в
|
|
-командах klish. Установленные плугины находятся в '/usr/lib/klish/plugins'
|
|
|
|
-(если конфигурировать сборку с --prefix=/usr). Их имена 'kplugin-<имя>.so',
|
|
|
|
-например '/usr/lib/klish/plugins/kplugin-script.so'.
|
|
|
|
|
|
+командах klish. Установленные плугины находятся в `/usr/lib/klish/plugins`
|
|
|
|
+(если конфигурировать сборку с --prefix=/usr). Их имена `kplugin-<имя>.so`,
|
|
|
|
+например `/usr/lib/klish/plugins/kplugin-script.so`.
|
|
|
|
|
|
Символы бывают "синхронные" и "асинхронные". Синхронные символы исполняются
|
|
Символы бывают "синхронные" и "асинхронные". Синхронные символы исполняются
|
|
в адресном пространстве klishd, для асинхронных порождается отдельный процесс.
|
|
в адресном пространстве klishd, для асинхронных порождается отдельный процесс.
|
|
@@ -160,12 +160,12 @@ VIEW, определенный внутри другого VIEW добавляе
|
|
VIEW. Можно определить VIEW со "стандартными" командами и включать ссылку на
|
|
VIEW. Можно определить VIEW со "стандартными" командами и включать ссылку на
|
|
этот VIEW в другие VIEW, где требуются эти команды, не переопределяя их заново.
|
|
этот VIEW в другие VIEW, где требуются эти команды, не переопределяя их заново.
|
|
|
|
|
|
-В XML файлах конфигурации для объявления VIEW используется тег 'VIEW'.
|
|
|
|
|
|
+В XML файлах конфигурации для объявления VIEW используется тег `VIEW`.
|
|
|
|
|
|
|
|
|
|
### Команды и параметры
|
|
### Команды и параметры
|
|
|
|
|
|
-Команды (тег 'COMMAND') могут иметь параметры (тег 'PARAM'). Команда определяется
|
|
|
|
|
|
+Команды (тег `COMMAND`) могут иметь параметры (тег `PARAM`). Команда определяется
|
|
внутри какого-либо VIEW и пренадлежит ему. Параметры определяются внутри команды
|
|
внутри какого-либо VIEW и пренадлежит ему. Параметры определяются внутри команды
|
|
и, в свою очередь, принадлежат ей. Команда может состоять только из одного слова,
|
|
и, в свою очередь, принадлежат ей. Команда может состоять только из одного слова,
|
|
в отличие от команд в klish предыдущих версий. Если нужно определить многословную
|
|
в отличие от команд в klish предыдущих версий. Если нужно определить многословную
|
|
@@ -195,13 +195,13 @@ VIEW. Можно определить VIEW со "стандартными" ко
|
|
### Тип параметра
|
|
### Тип параметра
|
|
|
|
|
|
Тип параметра определяет допустимые значения этого параметра. Обычно типы
|
|
Тип параметра определяет допустимые значения этого параметра. Обычно типы
|
|
-определяются отдельно с помощью тега 'PTYPE', а параметр ссылается на определенный
|
|
|
|
|
|
+определяются отдельно с помощью тега `PTYPE`, а параметр ссылается на определенный
|
|
тип по его имени. Также тип может быть определен прямо внутри параметра, но это
|
|
тип по его имени. Также тип может быть определен прямо внутри параметра, но это
|
|
не типичный случай, т.к. стандартными типами удается покрыть большую часть
|
|
не типичный случай, т.к. стандартными типами удается покрыть большую часть
|
|
потребностей.
|
|
потребностей.
|
|
|
|
|
|
Тип PTYPE, как и команда, выполняет определенное действие, заданное тегом
|
|
Тип PTYPE, как и команда, выполняет определенное действие, заданное тегом
|
|
-'ACTION'. Действие, заданное для типа, проверяет введенное оператором значение
|
|
|
|
|
|
+`ACTION`. Действие, заданное для типа, проверяет введенное оператором значение
|
|
параметра и возвращает результат - успех или ошибка.
|
|
параметра и возвращает результат - успех или ошибка.
|
|
|
|
|
|
|
|
|
|
@@ -209,7 +209,7 @@ VIEW. Можно определить VIEW со "стандартными" ко
|
|
|
|
|
|
Каждая команда должна определять действие, выполняемое при вводе этой команды
|
|
Каждая команда должна определять действие, выполняемое при вводе этой команды
|
|
оператором. Действие может быть одно, либо несколько действий для одной команды.
|
|
оператором. Действие может быть одно, либо несколько действий для одной команды.
|
|
-Действие объявляется тегом 'ACTION' внутри команды. В ACTION указывается ссылка
|
|
|
|
|
|
+Действие объявляется тегом `ACTION` внутри команды. В ACTION указывается ссылка
|
|
на символ (функцию) из плугина функций, которая будет исполнена в данном случае.
|
|
на символ (функцию) из плугина функций, которая будет исполнена в данном случае.
|
|
Все данные внутри тега ACTION доступны символу. Символ по своему усмотрению может
|
|
Все данные внутри тега ACTION доступны символу. Символ по своему усмотрению может
|
|
использовать эту информацию. В качестве данных, например, может быть задан
|
|
использовать эту информацию. В качестве данных, например, может быть задан
|
|
@@ -229,16 +229,16 @@ VIEW. Можно определить VIEW со "стандартными" ко
|
|
### Фильтры
|
|
### Фильтры
|
|
|
|
|
|
Фильтры представляют собой команды, которые обрабатывают вывод других команд.
|
|
Фильтры представляют собой команды, которые обрабатывают вывод других команд.
|
|
-Фильтр может быть указан в командной строке после основной команды и знака '|'.
|
|
|
|
|
|
+Фильтр может быть указан в командной строке после основной команды и знака `|`.
|
|
Фильтр не может быть самостоятельной командой и использоваться без основной
|
|
Фильтр не может быть самостоятельной командой и использоваться без основной
|
|
-команды. Примером типичного фильтра может служить аналог UNIX утилиты 'grep'.
|
|
|
|
-Фильтры могут использоваться один за другим, с разделителем '|', как это
|
|
|
|
|
|
+команды. Примером типичного фильтра может служить аналог UNIX утилиты `grep`.
|
|
|
|
+Фильтры могут использоваться один за другим, с разделителем `|`, как это
|
|
делается в shell.
|
|
делается в shell.
|
|
|
|
|
|
Если команда не является фильтром, то она не может использоваться после символа
|
|
Если команда не является фильтром, то она не может использоваться после символа
|
|
-'|'.
|
|
|
|
|
|
+`|`.
|
|
|
|
|
|
-Фильтр задается в файлах конфигурации с помощью тега 'FILTER'.
|
|
|
|
|
|
+Фильтр задается в файлах конфигурации с помощью тега `FILTER`.
|
|
|
|
|
|
|
|
|
|
### Контейнеры параметров
|
|
### Контейнеры параметров
|
|
@@ -267,10 +267,10 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
### Приглашения командной строки
|
|
### Приглашения командной строки
|
|
|
|
|
|
Для формирования приглашения командной строки, которую видит оператор,
|
|
Для формирования приглашения командной строки, которую видит оператор,
|
|
-используется конструкция 'PROMPT'. Тег PROMPT должен быть вложен внутрь VIEW.
|
|
|
|
|
|
+используется конструкция `PROMPT`. Тег PROMPT должен быть вложен внутрь VIEW.
|
|
Разные VIEW могут иметь разные приглашения. Т.е. в зависимости от текущего
|
|
Разные VIEW могут иметь разные приглашения. Т.е. в зависимости от текущего
|
|
пути, оператор видит разное приглашение. Приглашение может быть динамическим
|
|
пути, оператор видит разное приглашение. Приглашение может быть динамическим
|
|
-и генерироваться действиями 'ACTION', заданными внутри PROMPT.
|
|
|
|
|
|
+и генерироваться действиями `ACTION`, заданными внутри PROMPT.
|
|
|
|
|
|
|
|
|
|
### Автодополнение и подсказки
|
|
### Автодополнение и подсказки
|
|
@@ -278,10 +278,10 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
Для удобства работы оператора для команд и параметров могут быть реализованы
|
|
Для удобства работы оператора для команд и параметров могут быть реализованы
|
|
подсказки и автодополнение. Подсказки (help), поясняющие предназначение и
|
|
подсказки и автодополнение. Подсказки (help), поясняющие предназначение и
|
|
формат возможных параметров, отображаются в клиенте klish по нажатию клавиши
|
|
формат возможных параметров, отображаются в клиенте klish по нажатию клавиши
|
|
-'?'. Список возможных дополнений печатается при нажатии оператором клавиши 'Tab'.
|
|
|
|
|
|
+`?`. Список возможных дополнений печатается при нажатии оператором клавиши `Tab`.
|
|
|
|
|
|
Для задания подсказок и списка возможных дополнений в конфигурации используются
|
|
Для задания подсказок и списка возможных дополнений в конфигурации используются
|
|
-теги 'HELP' и 'COMPL'. Эти теги должны быть вложенными относительно
|
|
|
|
|
|
+теги `HELP` и `COMPL`. Эти теги должны быть вложенными относительно
|
|
соответствующих команд и параметров. Для простоты подсказки для параметра или
|
|
соответствующих команд и параметров. Для простоты подсказки для параметра или
|
|
команды могут быть заданы аттрибутом основного тега, если подказка является
|
|
команды могут быть заданы аттрибутом основного тега, если подказка является
|
|
статическим текстом и ее не нужно генерировать. Если подсказка динамическая, то
|
|
статическим текстом и ее не нужно генерировать. Если подсказка динамическая, то
|
|
@@ -293,16 +293,16 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
### Условный элемент
|
|
### Условный элемент
|
|
|
|
|
|
Команды и параметры могут быть скрыты от оператора на основании динамических
|
|
Команды и параметры могут быть скрыты от оператора на основании динамических
|
|
-условий. Условие задается с помощью тега 'COND', вложенного внутрь
|
|
|
|
|
|
+условий. Условие задается с помощью тега `COND`, вложенного внутрь
|
|
соответствующей команды или параметра. Внутри COND находятся одно или несколько
|
|
соответствующей команды или параметра. Внутри COND находятся одно или несколько
|
|
-действий ACTION. Если код возврата ACTION '0', т.е. успех, то параметр доступен
|
|
|
|
|
|
+действий ACTION. Если код возврата ACTION `0`, т.е. успех, то параметр доступен
|
|
оператору. Если ACTION вернули ошибку, то элемент будет скрыт.
|
|
оператору. Если ACTION вернули ошибку, то элемент будет скрыт.
|
|
|
|
|
|
|
|
|
|
### Плугин
|
|
### Плугин
|
|
|
|
|
|
Процесс klishd загружает не все существующие плугины функций подряд, а только
|
|
Процесс klishd загружает не все существующие плугины функций подряд, а только
|
|
-те, которые указаны в конфигурации с помощью тега 'PLUGIN'. Данные внутри тега
|
|
|
|
|
|
+те, которые указаны в конфигурации с помощью тега `PLUGIN`. Данные внутри тега
|
|
могут интерпретироваться функцией инициализации плугина по своему усмотрению,
|
|
могут интерпретироваться функцией инициализации плугина по своему усмотрению,
|
|
в частности, как конфигурация для плугина.
|
|
в частности, как конфигурация для плугина.
|
|
|
|
|
|
@@ -310,7 +310,7 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
### Горячие клавиши
|
|
### Горячие клавиши
|
|
|
|
|
|
Для удобства оператора в конфигурации команд klish могут быть заданы "горячие
|
|
Для удобства оператора в конфигурации команд klish могут быть заданы "горячие
|
|
-клавиши". Тег для задания горячих клавиш - 'HOTKEY'. Список горячих клавиш
|
|
|
|
|
|
+клавиши". Тег для задания горячих клавиш - `HOTKEY`. Список горячих клавиш
|
|
передается сервером klishd клиенту. Клиент на свое усмотрение использует эту
|
|
передается сервером klishd клиенту. Клиент на свое усмотрение использует эту
|
|
информацию или не использует. Например для клиента автоматизированного управления
|
|
информацию или не использует. Например для клиента автоматизированного управления
|
|
информация о горячих клавишах не имеет смысла.
|
|
информация о горячих клавишах не имеет смысла.
|
|
@@ -327,8 +327,8 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
|
|
|
|
### KLISH
|
|
### KLISH
|
|
|
|
|
|
-Любой XML файл с конфигурацией klish должен начинаться открывающим тегом 'KLISH'
|
|
|
|
-и заканчиваться закрывающим тегом 'KLISH'.
|
|
|
|
|
|
+Любой XML файл с конфигурацией klish должен начинаться открывающим тегом `KLISH`
|
|
|
|
+и заканчиваться закрывающим тегом `KLISH`.
|
|
|
|
|
|
```
|
|
```
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<?xml version="1.0" encoding="UTF-8"?>
|