Интерфейс командной строки

Введение

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

Командная строкаcommand line — принцип организации пользовательского интерфейса на основе ввода текстовых команд с клавиатуры и текстового вывода результатов на экран. Интерфейс на основе командной строки — command line interface, CLI.

Оболочка командной строки или просто оболочкаshell — программное обеспечение, отвечающее за поддержку командной строки (обычно это компонент ОС, но может быть и сторонним ПО). Примеры: cmd.exe и Powershell в Windows, sh, csh, bash, ksh и др. в Unix-подобных системах. Оболочка командной строки предоставляет собственное окружение: “переменные среды” environment variables (глобальные и локальные для текущего сеанса) и интерпретатор текстовых команд.

Пакетный файлbatch file или сценарий — содержащий команды оболочки файл, который можно запустить на исполнение как исполняемый файл.

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

Консольconsole — исторически реализация терминала с клавиатурой и текстовым дисплеем. В настоящее время это слово часто используется как синоним сеанса работы или окна оболочки командной строки. В том же смысле иногда применяется и слово “терминал”.

Консольное приложениеconsole application — вид ПО, разработанный с расчётом на работу внутри оболочки командной строки, т.е. опирающийся на текстовый ввод-вывод.

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

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

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

Впоследствии миниатюризация вычислительных устройств позволила сделать схему “ЭВМ ↔ сеть ↔ терминалы” необязательной, совместив ЭВМ и терминал в одном устройстве — персональном компьютере. Тем не менее, старый текстовый интерфейс продолжил существование ввиду своей исключительной простоты.

Обычно операционные системы предоставляют специальную программу — оболочку командной строки, работающую в текстовом режиме и принимающую некоторый относительно стандартизованный набор команд, с помощью которых пользователь может управлять работой ОС, запускать другие программы. Эту программу “по старой памяти” и называют “терминалом” или “консолью”.

В рамках стандартов языков C и C определён базовый набор средств, позволяющий работать в режиме текстового интерфейса. Соответственно, например, проект приложения Visual C , использующий эти средства, называется “консольным”.

Общая схема работы консольного приложения показана на рисунке.

Схема работы консольного приложения
Схема работы консольного приложения

Разложим содержание этой схемы по пунктам.

  • Работа консольного приложения начинается с первой строчки функции main и заканчивается при выходе из этой функции.
  • Во время работы консольному C -приложению доступны три текстовых потока: cin для ввода (по умолчанию подключен к клавиатуре), cout для вывода (по умолчанию выводит текст в окно консоли) и cerr для вывода сообщений об ошибках (по умолчанию тоже выводит текст в окно консоли).
  • При запуске операционная система передаёт приложению параметры командной строки (см. ниже) в виде набора строк.
  • При завершении работы приложение передаёт ОС целое число — код ошибки. (Стандартизовано два варианта — “успех” EXIT_SUCCESS, традиционно равный нулю, и “неудача” EXIT_FAILURE.)
:/>  Как запустить поиск в папке в explorer.exe через cmd ? — Хабр Q&A

Функция main пользуется определёнными привилегиями: она может ничего не принимать, игнорируя таким образом любые переданные ей системой параметры командной строки, она может не возвращать код ошибки явно (в общем случае это, однако, не означает, что всегда будет возвращён код успешного завершения программы — на самом деле, может быть возвращено любое число). Пример функции main, принимающий параметры командной строки, выглядит так:

При вводе в стандартный поток ввода с консоли можно явно завершить ввод с помощью управляющего символа “конец файла” end-of-file, EOF. В Windows для этого нужно нажать Ctrl Z и Enter, в Unix-подобных системах с той же целью традиционно используется сочетание Ctrl D.

Востребованные сетевые команды командной строки

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

Команда ping

Наверное, это самая популярная команда среди пользователей ОС Windows (как, впрочем, и других операционных систем). Предназначена она для проверки доступности и качества связи между компьютером и целевым IP-адресом. Также команда может применяться для определения IP-адреса сайта по доменному имени сайта и для выполнения других задач.

Определим, есть ли связь с каким-нибудь IP-адресом. Пусть это будет — 173.194.73.139 (IP-адрес поисковой системы Google). Вводим следующую команду:

ping 173.194.73.139

Как видим, обмен пакетами с указанным IP-адресом осуществляется, значит, связь есть. Если бы ее не было, картина была бы следующая (уберем из IP Google последнюю цифру):

“100% потерь” означает, что связь установить не удалось.

Запуск системных компонентов и программ из командной строки

Здесь стоит отметить, что запускать системные компоненты и программы все же проще не напрямую из командной строки, а из ранее упомянутого приложения “Выполнить”. Но разницы в синтаксисе (написании) самих команд никакой нет. В обоих случаях после ввода команды достаточно нажать “Enter”.

Вот список наиболее востребованных команд для запуска системных приложений и компонентов:

  • control — запуск “Панели управления Windows”.
  • regedit — запуск “Редактора реестра”.
  • devmgmt.msc — запуск “Диспетчера устройств”.
  • taskmgr — запуск “Диспетчера задач”.
  • services.msc — запуск приложения “Службы”.
  • appwiz.cpl — “Программы и компоненты” (“Установка и удаление программ”).

И это далеко не полный список команд запуска системных приложений и компонентов, а лишь самые востребованные у нас — обычных пользователей.

А вот 4 команды для запуска предустановленных (стандартных) в Windows программ:

  • calc — запуск “Калькулятора”.
  • mspaint — запуск графического редактора “Paint”.
  • notepad — запуск текстового редактора “Блокнот”.
  • wordpad — запуск текстового редактора “WordPad”

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

Как открыть командную строку windows?

Некоторые из консольных команд можно выполнить лишь из учетной записи администратора. Потому лучше сразу запомнить, как запускать интерпретатор с максимальным количеством прав доступа к системе. В ОС Windows 7/8/10 делается это просто:

  • Откройте “Поиск” в/около меню “Пуск”.
  • Впишите поле поиска “Командная строка”.
  • В результатах поиска отобразится нужная нам программа. Кликните по ней правой кнопкой мыши, затем выберите из выпадающего меню пункт “Запустить от имени администратора”.
:/>  Как проверить, есть ли Bluetooth на ноутбуке или компьютере и как его найти? Как проверить, есть ли Bluetooth на компьютере: инструкции и советы

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

  • Нажмите на клавиатуре клавиши “Win” и “R”.
  • Откроется окно “Выполнить”.
  • Впишите в него команду cmd и нажмите “ОК”.

Так или иначе, системное приложение “Командная строка Windows” будет запущена и готова выполнению пользовательских команд:

Команды для использования реестра

Реестр Windows хранит конфигурационную информацию операционной системы, приложений, пользователей и оборудования. Эти данные содержатся в разделах (keys) и параметрах (values) реестра, которые размещаются в определенном корневом разделе (root key), который контролирует, как и когда используются разделы и параметры.

Если Вы знаете пути к разделам и понимаете допустимые типы данных в разделах, то можете использовать команду REG для просмотра разделов и параметров и манипуляций над ними самыми разнообразными способами. REG поддерживает несколько подкоманд:

  • REG add — добавляет в реестр новый подраздел или элемент;
  • REG delete — удаляет из реестра подраздел или элемент;
  • REG query — выводит список элементов раздела и имена подразделов (если они есть);
  • REG compare — сравнивает подразделы или элементы реестра;
  • REG сору — копирует элемент реестра по указанному пути раздела на локальной или удаленной системе;
  • REG restore — записывает в реестр ранее сохраненные подразделы, элементы и параметры;
  • REG save — сохраняет копию указанных подразделов, элементов и параметров реестра в файл.

Краткий справочник по командам командной оболочки (cmd.exe)

Синтаксис любой внутренней команды (и большинства внешних) можно получить, введя в командной строке имя команды и /?, например:

   
   copy /?

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

Перезагрузка и выключение систем из командной строки

Системы нередко приходится перезагружать или выключать. Один из способов — использовать для этого утилиту Shutdown, которая позволяет работать с локальной и удаленными системами. Другой способ управлять выключением или перезагрузкой системы — назначить задание для выключения.

Управлять перезагрузкой и выключением локальной системы позволяют следующие команды.

Выключение локальной системы:

  
  shutdown /s /t ЗадержкаВыключения /1 /f

Перезагрузка локальной системы:

  
  shutdown /r /t ЗадержкаВыключения /1 /f

Работа с командной строкой

Вариант для Visual C . Создайте проект консольного приложения с названием “HelloWorld” и введите приведённую выше программу. Откройте свойства проекта. В разделе “Отладка” введите следующее значение в параметр “Аргументы команды”.

a -b c >log.txt

Параметры командной строки, используемые при запуске программы из IDE
Параметры командной строки, используемые при запуске программы из IDE

Запустите отладку. Теперь в папке проекта возник файл log.txt, содержащий четыре строчки текста. Нулевым параметром командной строки передаётся сама команда со всеми параметрами.

“Аргументы команды” позволяют задать параметры командной строки, с которыми будет запущено наше приложение при отладке. В качестве разделителя используется пробел, поэтому если требуется передать параметр, включающий пробелы, то следует заключить его в двойные кавычки, например “Program Files”. Кроме собственно параметров, которые получит приложение через argc и argv, можно указать директивы командной строки.

:/>  Компьютерра: Управление окнами Windows из консоли

Например, можно явно указать источник потока stdin, записав <источник. Например, вместо того, чтобы вводить данные с клавиатуры, в качестве источника можно подключить файл. Аналогично, вместо того, чтобы выводить данные, отправляемые в stdout, в окно консоли, можно сохранить их в файл, записав >файл.

Даже если мы перенаправили stdout в файл, сообщения об ошибках, отправляемые в stderr, всё равно будут появляться в окне консоли. Чтобы сохранять их в отдельный файл, можно дописать 2>файл. Дескриптор 2 привязан к stderr (соответственно, 1 – к stdout, 0 – к stdin).

Работа с файлами и папками из командной строки

Бывают ситуации, когда невозможно запустить стандартный файловый менеджер “Проводник Windows”. Например, из-за действия вирусов-блокировщиков или при системных сбоях. В любом случае все, что можно сделать при помощи “Проводника”, можно сделать и при помощи командной строки. Начнем с самого простого — просмотра содержимого папок.

Управление приложениями, процессами и производительностью

Всякий раз, когда операционная система или пользователь запускает службу, приложение или команду, Microsoft Windows запускает один или более процессов для управления соответствующей программой. Несколько утилит командной строки упростят вам мониторинг программ и управление ими. К этим утилитам относятся:

  • Pmon (Process Resource Manager) — показывает статистические данные по производительности, включая использование памяти и процессора, а также список всех процессов, выполняемых в локальной системе. Позволяет получать детальные «снимки» задействованных ресурсов и выполняемых процессов. Pmon поставляется с Windows Resource Kit;
  • Tasklist (Task List) — перечисляет все выполняемые процессы по имени и идентификатору процесса, сообщает информацию о сеансе пользователя и занимаемой памяти;
  • Taskkill (Task Kill) — останавливает выполнение процесса, заданного по имени или идентификатору. С помощью фильтров можно останавливать процессы в зависимости от их состояния, номера сеанса, процессорного времени, занимаемой памяти, имени пользователя и других параметров.

Вот в принципе все, что я хотел рассказать об основах командной строки Windows.

Управление системными службами

Службы обеспечивают ключевые функции рабочих станций и серверов. Для управления системными службами на локальных и удаленных системах используется команда контроллера служб (service controller command) SC, имеющая набор подкоманд, ниже описывается лишь их часть:

  • SC config — настройка учетных записей регистрации и запуска служб;
  • SC query — вывод списка всех служб, настроенных на компьютере;
  • SC qc — отображение конфигурации определенной службы;
  • SC start — запуск служб;
  • SC stop — остановка служб;
  • SC pause — приостановка работы служб;
  • SC continue — возобновление работы служб;
  • SC failure — задание действий, выполняемых при сбое службы;
  • SC qfailure — просмотр действий, выполняемых при сбое службы.

Во всех командах можно указывать имя удаленного компьютера, со службами которого Вы хотите работать. Для этого вставьте UNC-имя или IP-адрес компьютера перед используемой подкомандой. Вот синтаксис:

  
  sc ИмяСервера Подкоманда

Оставьте комментарий

Adblock
detector