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-сервер