Командный интерфейс #

Андрей Михайлович Васильев, 2024

Версии презентации

Графический пользовательский интерфейс #

Пользователи сейчас приучены к графическому интерфейсу:

  • Интерфейсы мобильных устройств, взаимодействие с помощью касания
  • Интерфейсы встраиваемых устройств, взаимодействие с помощью касания
  • Интерфейсы компьютеров, взаимодействие с помощью клавиатуры и мыши
  • Интерфейсы телевизоров, взаимодействие с помощью пульта
  • Интерфейсы игровых консолей, взаимодействие с помощью контроллера

«Продвинутое» использование интерфейса компьютера #

  • Использование раздельных пространств для разделения приложений по задачам
  • Множество приложений, включая интерфейс ОС, предлагают использовать сочетания клавиш для быстрого выполнения действий

Запуск приложения в графическом интерфейсе #

diagram

Устройство графического интерфейса #

diagram

Что такое командный интерфейс #

CLI, command line interface, командный интерфейс — это способ взаимодействия с ОС, при которой пользователь вводит текстовые команды с клавиатуры, а приложение-интерпретатор их выполняет

Процесс взаимодействия выглядит следующим образом:

  1. Командный интерпретатор показывает приглашение для ввода
  2. Пользователь вводит текстовую команду и нажимает «Ввод»
  3. Командный интерпретатор обрабатывает строку
    • Если команда была введена неверно, то интерпретатор сообщит об ошибке
    • Если команда была введена корректно, то задача будет выполнена
  4. Пока команда выполняется, то ввод и вывод передаются команде
  5. После завершения команды интерпретатор опять показывает приглашение

diagram

Почему стоит знать командный интерфейс #

  • Данный интерфейс можно запустить на любых вычислительных мощностях
  • Действия командного интерфейса очень легко автоматизируются
    • При условии минимальных знаний в программировании
    • Автоматизировать работу веселее чем вручную выполнять повторяющиеся действия
  • Приложения с командным интерфейсом легче разрабатывать
    • Таких приложений разработано много
    • Приложения зачастую отлично решают конкретную задачу
    • Экспериментальные технологии разрабатываются с поддержкой только этого интерфейса
  • Удобен для удалённого подключения, т.к. потребляет мало трафика
  • Из командного интерфейса можно запускать графические приложения
  • Большинство средств разработки имеют доступ к командному интерфейсу, например ~ открывает консоль в CS:GO

Командный интерпретатор и эмулятор терминала #

diagram

Командный интерпретатор — это приложение, которое запускается средствами ОС, следовательно под каждой ОС может быть установлено множество таких интерпретаторов

Эмулятор терминала — это приложение, которое запускается средствами ОС и которое эмулирует терминал компьютера внутри другой архитектуры вывода данных на экран

Какие бывают интерпретаторы #

Типичные представители интерпретаторов:

  • Windows: cmd, PowerShell, bash (порт) и т.д.
  • MacOS: bash, zsh и т.д.
  • Linux: bash, zsh, fish, dash и т.д.

Мы будем рассматривать Bash, Bourne Again Shell, названного в честь создателя оригинального приложения sh Стива Борна

Данный интерпретатор устанавливается по умолчанию в большинстве дистрибутивов GNU/Linux, ранее тоже был интерпретатором по умолчанию для macOS

Эмуляторы терминала #

  • Предоставляют графический интерфейс
  • Позволяют запустить несколько экземпляров командных интерпретаторов
  • Позволяют просматривать журнал работы и работать с ним как с текстом

Примеры терминалов под разные операционные системы:

  • Windows: ConEmu, Mintty, Windows Terminal
  • GNU/Linux: gnome-terminal, console, terminator, xfce4-terminal, xterm
  • macOS: Terminal, iTerm2

Linux также обеспечивает возможность работы с интерпретатором без графического интерфейса. Классический вид терминала доступен с помощью сочетания клавиш Ctrl+Alt+F1 (F2, F3, …)