Заготовка консольной программы
Платформа.NET (произносится «дотнет») включает не только среду разработки для нескольких языков программирования, называемую Visual Studio.NET, но и множество других средств, например, механизмы поддержки баз данных, электронной почты и др.
Важнейшими задачами при создании программ являются:
-переносимость – возможность выполнения на различных типах компьютеров;
-безопасность – невозможность несанкционированных действий;
-надёжность – способность выполнять необходимые функции в определённых условиях;
-использование готовых компонентов – для ускорения разработки;
-межъязыковое взаимодействие – возможность применять одновременно несколько языков программирования.
В состав платформы .NET для обеспечения переносимости входят компиляторы, переводящие программу не в машинные коды, а в промежуточный язык (Microsoft Intermediate Language, MSIL, или просто IL), который не содержит команд, зависящих от языка, операционной системы и типа компьютера. Программа на этом языке выполняется не самостоятельно, а под управлением системы, которая называется общеязыковой средой выполнения (Common Language Runtime, CLR).
Консольные приложения
Среда CLR может быть реализована для любой операционной системы. При выполнении программы CLR вызывает так называемый JIT-компилятор, переводящий код с языка IL в машинные команды конкретного процессора, которые немедленно выполняются. JIT означает «just in time», что можно перевести так «вовремя», то есть компилируются только те части программы, которые требуется выполнить в данный момент. Каждая часть программы компилируется один раз и сохраняется в кэше (область ОП для временного хранения информации) для дальнейшего использования.
Схема выполнения программы при использовании платформы .NET приведена на рисунке 1.1.
Сборка (.exe или .dll)
Рисунок 1.1 — Схема выполнения программы в .NET
Компилятор в качестве результата своего выполнения создаёт так называемую сборку– файл с расширением exe или dll, который содержит код на языке IL и метаданные. Метаданные представляют собой сведения об объектах, используемых в программе, а также сведения о самой сборке. Они позволяют организовать межъязыковое взаимодействие, обеспечивают безопасность и облегчают развёртывание приложений, то есть установку программ на компьютеры пользователей.
Сборка может состоять из нескольких модулей. В любом случае она представляет собой программу, готовую для установки и не требующую для этого ни дополнительной информации, ни сложной последовательности действий. Каждая сборка имеет уникальное имя.
Платформа .NET содержит огромную библиотеку классов, которые можно использовать при программировании на любом языке .NET. Общая структура библиотеки приведена на рисунке 1.2. Библиотека имеет несколько уровней. На самом нижнем находятся базовые классы среды, которые используются при создании любой программы: классы ввода-вывода, обработки строк, управления безопасностью, графического интерфейса, хранения данных и пр.
Над этим слоем находится набор классов, позволяющий работать с базами данных и XML. Классы самого верхнего уровня поддерживают разработку распределенных приложений, а также веб- и Windows-приложений. Программа может использовать классы любого уровня. Библиотека классов вместе с CLR образуют каркас(framework), то есть основу платформы.
Рисунок 1.2 — Структура платформы .NET
Среда Visual Studio.NET
Среда разработки Visual Studio.NET предоставляет мощные и удобные средства написания, корректировки, компиляции, отладки и запуска приложений, использующих .NET-совместимые языки. Корпорация Microsoft включила в платформу средства разработки для четырёх языков: C#, VB.NET, C++ и J#.
Платформа .NET является открытой средой. Это значит, что компиляторы для неё не могут поставляться и сторонними разработчиками. К настоящему времени разработаны десятки компиляторов для .NET, например, Ada, COBOL, Delphi, Eiffel, Lisp, Oberon, Perl, Python.
Все .NET –совместимые языки должны отвечать требованиям общеязыковой спецификации (Common Language Specification, CLS), в которой описывается набор общих для всех языков характеристик. Это позволяет использовать для разработки приложения несколько языков программирования и вести полноценную межъязыковую отладку. Все программы независимо от языка используют те же базовые классы библиотеки .NET.
Приложение в процессе разработки называется проектом. Проект объединяет всё необходимое для создания приложения: файлы, папки, ссылки и прочие ресурсы. Среда Visual Studio.NET позволяет создавать проекты различных типов, например:
— Windows-приложение использует элементы интерфейса Windows, включая формы, кнопки, флажки и пр.;
— консольное приложение выполняет вывод на экран «на консоль», то есть в окно командного процессора;
— библиотека классов объединяет классы, которые предназначены для использования в других приложениях;
— веб-приложение – это приложение, доступ к которому выполняется через браузер (например, Internet Explorer) и которое по запросу формирует веб-страницу и отправляет её клиенту по сети;
— веб-сервис – компонент, методы которого могут вызываться через Интернет.
Консольные приложения
Среда Visual Studio.NET работает на платформе Wondows и ориентирована на создание Windows- и веб-приложений, однако разработчики предусмотрели работу и с консольными приложениями. При запуске консольного приложения операционная система создаёт так называемое консольное окно, через которое идёт весь ввод-вывод программ. Внешне это напоминает работу в операционной системе в режиме командной строки, когда ввод-вывод представляет собой поток символов.
Консольные приложения наилучшим образом подходят для изучения языка, так как в них не используется множество стандартных объектов, необходимых для создания графического интерфейса.
Заготовка консольной программы
static void ]Main(string[ ] args)
//основное тело программы
Console.WriteLine(“Любая строка текста”);
Директива using System разрешает использовать имена стандартных классов из пространства имен System непосредственно без указании я пространства. Ключевое слово namespace создает для проекта собственное пространство имен, названное по умолчанию ConsoleApplication1. Это сделано для того, чтобы можно было давать программным объектам имена, не заботясь о том, что они могут совпасть с именами в других пространствах имен.
В языке С# программа представляет собой совокупность взаимодействующих между собой классов. В программе автоматически создан класс с именем Class1 . Внутри класса – метод Main(), который обязан присутствовать в любом приложении — с него начинается выполнение программы.
Console – имя стандартного класса из пространства имен System. Его метод WriteLine() выводит на экран заданный в кавычках текст.
Вопросы для самоконтроля
- Что такое среда разработки программ?
- Опишите состав любой среды разработки.
- Перечислите основные требования к программам.
- В чем отличие платформы . NET от стандартного подхода к разработке программ.
- Что такое язык IL, из чего он состоит?
- Что такое среда CLR?
- Что такое компилятор JIT, его функциональное назначение?
- Что такое сборка, метаданные?
- Что составляет основу платформы . NET?
- Изобразите заготовку консольной программы.
Воспользуйтесь поиском по сайту:
Источник: megalektsii.ru
Консольное приложение
Консольное приложение — это программа, которая для взаимодействия с пользователем использует консоль — клавиатуру и монитор, работающий в режиме отображения символьной информации (буквы, цифры и специальные знаки).
В операционной системе консольное приложение работает в окне командной строки (рис. 6.1), которое часто называют окном консоли.
Рис. 6.1. Консольное приложение работает в окне командной строки
Консольные приложения удобны для решения задач, в которых не предъявляется особых требований к интерфейсу. Они широко используются для решения системных задач. Следует обратить внимание, что многие утилиты Microsoft .NET Framework реализованы как консольные приложения.
Часть II. Практикум программирования
Консольное приложение может вывести информацию на экран и получить данные с клавиатуры одним из трех способов:
при помощи функций printf (вывод) и scanf (ввод);
вывести информацию в поток вывода ( cout ), прочитать данные из потока ввода ( cin );
при помощи методов WriteLine и ReadLine объекта Console .
Основным способом взаимодействия с пользователем в консольных .NETприложениях, созданных Microsoft Visual Studio, является использование объекта Console . Методы, обеспечивающие отображение и ввод данных, перечислены в табл. 6.1.
Таблица 6.1. Методы объекта Console
Выводит на экран (в окно консоли) строку st
Выводит на экран (в окно консоли) строку st , после чего
переводит курсор в начало следующей строки
Значением метода ReadLine является строка, набранная
пользователем на клавиатуре. Для преобразования
строки в число надо использовать, например, методы
System::ToInt32() или System::ToSingle()
Значением метода Read является код символа, набран-
ного на клавиатуре
Метод Console::Write выводит на экран (в окно консоли) строку, указанную в качестве параметра метода.
Если надо вывести значение числовой переменной, то для преобразования числа в строку следует использовать метод ToString . Вид (формат) строки, возвращаемой методом ToString , определяет параметр, указанный в инструкции вызова метода (табл. 6.2).
Таблица 6.2. Параметры метода ToString
Currency — финансовый (денежный). Используется для
представления денежных величин. Обозначение денеж-
ной единицы, разделитель групп разрядов, способ ото-
бражения отрицательных чисел определяют соответст-
вующие настройки операционной системы
Глава 6. Консольное приложение
Таблица 6.2 (окончание)
Scientific (exponential) — научный. Используется для
представления очень маленьких или очень больших чи-
сел. Разделитель целой и дробной частей числа задается
в настройках операционной системы
Fixed — число с фиксированной точкой. Используется
для представления дробных чисел. Количество цифр
дробной части, способ отображения отрицательных чисел
определяют соответствующие настройки операционной
General — универсальный формат. Похож на Number , но
разряды не разделены на группы
Number — числовой. Используется для представления
дробных чисел. Количество цифр дробной части, символ-
разделитель групп разрядов, способ отображения отри-
цательных чисел определяют соответствующие настрой-
ки операционной системы
Roundtrip — без округления. В отличие от формата
Number , этот формат не выполняет округления (количест-
во цифр дробной части зависит от значения числа)
Следует обратить внимание, что символ-разделитель целой и дробной частей числа задает операционная система. Этот же символ надо использовать и при вводе дробных чисел.
После выполнения инструкции Write курсор остается в той позиции экрана, в которую он переместился после вывода последнего символа строки. Следующая инструкция Write начинает вывод с той позиции экрана, в которой находится курсор.
Метод WriteLine отличается от метода Write тем, что после вывода строки курсор автоматически переходит в начало следующей строки.
Параметр метода WriteLine можно не указывать. В этом случае курсор будет переведен в начало следующей строки.
Метод ReadLine объекта Console обеспечивает ввод с клавиатуры строки символов. Для преобразования введенной строки в данные необходимо использовать соответствующие методы преобразования: System::ToInt16() ,
System::ToInt32() , System::ToSingle() , System::ToDouble() и т. д.
Следует обратить внимание на то, что в процессе преобразования строки в число возможны ошибки (исключения), например, из-за того, что при вводе дробного числа пользователь введет точку вместо запятой («правильным»
Часть II. Практикум программирования
символом, при стандартной для России настройке операционной системы, является запятая).
В качестве примера использования методов объекта Console в листинге 6.1 приведена программа пересчета цены из долларов в рубли.
Листинг 6.1. Консольное приложение
using namespace System;
Console::Write(L»Цена в долларах->»); st = Console::ReadLine();
Console::Write(L»Курс->»); st = Console::ReadLine(); k = Convert::ToSingle(st);
Console::WriteLine(); // пустая строка
st = usd.ToString(«f») + «USD = » + rub.ToString(«c»); Console::WriteLine(st);
// чтобы окно не исчезло с экрана
Console::Write(L»Press any key to continue. «); int ch = Console::Read();
Источник: studfile.net
Зачем нужна командная строка в современных компьютерах
Почти все современные программы и операционные системы рассчитаны на управление либо пальцем, либо мышкой. И это очень хорошо, если вы впервые открыли компьютер и ещё не знаете, что тут где. Все иконки выведены на экран, вы можете выбрать нужную команду, всё наглядно.
Но вы заметите, что опытные пользователи почти не касаются мышки: большую часть работы они делают с клавиатуры, и это у них получается гораздо быстрее. Это связано с тем, что нажимать на клавиши гораздо быстрее, особенно если уже есть мышечная память.
У программ есть горячие клавиши, чтобы ускорять работу. А у операционной системы есть командная строка — это как горячие клавиши, только для всего компьютера.
Что может командная строка
Командная строка может всё, что может операционная система, и больше:
- копировать и перемещать файлы, переименовывать их и создавать новые папки;
- форматировать диски, подключать их и отключать;
- запускать приложения и программы без интерфейса, давать им задания, получать результат;
- менять параметры системы, работать с сетью;
- до определённой степени — автоматизировать все эти дела; и многое другое.
Корректнее сказать так: командная строка умеет всё, что умеет операционная система, и даже больше.
Как вызвать командную строку
Командная строка встроена в каждый компьютер с 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 и запросами;
- для настройки серверного окружения и разграничения доступа;
- для работы с репозиториями и для создания резервных копий проектов;
- для тестирования сервера под нагрузкой;
- для получения логов для анализа работы серверной части.
Источник: thecode.media
Небольшой гайд по командам и утилитам консоли Windows XP,7,8,10
У консоли есть много команд, и этому посвящены отдельные учебники. Я покажу основные, самые популярные. Некоторые команды могут работать только в командной строке запущенной от имени администратора.
Почти любая команда может запускаться с параметрами. Чтобы посмотреть помощь по команде нужно ввести её со знаком вопроса, вот так: команда /? Необязательные параметры обозначены в квадратных скобках: Это дополнительные, т.е. уточняющие параметры вызова, которые можно не указывать, если устраивают умолчания.
Посмотрите небольшое видео как выполнять команды:
Команда чтения содержимого папки — dir
Отображает содержимое каталога. Для выбора другого каталога (не того, который отображается по умолчанию), необходимо указать требуемый путь. К примеру: dir C:Temp
Перейти в другую папку — cd
Меняет каталог. Текущее «местонахождение» можно посмотреть здесь: Для смены текущей папки нужно набрать команду: cd имя_каталога Например: cd c:windows Чтобы перейти на другой диск, достаточно просто ввести имя диска с двоеточием, например d: Обратите внимание:
- не обязательно прописывать диск, если требуемый каталог находится на уже открытом диске;
- чтобы при вводе команды «cd» можно было перейти к другому диску, в команде необходимо прописать параметр /D (так называемый флаг). Тогда команда примет следующий вид: cd /D d:temp
Команда создать каталог — mkdir
Создает новую папку с заданным названием. Для того, чтобы папка была создана в указанном каталоге, необходимо прописать соответствующую команду, например:
Эта же команда позволяет создать целое дерево каталогов, в таком случае команда будет выглядеть так:
mkdir c:123456 где цифры заменить на свои имена папок
Удаление папки — rmdir
Довольно полезная команда, с помощью которой можно удалить ненужный каталог. Выглядит она, например, вот так: rmdir c:temptest
Стоит учитывать, что в стандартном виде, командой удалятся только пустые каталоги. Если в папке есть содержимое любого вида, пользователю выдается сообщение «Папка не пуста». Для того чтобы удалить папку вместе с содержимым, к команде добавляют параметр /S. Тогда команда будет иметь следующий вид:
rmdir /s c:temptest
Подтверждается удаление нажатием клавиш «Y» и Enter.
Популярные утилиты и программы для консоли
Помимо встроенных команд, командную строку часто используют для запуска консольных (с текстовым интерфейсом) и обычных программ. Для этого не обязательно открывать саму консоль, а можно ввести команду прямо в окне «Выполнить». Но при этом, после её исполнения, окно быстро закроется и исчезнет. Т.е., если надо смотреть результаты исполнения утилиты, её надо запускать из самой командной строки.
Выключение компьютера — shutdown
Здесь большинство пользователей задают вполне логичный вопрос: зачем ради выключения компьютера лезть в консоль? Ответ прост. Для примера, компьютер работает над выполнением определенной задачи, прервать которую нельзя. А вам в это время нужно уйти, или банально лечь спать, при этом на всю ночь оставлять компьютер включенным не хочется.
Конечно, есть и другие способы включить таймер на выключение компьютера, но практически все эти способы связаны с запуском постороннего приложения. Если же их нет под рукой, то как нельзя кстати окажутся команды командной строки. Итак, для выключения компьютера, набираем: shutdown –s
Эта команда незамедлительно выключит компьютер. Если же необходимо отложить процесс, набираем: shutdown –s –t 1200
где цифры – это время, по истечении которого компьютер выключится (в секундах). После нажатия клавиши Enter, начнется отсчет времени до выключения ПК. При этом появится такое сообщение:
За 10 минут до конца появится ещё одно системное уведомление. Если необходимости в отключении компьютера больше нет, то остановить отсчет можно просто добавив к команде параметр –a: shutdown -a
Это отключит обратный отсчет.
Информация о системе — systeminfo
Как можно понять из названия, команда покажет пользователю некоторые сведения о системе и «железе» пользователя:
Но всё-таки, чтобы посмотреть параметры компьютера лучше использовать программы типа AIDA64.
Очищение экрана — cls
Позволяет очистить экран от введенных ранее команд. Вводится без параметров: cls
Получение информации о сетевых настройках — ipconfig
Команда без введения дополнительных параметров отобразит:
- информацию про IP-адрес
- маску подсети
- основной шлюз каждого из подключенных сетевых адаптеров.
Для получения более подробных сведений, команду вводят с параметром: ipconfig /all
Так можно узнать MAC-адреса сетевых карт, текущие DNS сервера, состояние IP-маршрутизации и другое.
Проверка диска на ошибки — chkdsk
Предназначена для проверки логических дисков и поиск возможных ошибок. Если не были введены дополнительные параметры, на экране появится информация о состоянии диска. Также вместе с данной командой часто используются некоторые ее параметры:
- /f – исправляет найденные на диске ошибки. При этом перед началом проверки диск необходимо заблокировать. Если этого не сделать, система запросит проверку при следующем запуске.
- /v – в процессе проверки выводит на экран имя каждого проверяемого файла и каталога.
- /r – обнаруживает поврежденные сектора и восстанавливает все данные, которые могут быть восстановлены.
Форматирование диска — format
Форматирует жесткий диск или флешку. Прописывается следующим образом: format С:
НЕ ВЫПОЛНЯЙТЕ ЭТУ КОМАНДУ, ЕСЛИ НЕ ЗНАЕТЕ ЗАЧЕМ, ИНАЧЕ МОЖЕТЕ ПОТЕРЯТЬ СВОИ ДАННЫЕ!
- /fs – определяет файловую систему форматируемого диска;
- /v – задает метку тома;
- /a – задает размер кластера. Не обязательно, т.к. система может определить размер кластера автоматически, в соответствии с размером диска.
Могут быть прописаны и другие команды, смотрите помощь. Форматировать диски в Windows 7/10 можно не только из командной строки, но и из контекстного меню диска в проводнике.
Информация о запущенных процессах — tasklist
Команда запускает утилиту, выводящую список запущенных процессов (с PID-кодами), а также предоставляет информацию о размере потребляемой оперативной памяти каждым процессом. Без дополнительных параметров утилита просто выведет список запущенных на компьютере процессов:
Если нужно просмотреть все процессы, запущенные на удаленном ПК, в команде прописывается параметр /s и указывается IP-адрес или доменное имя требуемого компьютера.
Завершение процессов — taskkill
Останавливает процесс, запущенный локальной или удаленной системой. Для остановки процесса по идентификатору, используется параметр /pid. То есть, команда будет выглядеть примерно так: taskkill /pid 5637
где 5637 – это PID (идентификатор процесса). Также есть возможность остановить процесс с определенным именем образа, для этого нужно добавить параметр /im. Впоследствии, команда будет выглядеть так: taskkill /im notepad.exe
где на месте «notepad.exe» своё имя программы. Иногда просто лень искать программу в меню «Пуск» и тогда я просто набираю имя запускаемого файла в окне «Выполнить». Самые часто используемые мной:
Редактор реестра — regedit
С этой утилитой многие уже имели возможность познакомиться, это редактор системного реестра. С помощью него изменяются скрытые настройки операционной системы, и лезть туда без надлежащих знаний не нужно, иначе можно сломать Windows.
Конфигурация системы — msconfig
Вызовет специальную службу «Конфигурация системы».
В принципе, большинство пользователей уже сталкивались с данным окном. Чаще всего им пользуются для отключения автозапуска программ.
Проверка системных файлов — sfc
Запускает утилиту, которая восстанавливает поврежденные системные файлы. Очень полезная утилита, которую можно дополнить также некоторыми командами:
- /scannow – для немедленной проверки защищенных системных файлов;
- /scanonce – для проверки защищенных системных файлов один раз при следующем запуске системы;
- /scanboot – для проверки защищенных системных файлов при каждом запуске системы.
Если при проверке обнаружатся повреждённые или «левые» файлы, то программа попросит вставить диск с установочным дистрибутивом Windows.
И напоследок утилиты, которыми я также часто пользуюсь:
- appwiz.cpl – открывает стандартное окно «Установка и удаление программ»
- calc – встроенный в Windows «Калькулятор»
- notepad – блокнот
- pbrush – графический редактор «Paint»
- diskmgmt.msc – окно управления дисками, здесь можно разбить жёсткий диск на разделы
- services.msc – управление системными службами
В заключение
Здесь предоставлен минимальный набор команд, которые можно использовать при работе с консолью. Существует еще много полезных, или даже просто интересных команд, многие из которых пользователь может изучить самостоятельно. Для этого, достаточно просто ввести в командную строку команду «help», и она покажет доступные команды.
А для того, чтобы узнать подробную информацию о любой из них – достаточно просто ввести запрос HELP и после пробела указать название команды. Консоль отобразит всю необходимую информацию, включая синтаксис и прочие составляющие команды.
Источник: it-like.ru
Пишем консольное (CLI) приложение на PHP. Часть 1.
В этой статье мы разберемся что такое консольные (CLI) приложения. Напишем простейшее CLI приложение. Реализуем получение аргументов приложения с помощью переменной $argv.
Что такое PHP CLI
В большинстве случаев php используется для обработки HTTP запросов. Однако таким образом можно решить далеко не все задачи более-менее сложного веб-приложения. Например, нам может потребоваться выполнять email рассылку или время от времени вносить изменения в базу данных. В таком случае, если продолжать использовать клиент-серверный подход, администратору сайта придется раз в день переходить по определенному адресу для запуска php скрипта, что, согласитесь, не очень удобно.
Для решения этой задачи, начиная с PHP 4.3 (в 2002 году), появилась официальная поддержка режима CLI. Это значит, что теперь php можно использовать для написания консольных программ, которые читают вводимые команды и выполняют запрошенные действия.
Первая CLI программа на PHP
Теперь давайте посмотрим как создавать такие программы. Для этого, конечно, должен быть установлен интерпретатор php. Более подробно процесс его установки мы рассмотрели в этой статье.
Для примера, напишем самое простое приложение на php. Для этого создадим файл cli.php и запишем в него следующее содержимое:
При обычном, клиент-серверном подходе, такое приложение выводит на экран браузера: Digital-Blog. Но теперь, мы попробуем запустить его в консоли. Для этого, откроем стандартный интерпретатор командной строки. В моем случае (Windows) это cmd.exe. Затем, перейдем в директорию с файлом cli.php и выполним команду:
php cli.php
Вывод будет следующим:
shell>php cli.php Digital-Blog
Это значит, что наше приложение успешно выполнилось.
Получение аргументов с помощью $argv
При вызове программы также можно указать аргументы командной строки — это необязательные строковые параметры, передаваемые операционной системой в программу при её запуске. В PHP их содержит глобальная переменная $argv в виде ассоциативного массива. Давайте изменим содержимое файла cli.php на:
Теперь, запустим нашу программу, указав несколько аргументов:
php cli.php a b c
Мы получим следующий вывод:
shell>php cli.php a b c Array ( [0] => cli.php [1] => a [2] => b [3] => c )
Как видите, значение с нулевым индексом это название нашего файла, а дальше идут аргументы командной строки. Теперь напишем программу, которая, в случае наличия аргумента «a», будет выводить «OK»:
Для проверки, сначала запустим программу без аргумента «a», а потом добавим его:
shell>php cli.php shell>php cli.php a OK
Получение значений аргументов с помощью $argv
Таким образом, мы можем только проверить наличие определенного аргумента. Для получения его значения, нам придется написать простой парсер, который будет представлять аргументы функции в виде ассоциативного массива. Его индексами будут являться имена аргументов, а значения будут значениями аргументов:
> print_r($parsed_args);
Теперь мы можем указывать значения аргументов через знак «=». Например, запустим эту программу с аргументом «-a», которому присвоим значение «test».
shell>php cli.php -a=test Array ( [a] => test )
Также, мы можем указать несколько аргументов:
shell>php cli.php -a=1 -b=2 -c=3 Array ( [a] => 1 [b] => 2 [c] => 3 )
В приведенной выше программе, массив $argv перебирается со второго элемента циклом for. Каждый элемент проверяется на соответствие регулярному выражению. Если он соответствует, то символы между «—» и «=» записываются в индекс элемента ассоциативного массива $parsed_args, а символы после «=» в его значение. После этого массив $parsed_args выводится в консоль.
В следующих частях мы рассмотрим более простой способ получения значений аргументов, будем обрабатывать пользовательский ввод и форматировать вывод нашей программы. А также научимся запускать приложение без «php» в начале.
Ну а на этом все, надеюсь эта статья была вам полезна. А если у вас возникли вопросы — вы можете задать их в комментариях)
Источник: digital-blog.ml