Перейти к основному содержимому

Терминал - интерфейс командной строки

Разработчику Архитектору Инженеру

Терминал

Бывает графический интерфейс (GUI), когда мы кликаем по кнопкам, используем окна, ползунки, словом, визуальное восприятие при общении с техникой.

GUICLI.png

А бывает интерфейс командной строки (CLI). Тогда мы общаемся текстом, а не тыкаем мышью в кнопки, например, вместо того, чтобы открыть папку, найти файл, выбрать его, нажать на правую кнопку мыши и копировать, мы пишем:

copy file.txt D:\backup

Компьютер делает это мгновенно.

Многие программисты предпочитают использовать именно этот интерфейс.

Главный принцип (на примере CMD):

команда источник назначение
↓ ↓ ↓
copy file.txt D:\backup\

В PowerShell та же идея, но синтаксис другой: Copy-Item file.txt D:\backup\. У многих утилит есть ключи (флаги), меняющие поведение: ipconfig /all, ls -l.

Оболочка (shell) — программа, которая читает строку, разбирает её на команду и аргументы, подставляет переменные и запускает программы (сама или через ядро ОС).

Команда — имя действия — встроенное в оболочку (cd, echo) или отдельная программа (git, python).

Запуск из терминала

Dev-сервер, утилиты и Docker из консоли — схемы и чек-лист в Запуск и перезапуск приложений.

Перед первой "волшебной" командой

Одна строка в терминале может удалить данные или историю Git.

Стоп-лист для новичка и проверка команд от ИИ-агента — Опасные скрипты.


Терминал, консоль и оболочка — не одно и то же

Частая путаница у новичков — смешивать окно терминала и оболочку. На практике цепочка такая:

Вы → [Эмулятор терминала] → [Оболочка] → [Программа/утилита] → Ядро ОС
УровеньПримерыЗадача
Эмулятор терминалаWindows Terminal, GNOME Terminal, iTerm2Окно, вкладки, шрифты, буфер обмена
Оболочка (shell)cmd.exe, PowerShell, BashПарсинг команд, переменные, скрипты
Утилитаcopy, ls, gitКонкретная работа с файлами, сетью и т.д.
Не путать

Windows Terminal — это современное окно, внутри которого можно запустить cmd, PowerShell или WSL.

В Linux аналог — программа "Терминал" в меню; оболочкой при этом остаётся Bash, Zsh или Fish.

Консоль / CLI (Command-Line Interface) — общий термин для текстового управления — и окно, и оболочка, и привычка работать без GUI.


Что такое консоль?

Консоль (CLI) – интерфейс командной строки для взаимодействия с операционной системой или приложениями. В Windows и Linux они отличаются, но смысл тот же.

Play ITЗагрузка интерактивного демо…

CLI предоставляет возможности:

  • напрямую отправлять инструкции системе в виде текстовых команд;
  • получать мгновенную обратную связь от системы — вывод результатов, ошибок, информации;
  • возможность запуска любых исполняемых файлов, утилит, скриптов и сервисов;
  • управлять параметрами запуска, окружением, приоритетами;
  • получать доступ к текущему состоянию — информация о процессах, сетевых соединениях, загруженности ресурсов;
  • изменять состояние — запуск/остановка служб, изменение конфигураций, перезагрузка;
  • навигация по структуре каталогов Linux (FHS), просмотр содержимого, создание, удаление, перемещение файлов;
  • управление правами доступа, атрибутами, метаданными;
  • проверки соединений, прослушивания портов, передачи данных между машинами;
  • управление окружением, настройкой временных и постоянных параметров работы программы или системы.

Командная строка опирается на несколько уровней:

  • Оболочка — интерпретирует ввод и запускает команды;
  • Ядро ОС (kernel) — выполняет системные операции (файлы, процессы, сеть);
  • Потоки ввода-вывода — стандартные каналы связи с программой:
    • stdin (0) — ввод (клавиатура или файл);
    • stdout (1) — обычный вывод;
    • stderr (2) — сообщения об ошибках (часто отдельно от stdout).

Команды вводятся вручную или запускаются из скриптов. Код возврата (exit code): 0 — успех, другое число — ошибка; в Bash смотрят $?, в CMD — %ERRORLEVEL%. От этого зависят цепочки && и || (подробнее — в статье про знаки препинания).


Что такое скрипт?

Скрипт – это набор команд, собранных и сохранённых в исполняемый файл. Скрипт можно отредактировать в текстовом редакторе, но запуск скрипта – это выполнение команд из кода.

Синтаксис командной строки: команда опции аргументы. Пример:

ipconfig /all

В скриптах часто встречается echo — вывод текста или переменных:

echo Привет, мир!

Разовую команду можно заменить скриптом с теми же шагами — тогда достаточно запустить файл .bat / .sh. Так же организуют автоматический бэкап через планировщик задач.

★ В Windows чаще всего встречаются:

КомпонентПримерыРоль
Эмулятор терминалаWindows Terminal, классическое окно "Командная строка"Окно и вкладки
ОболочкиCMD (cmd.exe, скрипты .bat/.cmd), PowerShell (powershell.exe / pwsh.exe, скрипты .ps1)Язык команд и автоматизация

Запуск: Win+R → cmd или powershell; в Windows 11 — "Терминал" из меню Пуск. Углублённо про PowerShell — раздел 5.26.

★ В Linux и macOS:

КомпонентПримеры
ЭмуляторGNOME Terminal, Konsole, Terminal.app
ОболочкиBash (.sh, стандарт во многих дистрибутивах), Zsh (macOS по умолчанию с Catalina), Fish (удобные подсказки)

Скрипты обычно начинаются со строки #!/bin/bash (shebang) — см. скрипты в Unix и галерею однострочников с разбором.


Как запустить командную строку?

Практическое задание

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

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

Командную строку можно запустить первично, или в конкретной директории.


Запуск в Windows

Пуск - Выполнить - cmd.exe либо Пуск - выполнить - PowerShell:

image.png image-1.png

Но при этом будет стандартный запуск, без прав администратора. Зачастую многие действия вроде конфигураций и установок, требуют именно админских полномочий, поэтому лучше прямо запустить от имени администратора, либо открыв файл утилиты, либо через поиск, к примеру, в Windows 11 можно написать "Командная строка" и выбрать способ:

image-2.png image-3.png image-4.png

Это важно. Если в инструкции к какой-то утилите указано именно запустить от имени администратора - ровно так и нужно запустить, иначе не получится.

Но простейший способ:

Правой кнопкой мыши по значку "Пуск" - "Windows PowerShell (администратор)", "Командная строка (администратор)" или "Терминал (администратор)".


Запуск в Linux

В Linux, терминал запускается с графического интерфейса через запуск на панели задач, или через сочетание клавиш:

  • ввести "Терминал" в поиске;
  • Ctrl+Alt+T;
  • выбрать терминал из меню приложений:

image-5.png image-6.png

Однако, это стандартный запуск. Он используется для каких-то общих и базовых команд. Но если нужно работать с определенными файлами в каталоге, то нужно перейти в директорию. Это можно сделать несколькими способами, во всех ОС:

  • если уже запустили командную строку — перейдите в нужную директорию (cd — Change Directory):
cd C:\путь\к\папке
cd /путь/к/папке

image-7.png

  • или изначально запустить в нужной папке:

image-8.png image-9.png

Так мы будем работать с конкретным каталогом.


Основные принципы работы

Команда — ключевое слово, которое указывает системе, что делать; например, ls в Linux показывает содержимое текущей директории, cd — переход между папками, grepпоиск текста в файлах. Таблицы по двенадцати блокам команд — в справочнике Linux.

Аргументы - дополнительные параметры, которые передаются команде. Например, ls -l выводит содержимое директории в виде списка.

Переменные окружения - специальные настройки, которые определяют, где система будет искать исполняемые файлы (например, переменная PATH).

Ключевые слова-команды включены по умолчанию в состав операционной системы, но только в базовой части - системные утилиты. Это программы, которые позволяют выполнять базовые задачи, такие как работа с файлами, управление процессами, настройка сети, управление пакетами.

Системные утилиты использовать легко - достаточно просто ввести в командной строке нужное ключевое слово, к примеру, та же cd для перехода в нужную директорию.

Сторонние утилиты – это программы, которые не входят в состав ОС по умолчанию. Их нужно устанавливать дополнительно (с сайта вручную или через менеджер, вроде PowerShell, Chocolatey или apt). После установки они могут быть использованы через командную строку, если правильно настроены переменные окружения.

Как использовать сторонние утилиты?

  • установка - через менеджер пакетов или вручную;
  • настройка переменных окружения - добавление пути к исполняемому файлу утилиты в переменную PATH;
  • использование - вызов утилиты через командную строку.

Если хотите погрузиться в искусство командной строки, есть интересные статьи в интернете, например вот тут: https://github.com/jlevy/the-art-of-command-line/blob/master/README-ru.md


Пример работы

Давайте рассмотрим на примере самых важных для разработчиков - Git, Docker и Java. Это, конечно, мы будем подробно разбирать позже, но нам сейчас нужно понять, как работает это всё. В нашем случае – это сторонние утилиты, которые можно установить через пакеты, допустим Chocolatey на Windows и apt на Linux. Для Git и Docker достаточно просто установить и уже можно использовать. А для Java требуется настройка переменных окружения.

  1. Git

Установка:

# Linux
sudo apt install git

# Windows (Chocolatey)
choco install git

Использование:

git init
git clone <url>

  1. Docker

Установка:

# Linux (Debian/Ubuntu; в других дистрибутивах — docker-ce из репозитория Docker)
sudo apt install docker.io

# Windows (Chocolatey)
choco install docker-desktop

Использование:

docker ps
docker run hello-world

  1. Java (JDK)

Установка:

# Linux
sudo apt install default-jdk

# Windows (Chocolatey, пример LTS)
choco install temurin21

Настройка JAVA_HOME:

# Linux (путь зависит от дистрибутива; уточните — dirname $(dirname $(readlink -f $(which java))))
export JAVA_HOME=/usr/lib/jvm/default-java

# Windows (cmd)
set "JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-21"

# Windows (PowerShell, текущая сессия)
$env:JAVA_HOME = "C:\Program Files\Eclipse Adoptium\jdk-21"

Использование:

java -version
javac file.java

Когда мы вводим команду в терминале, оболочка выполняет примерно такие шаги:

  1. Разбор строки на команду и аргументы.
  2. Проверка встроенных команд оболочки (cd, echo в Bash/CMD).
  3. Если не встроенная — поиск исполняемого файла в каталогах из переменной PATH.
  4. Запуск программы; код возврата попадает в $? / %ERRORLEVEL%.

Если команды нет в PATH:

$ foobar
bash: foobar: command not found
$ echo $?
127
PS> Get-Command foobar -ErrorAction SilentlyContinue
PS> # для внешней программы, если её запустили и она упала:
PS> $LASTEXITCODE

image-10.png

Дальше по разделу — основные команды Linux, Windows, знаки препинания и конвейеры.