====== Работа с терминалом ======
===== Введение =====
Для упрощения некоторых операций с модемом и роутером мы добавили терминал.
Терминал - это программа которая способна исполнять введённые пользователем команды. В нашем случае это не голый linux-терминал, а отдельное окружение, позволяющее вызывать специфические команды в упрощённом режиме. Также имеется возможность писать собственные команды и вызывать их из терминала. Подробнее об этом рассказано в статье [[docs/routery/upravlenie-modemom/dobavlenie-sobstvennyh-Shell-shablonov.md|Добавление собственных Shell-шаблонов]]
Перед вводом команды убедитесь, что вы понимаете, что вы вводите и что произойдёт после её исполнения. Любые действия совершайте только на свой страх и риск.
Обратите внимание, что команды, которые захватывают поток вывода на продолжительное время, например
logread -f
Не будут исполнены корректно и, скорее всего, заблокируют ввод новых команд на 1-2 минуты.
===== Интерфейс терминала =====
{{routery:upravlenie-modemom:rabota-s-terminalom:interface.png|Интерфейс терминала}}
Интерфейс терминала доступен на вкладке Модем - Терминал. В центре страницы расположено поле выводе терминала - здесь будут отображаться результаты введённых вами команд.\\
{{routery:upravlenie-modemom:rabota-s-terminalom:example.png|Пример команды и ответа на неё}}\\
Снизу расположена строка ввода команд, а также управляющие кнопки:
* Отправить - немедленно отправляет введённую команду на роутер
* Автоотправка - Автоматически отправляет введённую команду до нажатия кнопки Отмена либо до ошибки исполнения, после чего терминал переходит в обычный режим
{{routery:upravlenie-modemom:rabota-s-terminalom:autosend.png|Автоотправка}}
Также присутствует возможность выделять команды в окне терминала левой кнопкой мыши и они сразу же подставятся в поле ввода команд. Также доступна навигация стрелками Вверх и Вниз на клавиатуре.\\
{{routery:upravlenie-modemom:rabota-s-terminalom:selectcommand.png|Выбор команд}}
В верхнем правом углу расположена кнопка Действие:\\
{{routery:upravlenie-modemom:rabota-s-terminalom:action.png|Меню Действие}}
* Очистить историю - Удаляет историю отправленных команд и очищает поле вывода терминала
* Загрузить историю - Скачивает на ваш компьютер историю отправленных команд и результаты их исполнения. С помощью этой функции очень удобно делиться результатами с техподдержкой, например
===== AT-команды =====
С помощью данного терминала можно напрямую в модем отправлять АТ-команды. Например, чтобы быстро получить инофрмаци о модеме, введите:
ATI
В ответ вы получите основную информацию о модеме:\\
{{routery:upravlenie-modemom:rabota-s-terminalom:ati.png|ATI}}
Как пример, в статье [[docs/routery/upravlenie-modemom/blokirovanie-vhodyashchih-vyzovov.md|Блокирование входящих вызовов]] расположены подряд 3 АТ-команды. Вместо подключения к роутеру по ssh и ввод команд через mmcli можно ввести их сразу в терминал.
===== Mmcli =====
Mmcli - это подпрограмма linux, позваляющая управлять модемом и получать о нём информацию на низком уровне. Например, для того чтобы получить список сообщений через mmcli, необходимо ввести команду
mmcli --messaging-list-sms
{{routery:upravlenie-modemom:rabota-s-terminalom:mmclisms.png|mmcli список сообщений}}
Обратите внимание, что при вводе mmcli-команд не нужно вводить ключ –modem=modem1, терминал делает это самостоятельно
Прочитаем какую-нибудь смс командой
mmcli --sms 4
В результате получим:\\
{{routery:upravlenie-modemom:rabota-s-terminalom:mmclismsread.png|Mmcli СМС}}
Более полный список всех возможных команд можно получить введя команду
mmcli --help-all
Если ваш модем поддерживает qmi - можно использовать qmicli вместо mmcli
===== Service =====
Данная команда позволяет исполнять код в окружении сервиса модема. С её помощью можно вызывать команды из списка.
service help
Например:\\
{{routery:upravlenie-modemom:rabota-s-terminalom:service.png|Сервис}}
===== Shell =====
Для вызова обычных команд и отладки Shell-шаблонов можно использовать shell. Например, выведем папки из корневой директории командой
shell ls /
{{routery:upravlenie-modemom:rabota-s-terminalom:shellls.png|Shell}}
А этой командой вызовем скрипт из Shell-шаблона
shell modem_get_signal
{{routery:upravlenie-modemom:rabota-s-terminalom:shellshell.png|Shell shell}}