Основы запуска и использования утилит командной строки в Windows


Актуальна ли командная строка и утилиты командной строки в наше время?

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

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

Программы без графического интерфейса называются «утилиты командной строки», «программы с интерфейсом командной строки» (command-line interface, CLI).

Не нужно думать, что утилиты командной строки являются каким-то атавизмом и чем-то устаревшим. Это очень далеко от истины! Целые пласты специализированных программ в самых разных сферах развиваются именно как утилиты с интерфейсом командной строки.


Цель данной заметки дать общее представление пользователям Windows о том, как обращаться с командной строкой. Если вы скачали утилиту и не можете её запустить, то данная заметка предназначена для вас!

Когда я кликаю на файле exe, мелькает чёрное окно, а затем исчезает

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

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

В Windows существует несколько сред для выполнения команд:

  • CMD
  • PowerShell (включает в себя все возможности CMD и предоставляет множество командлетов для администрирования настольных систем и серверов Windows)

Также ещё можно вспомнить Windows Terminal, но это не отдельная среда, имеющая собственные команды, а всего лишь приложение для удобного ввода команд CMD и PowerShell.

Смотрите также:

Для запуска программы необходимо открыть окно Терминал Windows (либо PowerShell). Чтобы это сделать нажмите сочетание клавиш Win+x, и выберите «Терминал Windows» или «Терминал Windows (Администратор)»:

Что выбрать: «Терминал Windows» или «Терминал Windows (Администратор)»

Утилиты могут запускаться с правами обычного пользователя, либо требовать запуск с правами Администратора.

С правами Администратора, например, должны запускаться следующие программы:

  • Программы, регистрирующие и устанавливающие себя как системные службы
  • Программы, требующий низкоуровневый доступ к устройствам (например, программы для разметки или исправления ошибки дисков)
  • Программы, меняющие системные настройки, которые может изменить только администратор.

Пример программ с интерфейсом командной строки, требующих прав Администратора:


  • Apache (веб-сервер, регистрирует и запускает себя как системная служба)
  • MySQL (СУБД, регистрирует и запускает себя как системная служба)

Пример утилит, которые не требуют повышенных привилегий:

Как запустить исполнимый файл в командной строке

Рассмотрим запуск программы с интерфейсом командной строки на примере веб-сервера Apache (httpd).

Первый вариант: можно просто перетащить исполнимый файл в окно командной строки. Исполнимым файлом Apache является httpd.exe.

Второй вариант: в командной строке можно сменить текущую рабочую директорию на ту, где размещены исполнимые файлы Apache. К примеру, у меня программа расположена в папке C:\Apache24\bin\, чтобы сменить текущую рабочую папку, используется команда cd, после которой указывается папка, в которую требуется перейти, в моём случае команда выглядит так:

cd C:\Apache24\bin\

Как можно увидеть из скриншота, папка C:\Users\MiAl изменена на C:\Apache24\bin\.

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

.\httpd.exe

Apache является сетевой службой, то есть программой, использующей для своей работы компьютерную сеть. Конкретно Apache прослушивает входящие соединения на 80 порту (открывает порт). По этой причине Файервол Windows спрашивает, разрешить ли доступ программе «Apache HTTP Server», выберите «Разрешить доступ».

Уже на этом этапа веб-сервер запущен и вы можете открыть в веб-браузере адрес http://localhost/

Для остановки службы нажмите Ctrl+c.

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

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

Также утилиты, как правило, имеют встроенную справку по доступным опциями, которую можно вывести с помощью опции -h или опции --help, которую нужно указать после имени исполнимого файла.

Например:

.\httpd.exe -h

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

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

Файлы README, ReadMe.txt, README.md и документация к программам

Обычно утилиты сопровождаются документацией. К примеру, это архив Apache:

Как можно увидеть, к архиву приложен файл ReadMe.txt с документацией — это документация от тех, кто компилировал Apache для Windows.

Внутри папки Apache24 содержится ещё больше файлов и папок с информацией об установке и прочем.

Это архив PHP — также содержится файл README.md, в котором дана справочная информация.

Архив MySQL, в нём содержися файл README и папка с документацией или ссылкой на документацию.

Программа в переменной среды PATH

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

В качестве альтернативы можно указать полный путь до исполнимого файла, например:

C:\Server\bin\Apache24\bin\httpd.exe

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

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

find /?

Дело в том, что для операционных систем существует такое понятие как переменная среды PATH.

Суть переменной среды PATH в следующем:

1. Переменной PATH присваивается значение, которое состоит из перечня папок, то есть путей в системе.

2. При запуске файла в командной строке операционная система пытается найти его как в текущей папке (куда вы перешли с помощью команды «cd», либо открытой по умолчанию), так и в каждой папке, указанной в переменной среды PATH

3. Если файл найден в текущей папке, либо в любой папке PATH, то он запускается.

Именно по этой причине всегда работает следующая команда:

find /?

Причина в том, что она помещена в одну из папок, указанной в PATH (а именно в C:\Windows\System32\).

Чтобы посмотреть текущее значение переменной среды PATH выполните любую из следующих команд:

Get-ChildItem -Path Env:PATH

$env:PATH

Пример содержимого PATH в Windows 11:

C:\Program Files\PowerShell\7-preview;C:\Program Files\ImageMagick-7.1.0-Q16-HDRI;C:\Server\bin\PHP\;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\libnvvp;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\Nsight Compute 2022.1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\PowerShell\7-preview\preview;C:\Users\MiAl\AppData\Local\Microsoft\WindowsApps

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

Настроить значение PATH (и других переменных окружения) вы можете как в графическом интерфейсе, так и в командной строке.

Смотрите также: Работа с переменными окружения в PowerShell

Нужно ли указывать расширение исполнимого файла

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

hashcat.exe

hashcat

Заключение

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

Если при запуске утилиты у вас возникла ошибка, попробуйте запустить программу в командной строке с повышенными привилегиями (с правами админа).

Если вы получили сообщение, что «файл не найден», перейдите в папку с установленной программой с помощью команды cd, либо перетащите исполнимый файл в командную строку.

Если при запуске программы вы получили сообщение об ошибке внутри программы, то изучите подробнее опции утилиты и примеры её запуска.


Добавить комментарий

Ваш адрес email не будет опубликован.

wp-puzzle.com logo