Почти все современные программы и операционные системы рассчитаны на управление либо пальцем, либо мышкой. И это очень хорошо, если вы впервые открыли компьютер и ещё не знаете, что тут где. Все иконки выведены на экран, вы можете выбрать нужную команду, всё наглядно.
Но вы заметите, что опытные пользователи почти не касаются мышки: большую часть работы они делают с клавиатуры, и это у них получается гораздо быстрее. Это связано с тем, что нажимать на клавиши гораздо быстрее, особенно если уже есть мышечная память.
У программ есть горячие клавиши, чтобы ускорять работу. А у операционной системы есть командная строка — это как горячие клавиши, только для всего компьютера.
Что может командная строка
Командная строка может всё, что может операционная система, и больше:
- копировать и перемещать файлы, переименовывать их и создавать новые папки;
- форматировать диски, подключать их и отключать;
- запускать приложения и программы без интерфейса, давать им задания, получать результат;
- менять параметры системы, работать с сетью;
- до определённой степени — автоматизировать все эти дела; и многое другое.
Корректнее сказать так: командная строка умеет всё, что умеет операционная система, и даже больше.
Как вызвать командную строку
Командная строка встроена в каждый компьютер с Windows или MacOS. Программу, которая даёт доступ к командной строке, называют терминалом.
Если у вас Windows, для вызова терминала нужно нажать комбинацию клавиш Win+R, в появившемся окне набрать cmd и нажать Enter. В MacOS — нажать Cmd+пробел, набрать terminal и тоже нажать Enter (это стандартная настройка, её можно изменить).
Перед вами появится окно, куда можно вводить команды для компьютера.


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

Внешние команды — это все программы, которые пользователь ставит на компьютер сам. Часто бывает так, что при установке программа добавляет в систему нужные для себя вспомогательные программы — и они тоже становятся внешними командами. Например:
- вы поставили на компьютер программу VS Code, чтобы программировать на Python;
- после этого вы можете в командной строке набрать code, нажать клавишу ввода, и программа запустится;
- это значит, что сразу после установки этой программы у компьютера появилась новая команда — code.

Параметры команд
У многих команд есть параметры, которые дают дополнительные возможности.
Например, мы уже видели, как команда dir без параметров просто выдаёт нам список всех файлов и каталогов в текущей папке. Но если мы добавим параметр /p, то она покажет на экране не весь список сразу, а по частям, чтобы всё помещалось на экран:

А та же команда dir c параметром /w уберёт все подробности и выведет содержимое папки в виде нескольких колонок:

Параметры вызова можно комбинировать и добавлять к ним свои запросы. Например, если нам нужно запустить VS Code так, чтобы он на старте открыл определённый файл ninja_sword.js, то можно написать так:
code d:/ninja_sword.js

Примеры использования
С помощью командной строки можно решать много разных задач — от управления сервером до поиска файлов. Но вся мощь проявляется в случаях, когда нам нужно сделать много однотипных операций.
Представим такую ситуацию: мы скачали 30 подкастов, которые хотим послушать в дороге. Но после скачивания выяснилось, что громкость у всех записей очень тихая, и даже если выкрутить всё на максимум, её всё равно не хватает. Чтобы послушать подкасты, нам придётся:
- запустить аудиоредактор,
- по очереди открыть в нём каждый файл,
- вручную установить нужный уровень громкости,
- сохранить файл,
- открыть следующий и повторить всё то же самое,
- повторить ещё 28 раз
Очевидно, что это займёт много времени, и проще скачать другие подкасты, чем тратить столько сил на эти. Но, например, в MacOS мы можем открыть терминал и написать там две команды:
cd podcasts
for file in *; do wc -l $file; lame --scale 8 $file; done
Первая команда переходит в каталог с подкастами, а вторая:
- берёт все файлы в этой папке;
- получает их количество и название;
- в цикле запускает программу lame и указывает параметры для неё — поднять громкость в 8 раз у этого файла;
- повторяет цикл до тех пор, пока не обработаются все файлы.
В результате мы в той же папке получим те же файлы, но с увеличенной громкостью. По времени это будет гораздо быстрее, чем делать всё вручную. Но для этого нужно знать возможности командной строки, уметь с ней работать, знать команды и их параметры.
Вот что ещё можно делать через командную строку:
- следить за нагрузкой на процессор;
- настраивать автообновления программ;
- делать резервные копии по расписанию;
- генерировать тексты с помощью нейронки и результат сразу публиковать в телеграм-канале;
- собирать почту со всех ящиков, фильтровать только важные письма, собирать их в одно, красиво его оформить и распечатать на принтере;
- и что угодно ещё, если для этого есть команда или параметр вызова.
Зачем веб-разработчику командная строка
Затем, что большинство фреймворков ставятся и управляются из командной строки. Тот же Angular вообще позволяет через командную строку создавать шаблоны и заготовки приложений.
Если же вы занимаетесь веб-разработкой, то командная строка вам пригодится:
- для установки всего серверного инструментария, например PHP, Apache и MySQL;
- для работы с API и запросами;
- для настройки серверного окружения и разграничения доступа;
- для работы с репозиториями и для создания резервных копий проектов;
- для тестирования сервера под нагрузкой;
- для получения логов для анализа работы серверной части.