Для начинающих:Консоль

Материал из MikroTik WiKi rus
Перейти к: навигация, поиск

Видеоурок


Обзор

Консоль (интерфейс командной строки, CLI - Command Line Interface) используется для доступа к маршрутизаторам MikroTik для настройки и управления средствами текстового терминала. Доступ к консоли может быть получен с помощью серийного порта, telnet, SSH или окна терминала в утилитах WinBox или WebFig. Если RouterOS установлена на компьютер, то доступ может быть получен с помощью монитора и клавиатуры. Консоль так же может быть использована для написания скриптов. Это руководство описывает основные принципы работы с консолью. Обратитесь к руководству Scripting Manual для изучения расширенных команд и того как писать скрипты.

Консоль позволяет управлять настройками маршрутизатора используя текстовые команды. Поскольку существует много доступных команд, они разделены на группы, организованных соответственно иерархическим уровням меню графического интерфейса. Название уровня меню отражает информацию о конфигурации, доступную в соответствующем разделе, например /ip hotspot.

Иерархия

Ввиду того, что существует огромное количество возможных команд, они разбиты по группам, организованным по принципу иерархического меню. Наименование уровня меню отображает конфигурационную информацию доступную в данной секции. Например: /ip route.

Icon-note.png

Примечание: В основной массе структура меню графического интерфейса и командной строки совпадают. Но не всегда.


Основные команды

Справка и перемещение

Одинарное нажатие клавиши [Tab]

  • Если нажать клавишу [Tab] после части слова, консоль пытается найти в текущем контексте команду, которая начинается с этого слова. Если есть только одно совпадение, команда автоматически добавляется и за ней следует пробел.
  • Если нажать клавишу [Tab] без введения части слова, то в выдаче будут показаны возможные следующие команды.

Двойное нажатие клавиши [Tab] - без введения части слова, то в выдаче будут показаны возможные следующие команды включая команды для встроенного языка скриптов.

? - то же, что и [Tab] без введения части слова, но с добавлением описания команды.

/ - переместиться в корень консоли.

.. - переместиться в консоли на один уровень вверх.

стрелка вверх и стрелка вниз - перемещение по истории команд

Общие команды

Некоторые команды являются общими почти для всех уровней меню. Такие команды имеют одинаковое поведение на разных уровнях меню.

Добавление, редактирование и удаление элементов

  • add - эта команда обычно имеет все те же аргументы, как set, кроме аргумента с номером элемента. Это добавляет новый элемент со значениями, которые Вы определили, как правило, в конце списка позиций, в тех местах, где порядок элементов имеет значение. Есть некоторые необходимые свойства, которые вы должны поставить, например, как интерфейс для нового адреса, в то время как для других свойств устанавливаются значения по умолчанию, если вы явно не указали их.
    • Общие параметры:
      • copy-from - копировать параметры из уже существующего элемента. Если вы не хотите, сделать точную копию, то вы можете указать новые значения для некоторых свойств. При копировании элементов, которые имеют имена, вы, как правило, должны дать новое имя копии;
      • place-before - помещает новый элемент перед существующим элементом с указанной позиции. Таким образом, вам не нужно использовать команду перемещения после добавления элемента в список;
      • disabled - управление состоянием отключено / включено для вновь добавленного элемента(-ов);
      • comment - содержит описание вновь созданного пункта.
    • Возвращаемые значения:
      • добавляет команду возврата внутреннего номера элемента который был добавлен.
  • edit - эта команда связана с командой set. Она может быть использована для редактирования значений свойств, которые содержат большое количество текста, например, скрипты, но она работает со всеми редактируемыми свойствами. В зависимости от возможностей терминала, либо полноэкранный редактор, или один редактор строки запускается для редактирования значения указанного свойства.
  • set - позволяет изменять значения общих параметров или параметров изделия. Команда имеет множество аргументов с именами соответствующих значений, которые вы можете изменить. Используйте ? или двойной [Tab], чтобы увидеть список всех аргументов. Если есть список элементов для которых доступны действия, установите аргумент соответственно номеру элемента (или список номеров), который(е) вы хотите настроить. Эта команда не возвращает ничего.
  • remove - удалить определенный(ые) элемент(ы) из списка.

Включение и выключение элементов

  • enable - включение опции
  • disable - выключение опции
  • enabled - со значением =yes включено, а со значением =no выключено
  • disabled - со значением =no выключено, а со значением =no включено

Прочие команды

  • comment - добавить комментарий
  • brief - краткое описание
  • detail - отобразить подробную информацию
  • export - отобразить конфигурацию текущего уровня иерархии. При выполнении из корня отобразит всю текущую конфигурацию.
  • find - Команда find имеет те же аргументы, что и set, плюс флаг аргументы, как disabled или active, которые принимают значения yes или no в зависимости от значения соответствующего флага. Для того чтобы увидеть все флаги и их имена, смотрите на начало вывода команды print. Команда find возвращает внутренние номера всех элементов, которые имеют те же значения аргументов, как указано команде.
  • get -
  • move - меняет порядок элементов в списке.
    • первый аргумент определяет перемещаемый элемент(-ы).
    • второй аргумент задает элемент, перед которым, будут размещены перемещаемые элементы (они помещаются в конец списка, если второй аргумент опущен).
  • print - показывает всю информацию, которая доступна из определенного уровня команд. Таким образом, /system clock print показывает системные дату и время, /ip route print показывает все маршруты и т.д. Если есть список элементов в текущем уровне, и они не только для чтения, то есть вы можете изменить или удалить их (пример только для чтения элемента списка или системной истории, которая показывает историю выполненных действий), а затем напечатать команду также правопреемников номера, которые используются всеми командами, которые работают с элементами в этом списке.
    • from - показать только указанные элементы, в том же порядке, в котором они даны.
    • where - показать только те элементы, которые соответствуют указанным критериям. Синтаксис свойства where аналогичен команде find.
    • brief - заставляет команду печати использовать табличную форму вывода
    • detail - заставляет команду печати использовать форму вывода property=value(свойство=значение)
    • count-only - показывает количество элементов
    • file - печатает содержимое конкретного подменю в файл на маршрутизаторе.
    • interval - обновление вывода команды print через интервал, заданный в секундах.
    • oid - печатает значение OID для свойств, которые доступны из SNMP
    • without-paging - печатает вывод без остановки после каждого заполненного экрана.
  • quit - выйти из командной строки (консоли)

Пример

Быстрый набор

Есть две особенности в консоли, которые помогают вводить команды гораздо быстрее и проще - [Tab] автоматическое завершение и сокращения имен команд. Автоматическое завершение работает аналогично оболочке Баш в UNIX. Если нажать клавишу [Tab] после части слова, консоль пытается найти команду в текущем контексте, который начинается с этого слова. Если есть только одно совпадение, команда автоматически добавляется и за ней следует пробел:

/inte[Tab]_ станет /interface _

Если есть больше, чем одно совпадение, но все они имеют общее начало, которое больше, чем то, что вы набрали, то слово которое вы печатаете будет автоматически завершено без добавления пробела:

/interface set e[Tab]_ becomes /interface set ether_

Если вы набрали только общую часть, нажав клавишу табуляции один раз не имеет никакого эффекта. Тем не менее, нажав на нее во второй раз показывает все возможные завершения в компактной форме:

[admin@MikroTik] > interface set e[Tab]_
[admin@MikroTik] > interface set ether[Tab]_
[admin@MikroTik] > interface set ether[Tab]_
ether1 ether5
[admin@MikroTik] > interface set ether_

Клавиша '[Tab]' может быть использован практически в любом контексте, где консоль может иметь подсказку о возможных значений - имена команд, имена аргументов, аргументы, которые имеют только несколько возможных значений (например, имена элементов в некоторых списках или имена протоколов в межсетевом экране и правила NAT). Вы не можете автоматически завершать числа, IP-адреса и аналогичные значения.

Другой способ нажимать меньше клавиш при вводе является сокращайте имена команд и аргументов. Можно ввести только начало имени команды, и, если он не является неоднозначным, консоль примет ее как полное имя. Так, набрав:

[admin@MikroTik] > pi 10.1 c 3 si 100

Будет равносильно:

[admin@MikroTik] > ping 10.0.0.1 count 3 size 100

Можно завершать не только начало, но и любую отличающуюся подстроку имени: если нет точного соответствия, консоль начинает искать слова, которые имеют строку которая завершается, как первые буквы множественного имени слова, или сочетание которое содержит буквы этой строки в том же порядке. Если одно такое слово найдено, оно будет завершено в позиции курсора. Например:

[admin@MikroTik] > interface x[TAB]_
[admin@MikroTik] > interface export _

[admin@MikroTik] > interface mt[TAB]_
[admin@MikroTik] > interface monitor-traffic _

Другие примеры

Например, вы можете выполнить команду /ip route print:

[admin@MikroTik] > ip route print
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
 #      DST-ADDRESS        PREF-SRC        G GATEWAY         DIS INTE...
 0 A S  0.0.0.0/0                          r 10.0.3.1        1   bridge1
 1 ADC  1.0.1.0/24         1.0.1.1                           0   bridge1
 2 ADC  1.0.2.0/24         1.0.2.1                           0   ether3 
 3 ADC  10.0.3.0/24        10.0.3.144                        0   bridge1
 4 ADC  10.10.10.0/24      10.10.10.1                        0   wlan1  
[admin@MikroTik] >

Вместо того, чтобы вводить ip route путь перед каждой командой, путь может быть введен только один раз, чтобы перейти к этой конкретной ветви иерархии меню. Таким образом, приведенный выше пример также может быть выполнен, так:

[admin@MikroTik] > ip route
[admin@MikroTik] ip route> print
Flags: X - disabled, A - active, D - dynamic, 
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
 #      DST-ADDRESS        PREF-SRC        G GATEWAY         DIS INTE...
 0 A S  0.0.0.0/0                          r 10.0.3.1        1   bridge1
 1 ADC  1.0.1.0/24         1.0.1.1                           0   bridge1
 2 ADC  1.0.2.0/24         1.0.2.1                           0   ether3 
 3 ADC  10.0.3.0/24        10.0.3.144                        0   bridge1
 4 ADC  10.10.10.0/24      10.10.10.1                        0   wlan1  
[admin@MikroTik] ip route>

Обратите внимание на то, как консоль меняется для того, чтобы отразить, где вы находитесь в иерархии меню в данный момент. Для перехода на верхний уровень снова, введите " / "

[admin@MikroTik] > ip route
[admin@MikroTik] ip route> /
[admin@MikroTik] >

Для перехода на один уровень вверх команд, введите " .. "

[admin@MikroTik] ip route> ..
[admin@MikroTik] ip>

Вы можете также использовать / и .. для выполнения команд из других уровней меню без изменения текущего уровня:


[admin@MikroTik] ip route> /ping 10.0.0.1
10.0.0.1 ping timeout
2 packets transmitted, 0 packets received, 100% packet loss
[admin@MikroTik] ip firewall nat> .. service-port print
Flags: X - disabled, I - invalid 
 #   NAME                                                                PORTS
 0   ftp                                                                 21   
 1   tftp                                                                69   
 2   irc                                                                 6667 
 3   h323                                                               
 4   sip                                                                
 5   pptp                                                               
[admin@MikroTik] ip firewall nat>

Имена и номера элементов

Многие из уровней команды работают с массивами элементов: интерфейсы, маршруты, пользователей и т.д. Такие массивы отображаются как списки. У каждого элемента в списке есть номер элемента с последующим флагом и значениями параметров.

Чтобы изменить свойства элемента, вы должны использовать команду set и указать имя или номер элемента.

Имена элементов

Некоторые списки имеют элементы с конкретными именами, заданными для каждого из них. Например для пунктов interface или user. Там вы можете использовать имена элементов вместо номера позиций.

Вы не должны использовать команду print перед обращением к элементам по их именам. Как правило, названия элементов являются более "стабильными", чем цифры, а также более информативными, так что отдавайте предпочтение их номерам при написании консольных скриптов.

Номера элементов

Номера элементов присваиваются командой print и не являются постоянными - вполне возможно, что две последовательные команды print будут использовать элементы по-разному.Но результаты последних команд print запоминаются и, таким образом, один раз назначенные, номера позиций можно использовать даже после того, как применены операции add, remove and move (начиная с версии 3, move операция не изменяет порядок нумерации). Номера элементов назначенные в течении сессии, останутся такими же, пока вы не закроете консоль или до следующей команды print. Кроме того, номера присваиваются отдельно для каждого элемента списка, так что ip address print не изменит нумерацию списка интерфейсов.

Начиная с версии 3 можно использовать номера элементов без выполнения команды print. Числа будут назначены так же, как если команда print была выполнена.

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

[admin@MikroTik] > interface print
Flags: X - disabled, D - dynamic, R - running
  #    NAME                 TYPE             MTU
  0  R ether1               ether            1500
  1  R ether2               ether            1500
  2  R ether3               ether            1500
  3  R ether4               ether            1500
[admin@MikroTik] > interface set 0,1,2 mtu=1460
[admin@MikroTik] > interface print
Flags: X - disabled, D - dynamic, R - running
  #    NAME                 TYPE             MTU
  0  R ether1               ether            1460
  1  R ether2               ether            1460
  2  R ether3               ether            1460
  3  R ether4               ether            1500
[admin@MikroTik] >



Режимы

Консольный редактор для командной строки работает либо в многострочном режиме или в режиме одиночной линии. В многострочном режиме линейного редактора отображает полную входную линию, даже если он длиннее одного терминала линии. Он также использует полный экран редактор для редактирования больших текстовых значений, таких как скрипты. В режиме одиночной линии только один терминал линия используется для редактирования командной строки, и длинные линии показаны усечен вокруг курсора. Редактор полного экрана не используется в этом режиме.

Выбор режимов зависит от обнаруженных возможностей терминала.

Список сочетаний клавиш

Control-C 
прерывание клавиатуры.
Control-D 
выйти (если входная строка пуста)
Control-K 
очистить от курсора до конца строки
Control-X 
переключить в safe mode
Control-V 
переключить в hotlock mode
F6 
переключение cellar
F1 или ? 
показывает контекстную справку. Если предыдущий символ \, затем вставляет символ ?.
Tab 
выполнить completion. При нажатии во второй раз, показывают возможные варианты завершения.
Delete 
удалить символ под курсором
Control-H or Backspace 
удалить символ перед курсором и переместить курсор назад на одну позицию.
Control-\ 
разрыв линии при наведении курсора. Вставьте новую строку в позиции курсора. Отображение второй из двух полученных линий.
Control-B or Left 
переместить курсор назад на один символ
Control-F or Right 
переместить курсор вперед на один символ
Control-P or Up 
перейти к предыдущей строке. Если это первая строка ввода затем вспомнить предыдущий вход из истории.
Control-N or Down 
перейти к следующей строке. Если это последняя строка ввода затем вызывать следующий вход из истории.
Control-A or Home 
переместить курсор в начало строки. Если курсор уже в начале строки, а затем перейти к началу первой строки текущего входа.
Control-E or End 
переместить курсор в конец строки. Если курсор уже в конце строки, а затем переместить его в конце последней строки текущего входа.
Control-L or F5 
сбросить терминал и перерисовка экрана.

up, down и split ключи оставляют курсор в конце строки.


Встроенная справочная система

Консоль имеет встроенную помощь, к которому можно обратиться, набрав '?' . Общее правило заключается в том, что помощь показывает, что вы можете ввести в позиции, где '?' Была нажата (аналогично нажатию '[Tab]' ключ два раза, но в расширенном виде и с пояснениями).

Безопасный режим

Иногда можно изменить конфигурацию маршрутизатора таким образом, что сделает маршрутизатор недоступным (кроме локальной консоли). Обычно это делается случайно, но нет никакого способа, чтобы отменить последнее изменение, когда подключение к маршрутизатору уже утрачено. Безопасный режим может быть использован для минимизации такого риска.

Безопасный режим вводится нажатием [CTRL]+[X]. Чтобы сохранить изменения и выйти из безопасного режима, нажмите [CTRL]+[X] еще раз. Для выхода без сохранения сделанных изменений, нажмите [CTRL]+[D]

[admin@MikroTik] ip route>[CTRL]+[X]
[Safe Mode taken]

[admin@MikroTik] ip route<SAFE>


Сообщение Safe Mode taken отобразилось и это означает что консоль теперь перешла в безопасный режим. Все изменения конфигурации, которые сделаны (также из других сеансов входа в систему), в то время как маршрутизатор находится в безопасном режиме, автоматически отменяются, если безопасный режим сеанса завершается аварийно. У Вас есть возможность рассмотреть все такие изменения, которые будут автоматически отменены, помечены с помощью флага F в истории системы:


[admin@MikroTik] ip route>
[Safe Mode taken]

[admin@MikroTik] ip route<SAFE> add
[admin@MikroTik] ip route<SAFE> /system history print
Flags: U - undoable, R - redoable, F - floating-undo
  ACTION                                   BY                 POLICY
F route added                              admin              write    

Теперь, если telnet соединение (или winbox терминал) отключатся, через некоторое время после этого (TCP таймаут равен 9 минутам) все изменения сделанные во время работы безопасного режима будут отменены. Выход из сессии с помощью сочетания [Ctrl]+[D] отменяет все изменения сделанные в безопасном режиме, этого не делает обычный /quit.

Если другой пользователь подключиться во время работы безопасного режима он увидит следующее:

[admin@MikroTik] >
Hijacking Safe Mode from someone - unroll/release/don't take it [u/r/d]:
  • [u] - undoes all safe mode changes, and puts the current session in safe mode.
  • [r] - keeps all current safe mode changes, and puts current session in a safe mode. Previous owner of safe mode is notified about this:
 
     [admin@MikroTik] ip firewall rule input
     [Safe mode released by another user]
  • [d] - leaves everything as-is.

Если сделано слишком много изменений в безопасном режиме, и не осталось места для истории, чтобы сохранить все изменения (в настоящее время история хранит до 100 последних действий), то сессия будет автоматически выведена из безопасного режима, никакие изменения не будут автоматически отменены. Таким образом, лучше всего, изменять конфигурацию в небольшими шагами. При нажатии клавиши [Ctrl] + [X] дважды, можно очистить список действий безопасного режима.

Режим HotLock

При включении режима HotLock будет активировано автозавершение команд.

Для входа/выхода в режим HotLock нажмите [CTRL]+[V].

[admin@MikroTik] /ip address> [CTRL]+[V]
[admin@MikroTik] /ip address>>

Этот знак >> показывает что режим HotLock включен. Например если вы введете /in e, это будет автоматически завершено как

[admin@MikroTik] /ip address>> /interface ethernet 

Меню быстрой помощи

Клавиша F6 включает меню в нижней части терминала, которое показывает общие сочетания клавиш и их назначение.

[admin@RB493G] > 

tab compl ? F1 help ^V hotlk ^X safe ^C brk ^D quit