Документ в процессе написания

Руководство пользователя

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

Базовые операции

Запуск клиента

Запуск клиента производится командой 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 >