Linux & Administration

CLI

Command Line Interface — интерфейс, в котором команды программе отдают текстом, а не кликами по кнопкам.

Что такое CLI

CLI (Command Line Interface, интерфейс командной строки) — способ управлять программой или операционной системой, вводя текстовые команды. Вы пишете строку, нажимаете Enter, программа выполняет её и печатает результат. Противоположность — GUI (Graphical User Interface), где то же самое делается мышью.

Простыми словами: GUI — это меню в ресторане, где вы тыкаете в картинки готовых блюд. CLI — это разговор с поваром напрямую: сформулировать сложнее, зато можно заказать то, чего в меню нет, и попросить повторить заказ ещё сто раз без вашего участия.

Из чего состоит команда

docker run -d --name web -p 80:80 nginx:latest
└──┬─┘ └┬┘ └┬┘ └──────┬──────────┘ └────┬────┘
   │    │   │         │                 └── аргумент
   │    │   │         └──────────────────── опции со значением
   │    │   └────────────────────────────── флаг (короткая опция)
   │    └────────────────────────────────── подкоманда
   └─────────────────────────────────────── программа

Короткие флаги пишутся с одним дефисом (-d) и часто склеиваются (-la = -l -a), длинные — с двумя (--name). Почти любая CLI-программа понимает --help.

CLI vs GUI

CLI GUI
Порог входа высокий: надо знать команды низкий: всё видно
Скорость рутины высокая ограничена скоростью рук
Автоматизация естественная — команда пишется в скрипт требует отдельных инструментов
Удалённая работа по SSH, канал в килобиты нужен графический протокол
Воспроизводимость команду можно скопировать в тикет «нажмите сюда, потом сюда»
Требования к серверу почти нулевые нужен графический стек

Почему серверы живут в CLI

VPS и облачные серверы по умолчанию идут без графической оболочки: она съедала бы память и такты CPU впустую. Вы подключаетесь по SSH и попадаете сразу в командную строку.

Но главная причина глубже: команда — это уже готовый код. То, что вы набрали руками один раз, копируется в Bash-скрипт, в Dockerfile, в CI/CD-пайплайн и выполняется дальше без человека. Клик мышью так не переиспользуешь — именно поэтому весь DevOps построен вокруг CLI.

Основные CLI-оболочки

Оболочка Где Комментарий
Bash Linux, macOS, WSL стандарт де-факто на серверах
Zsh macOS, Linux Bash с автодополнением получше
PowerShell Windows, Linux, macOS конвейер из объектов, а не текста
CMD Windows наследие MS-DOS

Приёмы, которые экономят часы

  • Tab — автодополнение команд, путей и часто аргументов
  • Ctrl+R — поиск по истории команд: нажать и начать печатать кусок прошлой команды
  • Конвейер | — вывод одной команды на вход другой: journalctl -u nginx | grep -i error
  • !! — повтор прошлой команды: sudo !! после отказа в доступе

Связанные термины

  • Bash — самая распространённая CLI-оболочка на серверах
  • PowerShell — CLI Windows с объектным конвейером
  • CMD / командная строка — классическая командная строка Windows
  • SSH — как попасть в CLI удалённого сервера
  • Утилиты Linux — базовый набор команд
  • grep — типичный участник конвейера

Готовы запустить GPU-задачу?

Запустить GPU-сервер