Зарегистрируйтесь для доступа к 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+ часов теории
  • 900 практических заданий в браузере
  • 360 000 студентов
Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

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

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

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

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

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

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

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

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