Ключевые концепции

Терминал

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

Компьютерный зал 70-х годов
Изначально этот термин относился к физическим устройствам (компьютерным терминалам), которые использовались для взаимодействия с мейнфреймами — большими суперкомпьютерами прошлого.

В современном мире под терминалом чаще всего имеют в виду программные эмуляторы тех самых старых терминалов. Например, приложение Terminal в macOS, Command Prompt и PowerShell в Windows или разные эмуляторы для Linux вроде GNOME Terminal и Konsole.

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

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

Терминал CMD в Windows
Терминал CMD в Windows
Приложение Terminal в macOS
Приложение Terminal в macOS

При открытии терминала запускается режим командной строки. Здесь можно вводить команды, нажимать клавишу Enter и мгновенно получать результаты.

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

А ещё есть масса вещей, которые в командной строке делаются в разы быстрее, либо возможны только там. Например, передать результат одной команды в другую, выполнить одну и ту же команду для сотни файлов разом или запустить что-то на удалённом сервере.