Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Командная строка Основы командной строки

Для работы с командной строкой понадобятся две вещи:

  1. Терминал
  2. Командный интерпретатор

Терминал

Терминал

Терминалом называют программу, которая эмулирует поведение "железного" терминала, состоящего из клавиатуры и монитора. В простейшем случае — это просто окошко с командной строкой внутри. Хороший терминал всё же не ограничивается одним окном, а позволяет открывать новые терминалы в табах — по такому же принципу, как работают вкладки в браузере. Такая функция есть в терминалах, идущих в составе Ubuntu и macOS. Терминал Windows не умеет ровным счётом ничего и нуждается в замене.

Некоторые терминалы позволяют делать сплиты, то есть разделять окно на части. Довольно удобный механизм, он реализован, например, в iterm2:

Сплиты в Iterm2

Хорошие терминалы также умеют восстанавливать завершённую сессию, создавать профили под разные задачи и многое другое.

Командный интерпретатор

У этого понятия множество синонимов, среди них shell ("шелл"), командная оболочка и командный процессор. Командная оболочка — программа, через которую пользователь (или администратор) управляет операционной системой и установленными программами, используя командную строку. Оболочка отличается от большинства других программ тем, что она является лишь средством для выполнения определённых задач, а не самой задачей. Shell запускается внутри терминала и приглашает к вводу команд.

~$ 

Каждая строка, передаваемая пользователем системе — это команда, которую та должна выполнить. После ввода команды обязательно нажать Enter, только в этом случае она отправится на исполнение. До этого момента её можно редактировать.

Символ $ используется как разделитель. Слева от него — настраиваемое сообщение для вывода, обычно текущая директория, а справа — то, что вводится пользователем. Все примеры в дальнейшем будут демонстрироваться без этого сообщения и символа. Ниже пример использования команды date, которая выводит текущую дату.

date

Sun Aug 26 14:02:59 CEST 2018
█

Terminal

Другой пример команды — комментарии. Как и в любых языках программирования, они ни на что не влияют, но ими мы будем пользоваться в дальнейшем для описания происходящего:

# Комментарий

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

Командная оболочка и терминал — не одно и то же. Терминал — это программа, которая запускает командную оболочку внутри себя.

Pipeline

Как вы увидите далее, shell — это полноценная среда программирования, а многие команды являются стандартными конструкциями любого языка программирования, такими как переменные, циклы или условия. Кроме того, некоторые команды являются программами, а некоторые — нет. В ближайших уроках для простоты мы будем говорить слово «команда», но потом объясним разницу.

Командную оболочку нередко называют реплом (REPL, Read-Eval-Print-Loop), что отражается в способе взаимодействия с пользователем:

  1. Read — шелл ждёт ввода команды от пользователя
  2. Eval — шелл исполняет введённую команду
  3. Print — шелл выводит результат
  4. Loop — возвращаемся к первому пункту

Этот процесс называется интерактивной сессией: после загрузки шелл ждёт ввода команды, затем он её исполняет, выводит результат и снова ждёт ввода команды. Так происходит до тех пор, пока не будет дана команда на выход из терминала или выключение компьютера. REPL — широко распространённый способ взаимодействия с пользователем. В следующих курсах вы увидите, что он есть и у баз данных, и у языков программирования.

Для вашего удобства, в среде Хекслета сразу запущено два терминала, которыми можно и нужно пользоваться, выполняя упражнения к урокам. Терминалы доступны в нижних вкладках (там, где описание задачи) под именами Terminal 1 и Terminal 2.

Во время изучения и экспериментов достаточно легко допустить ошибки. Всегда внимательно читайте вывод, в случае паники переоткройте терминал. Это позволит начать всё с чистого листа (если, конечно, не было произведено деструктивных действий).


Самостоятельная работа

Для того, чтобы научиться работать в командной строке, нужно как можно больше практиковаться. Для этого вам потребуется терминал.

  1. Установите терминал под вашу операционную систему, если его нет. Если вы используете Linux или MacOS, в вашей операционной системе уже есть установленный терминал. Можете использовать его или скачать более продвинутую версию, например, iTerm2 для MacOS и Tilix для Linux. Если вы работаете с ОС Windows, вам потребуется использовать WSL.

  2. Убедитесь, что внутри запускается bash-сессия. Сделать это можно так:

    echo $SHELL
    
    /bin/bash # - это вывод команды, введённой выше
    

Дополнительные материалы

  1. Руководство по настройке Windows для работы в командной строке

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов для веб-приложений
6 октября 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
6 октября 10 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
6 октября 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
6 октября 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов для веб-приложений
6 октября 10 месяцев
Иконка программы Верстальщик
Профессия
Верстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Fullstack-разработчик
Профессия
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
6 октября 16 месяцев

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»