Table of Contents
Документ в процессе написания
Руководство пользователя
В данном руководстве будет рассмотрен пока только интерфейс командной строки.
Базовые операции
Запуск клиента
Запуск клиента производится командой connexion-cli. На этот момент сервер должен быть уже запущен.
Доступ к *nix shell
В случае, когда клиент системы установлен в качестве login shell, иногда требуется доступ и к обычной командной строке: для дополнительной диагностики, исправления ошибок работы системы (а куда ж без них ;) и операций, не предусмотренных модулями. В этом случае можно использовать команду .cli.
Выход из клиента
Для выхода из клиента нужно набрать команду quit (хак). Сочетание клавиш Ctl-D вызыывает выход из текущего состояния, её также можно использовать для выхода из клиента, находясь в корневом состоянии.
Автодополнения
Чтобы получить список автодополнений, нужно нажать TAB или ?. В результате будет выведен список возможных для данной команды или состояния автодополнений.
xshell > [жмём табуляцию дважды] * cli: .cli - Start /bin/sh session .email - Enter info for e-mail forwarding * internal: ! - Set comment for the next command call - Call a function chroot - Chroot current state tree commands - Print committed commands for the current state comment - Attach the current comment to a command commit - Commit new commands in the state tree declare - Declare current state as function merge - Enable configuration merging no - Cancel an operation pop - Pop context print - Print current comment queued - Print queued command for the current state replay - Replay already committed transaction shutdown - shutdown the server transaction - Trace transaction tree tree - Trace current state tree * command: configure - configure system external - The default mountpoint for external commands ip - IP related utilities show - show system parameters xshell > show i[жмём табуляцию дважды] * command: interfaces - show interfaces status, addresses etc. ip - show IP related data... xshell > show i
Команды
Команды connexion можно условно разделить на несколько типов:
- команды клиентской оболочки (cli)
- Эти команды выполняются непосредственно клиентом и не имеют к ядру системы никакого отношения. У каждого клиента может быть свой набор специфических команд, например, в интерфейсе командной строки это команды .cli, .email.
- внутренние команды (internal)
- Обязательный словарь ядра connexion. Команды, которые в него входят, "прошиты" в ядро системы по тем или иным причинам. Чаще всего из-за того, что они управляют внутренними структурами ядра.
- нативные модули (command)
- Команды, обеспечиваемые нативными модулями. Путь до корневой директории указывается при запуске ядра (см. также руководство администратора?)
- внешние модули (external)
- Команды, обеспечиваемые внешними модулями. Для работы с внешним модулем его необходимо зарегистрировать через connexion-interface-registrator (см. также руководство разработчика модулей?)
Также их можно разделить на команды немедленного исполнения (immediate в терминологии forth, в ядре connexion они несут флаг esoteric) и команды отложенного исполнения. Пример работы команды немедленного исполнения:
xshell > show ip route 10.0.0.0/24 dev vlan510 proto kernel scope link src 10.0.0.1 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.248 192.168.0.0/24 dev vlan1 proto kernel scope link src 192.168.0.1 default via 192.168.1.1 dev br0 xshell >
Пример работы с командами отложенного исполнения:
xshell > configure network configure network > ip route ip route > route default via 192.168.1.128 ip route > commit
В последнем примере команды отложенного исполнения формируют очередь транзакции, которая будет применена по команде commit.
Параметры
Каждая команда может иметь либо не иметь параметров. Посмотреть доступные парамтры можно также через автодополнение:
xshell > ip ping[жмём табуляцию дважды] * parameter: $1 - IP address or hostname to test with ICMP echo xshell > ip ping
Параметры бывают двух типов: позиционные и именованные. Позиционные параметры в автодополнении видны как $<номер позиции>. В частности, $1 означает, что это первый параметр. Позиционные параметры вводятся очевидно:
xshell > ip ping 192.168.0.1
Именованные параметры требуют ввести имя параметра, затем его значение.
Состояния
Команды в connexion организованы в дерево, и в каждый момент оператор "находится" в определённом его узле. Перейти в один из дочерних узлов можно с помощью доступных команд, образующих узлы, а выйти в родительский можно командой pop или клавишами Ctrl-D. Текущее состояние отображается в приглашении командной строки:
xshell > configure network configure network > interfaces interfaces > pop configure network > pop xshell >
Очереди исполнения
Ядро connexion формирует две очереди исполнения: down и up. Первая формируется при использовании команды no. Вторая формируется всеми остальными командами отложенного действия. Уже выполненные команды можно просмотреть командой tree. Просмотреть команды в очередях на исполнение можно командой transaction:
ip route > tree ! configure network ! ip route route default via 192.168.1.128 ip route > no route default via 192.168.1.128 ip route > route default via 192.168.1.127 ip route > transaction ! configure network ! ip route route default via 192.168.1.127 no route default via 192.168.1.128 ip route >
Также можно посмотреть команды, которые относятся только к текущему узлу. Команда commands покажет уже исполненные команды, а queued -- команды, которе предстоит выполнить.
ip route > commands route default via 192.168.1.128 ip route > queued no route default via 192.168.1.128 route default via 192.168.1.127 ip route >
