Как запустить программу в консоли

Содержание

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как запустить PHP скрипт без веб-сервера

Интерпретатор PHP стал неотъемлемой частью практически каждого веб-сервера. Подавляющее большинство веб-приложений написаны на PHP. Поэтому технология PHP очень стойко у многих ассоциируется именно с веб окружением, со средой веб-сервера. Но на самом деле, запускать скрипты PHP можно без веб-браузера.

Речь идёт не о специально созданных как веб приложения программах, таких как WordPress, phpMyAdmin, гостевые книги, форумы и прочее. Такие скрипты специально создавались для работы в условиях веб-сервера и для вывода результатов в веб-браузер. Вряд ли удастся полноценно с ними работать в командной строке.

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

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

Ещё запуск PHP скриптов в консоли удобен для изучающих язык. Хотя кто-то может с этим не согласиться. При выводе результатов в консоль, а также при передаче аргументов в скрипт, не нужно уделять внимание HTML. Но если вы изучаете PHP для создания веб-приложений и онлайн сервисов, то вам всё равно потом придётся доучивать особенности передачи аргументов из веб-браузера (в окружении сервера), а также HTML вообще, поскольку весь вывод скриптов нужно будет оформлять для браузеров пользователей.

Как запустить PHP скрипт в командной строке Linux

У вас должен быть установлен PHP, к счастью, в Linux интерпретатор PHP устанавливается очень просто, а в некоторых дистрибутивах присутствует по умолчанию. Если у вас его ещё нет, то установите его одной из следующей команд.

В Debian, Kali Linux, Linux Mint, Ubuntu:

sudo apt install php

В Arch Linux, BlackArch:

sudo pacman -S php

Установка полного веб-сервера в Linux Mint описана здесь, в Ubuntu здесь, в Arch Linux/BlackArch здесь, а в Kali Linux он уже установлен, про то, как его запустить здесь.

В остальном запуск скриптов в консоли, в том числе опции запуска, в Linux и Windows идентичные.

Если вы совсем новичок в Linux, то также смотрите Азы работы в командной строке.

Как запустить PHP скрипт в командной строке Windows

Если вы знакомы с запуском консольных программ в Windows или хотя бы в Linux, то для вас всё совсем просто — везде программы запускаются примерно одинаково. Но начнём по порядку для новичков.

Если вы хотите не только возможность запускать PHP из командной строки, но и полноценный веб-сервер Apache + PHP + MySQL на Windows, то выполните установку по этой статье.

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

Как запускать Java программу из командной строки

Если вы часто будете запускать PHP скрипты из командной строки Windows, то настоятельно рекомендуется Добавить путь до PHP в переменную окружения PATH в Windows. Благодаря этому не придётся каждый раз указывать полный путь до файла php.exe.

Теперь, когда PHP установлен и путь до php.exe добавлен в переменную окружения Windows, открываем командную строку, для этого нажмите сочетание клавиш Win+x и выберите Windows PowerShell.

Для проверки, что нормально установилось, посмотрим справку по PHP:

php -h

На самом деле, мы запускаем файл php.exe, но расширение можно отбросить. То есть предыдущая запись эквивалентна

php.exe -h

Справка и опции запуска PHP скриптов в командной строке

Справка содержит опции для разнообразных вариантов запуска файлов .php в командной строке, поэтому приведу её перевод полностью.

php [опции] [-f] [—] [аргументы. ] php [опции] -r [—] [аргументы. ] php [опции] [-B ] -R [-E ] [—] [аргументы. ] php [опции] [-B ] -F [-E ] [—] [аргументы. ] php [опции] -S : [-t docroot] [router] php [опции] — [аргументы. ] php [опции] -a

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

Читайте также:
Программа которая записывает под диктовку

-a Запустить интерактивный шелл (оболочку) -c | Искать файл php.ini в этой директории -n Не будут использоваться конфигурационные (ini) файлы -d foo[=bar] Установить INI запись для значения ‘bar’ -e Сгенерировать расширенную информацию для отладчика/профайлера -f Разобрать и выполнить . -h Справка -i Информация о PHP -l Только проверка синтаксиса (lint) -m Показать скомпилированные модули -r Запустить PHP без использования тэгов скрипта -B Запустить PHP перед обработкой строк ввода -R Запустить PHP для каждой строки ввода -F Разобрать и выполнить для каждой строки ввода -E Запустить PHP после обработки всех строк ввода -H Спрятать любые переданные аргументы от внешних инструментов. -S : Запустить встроенный веб-сервер. -t Указать корневую папку документов для встроенного веб-сервера. -s Подсветка для HTML кода. -v Номер версии -w Вывести исходник с убранными комментариями и белыми пробелами. -z Загрузить расширение Zend . args. Передаваемые в скрипт аргументы. Используйте — args когда первый аргумент начинается с — или скрипт считывается с stdin (стандартного ввода) —ini Показать имена конфигурационных файлов —rf Показать информацию о функции . —rc Показать информацию о классе . —re Показать информацию о расширении . —rz Показать информацию о расширении Zend . —ri Показать конфигурацию для расширения .

Как запустить .php скрипт в командной строке Windows и Linux

Для запуска .php файла в консоли Windows используется следующая команда:

php -f путьдофайла.php

Опцию -f можно отбросить, то есть предыдущая и следующая команды равнозначны:

php путьдофайла.php

Я создал тестовый файл, который расположен по пути C:UsersAlexDocumentsPHPtest.php тогда я могу запустить его в PHP так:

php -f C:UsersAlexDocumentsPHPtest.php
php C:UsersAlexDocumentsPHPtest.php

Как передать аргументы PHP скрипту в командной строке

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

php путьдофайла.php ‘аргумент1’ ‘аргумент2’ ‘аргумент3’ ‘аргумент_n’

Пример запуска PHP скрипта с тремя аргументами:

php C:UsersAlexDocumentsPHPtest.php ‘Alex’ ‘hackware.ru’ ‘Admin’

Как в PHP скрипте обратиться к аргументам

Переданные аргументы содержаться в массиве $argv. Причём, порядковый номер аргумента соответствует номеру в массиве. То есть первый аргумент будет помещён в $argv[1], второй в $argv[2] и так далее.

Самый первый элемент массива с именем $argv[0] содержит полный путь до запускаемого скрипта.

Содержимое файла test.php:

Запустим его и передадим в скрипт три аргумента:

php C:UsersAlexDocumentsPHPtest.php ‘Alex’ ‘hackware.ru’ ‘Admin’

Как в PHP получить данные от пользователя в консоли

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

Кстати, при работе в окружении веб-сервера, то есть когда PHP скрипт выполняет задачи для веб-сайта, возможность передать ему аргументы реализована с помощью HTTP методов GET и POST. Эти аргументы передаются перед запуском скрипта, и уже после запуска PHP скрипта новые данные отправить нельзя — нужно ждать завершения работы программы, и при необходимости запустить её ещё раз с новыми данными.

Во время работы скрипта может потребоваться ввод новых данных, в консоли это достигается с помощью строки запроса, в которую пользователь может ввести значение и нажать Enter для передачи его скрипту. В контексте веб-сайта такой возможности — передать данные уже во время выполнения скрипта — нет. То есть консольный запуск PHP скриптов с аргументами не только проще (не нужно возиться с HTML формой), но и даже более гибкий.

В PHP для запроса пользователю используется функция readline.

Эта функция одинаково работает и на Windows и на Linux. Причём на Linux она имеет интерактивные возможности Bash, например, сохраняет историю ввода, к которой можно вернуться с помощью стрелок. На Windows эта возможность появилась начиная с PHP 7.1.

Если сильно надо, можно настроить автозавершение вводимых данных. Все функции GNU Readline рассмотрены здесь. Я же коснусь только readline, которая считывает введённую пользователем строку. С этой функцией можно указать один опциональный аргумент — строку, которая будет показана пользователю в приглашении.

Пример консольного PHP скрипта, которые запрашивает у пользователя данные в приглашении командной строки:

Проверка синтаксиса скрипта PHP в командной строке

С опцией -l будет проверен синтаксис, то есть не нарушены ли правила кода PHP, но сам файл скрипт не будет выполнен:

php -l C:UsersAlexDocumentsPHPtest.php No syntax errors detected in C:UsersAlexDocumentsPHPtest.php

Или если в файле есть ошибки:

php -l C:UsersAlexDocumentsPHPtest.php PHP Parse error: syntax error, unexpected end of file in C:UsersAlexDocumentsPHPtest.php on line 20 Parse error: syntax error, unexpected end of file in C:UsersAlexDocumentsPHPtest.php on line 20 Errors parsing C:UsersAlexDocumentsPHPtest.php

Выполнение команд PHP в интерактивном режиме

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

Для запуска интерактивного шелла:

php -a

Запуск отдельных команд PHP

Для выполнения отдельных команд используйте опцию -r:

php -r ‘echo 2**100;’

Запуск встроенного в PHP веб-сервера

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

-S : Запустить встроенный веб-сервер. -t Указать корневую папку документов для встроенного веб-сервера.

Допустим, в качестве прослушиваемого IP адреса я хочу установить 127.0.0.1, в качестве прослушиваемого порта — 84, корневая папка документов веб-сервера у меня расположена в C:UsersAlexDocumentsPHP, тогда команда запуска следующая:

Читайте также:
Как обойти регистрацию в программе

php -S 127.0.0.1:84 -t C:UsersAlexDocumentsPHP

В этой папке у меня файл test_2.php со следующим содержимым:

В самом браузере:

Можно было бы из спортивного интереса попробовать во встроенном веб-сервере запустить WordPress, но что-то лень…

Получение справки в командной строке

Для получения справки о функциях PHP прямо в командной строке используется опция —rf.

php —rf readline Function [ function readline ] < — Parameters [1] < Parameter #0 [ $prompt ] > >

Ну как-то так… а чего вы хотели — это же консоль.

php —rf readfile Function [ function readfile ] < — Parameters [3] < Parameter #0 [ $filename ] Parameter #1 [ $flags ] Parameter #2 [ $context ] > >

Насколько я понял, в строке Parameters в фигурных скобках пишется количество аргументов функции, строка required означает, что аргумент обязательный, а строка optional — что аргумент опциональный. О функции аргументов иногда можно догадаться по их имени, например, $filename. Информации о том, какое действие выполняет функция, видимо, нет.

Опции для разработчика

Если вы действительно пишите и отлаживаете код, в том числе для веб-сайтов, то вам пригодятся следующие опции:

-s Подсветка для HTML кода. -w Вывести исходник с убранными комментариями и белыми пробелами.

Вывод информации о PHP

Для показа информации о PHP имеются следующие три опции:

-i Информация о PHP -v Номер версии —ini Показать имена конфигурационных файлов

Опция -i — это эквивалент phpinfo, но для консоли.

PHP не может сохранить файл даже если достаточно прав на запись

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

Такое поведение может выглядеть необъяснимым, если вы не знаете о директиве open_basedir в главном конфигурационном файле php.ini. Данная директива ограничивает все файловые операции теми папками, которые указаны с ней. Пример:

open_basedir = /srv/http/:/etc/webapps/:/usr/share/webapps/:/tmp/:

Данная запись означает, что PHP скрипт может записывать файлы в папку /srv/http/, а также в папки /etc/webapps/, /usr/share/webapps/ и /tmp/.

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

При работе в консоли PHP скрипт может пытаться сохранить файлы, например, в текущую папку — если эта папка не указана в open_basedir, но при этом сама директива open_basedir настроена, то возникнет описанная проблема: PHP не сможет записывать файлы даже в папку открытую для всех.

Чтобы избавиться от этой ошибки есть несколько вариантов:

  • добавить папку, в которую вы хотите сохранить файл, в перечень open_basedir
  • выбрать для сохранения папку уже указанную в open_basedir
  • запустить интерпретатор PHP без чтения настроек из конфигурационных файлов (в этом случае не будет учтена директива open_basedir, а также вообще все другие конфигурации

Чтобы запустить PHP скрипт без учёта настроек файла php.ini используйте опцию -n, например:

php -n скрипт.php

Кстати, чтобы узнать, какие именно файлы настроек учитываются при работе PHP, выполните следующую команду:

php —ini
Configuration File (php.ini) Path: /etc/php Loaded Configuration File: /etc/php/php.ini Scan for additional .ini files in: /etc/php/conf.d Additional .ini files parsed: (none)

Заключение

Запуск PHP скриптов в командной строке — это альтернатива их запуску через веб-сервер. Работа в консоли может быть удобна при обучении языку программированию PHP или для отладки определённых функций, даже если в дальнейшем эти функции и скрипты будут работать на веб-сервере.

Скрипт на PHP может быть альтернативой скрипту на Bash, особенно если нужно использовать СУБД (MySQL, SQLite) — с которыми через Bash работать тяжело, либо для использования возможностей PHP по работе с текстом в разметке XML, JSON — что в Bash также не очень удобно.

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

Связанные статьи:

  • Как установить Python и PIP на Windows 10. Настройка Python в качестве модуля веб-сервера (66.7%)
  • Как установить и использовать Ruby в Windows (66.7%)
  • Настройка рабочего окружения PowerShell в Windows и Linux (63.4%)
  • Какой язык программирования выбрать для изучения (59.8%)
  • Регулярные выражения в PHP (ч. 1) (59.8%)
  • Полное руководство по John the Ripper. Ч.7: Johnny — графический интерфейс для John the Ripper (RANDOM — 5.3%)

Источник: hackware.ru

Как запустить программу из консоли

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

Как запустить программу из консоли

Статьи по теме:

  • Как запустить программу из консоли
  • Как запустить командную строку
  • Как открыть командную строку

Инструкция

Нажмите кнопку «Пуск», расположенную в нижнем левом углу экрана монитора компьютера, для вызова главного меню системы и перейдите в пункт «Выполнить» для открытия окна консоли запуска программ. Альтернативным способом может служить одновременное нажатие функциональных клавиш Win+R.

Введите значение полного пути к исполняемому файлу выбранной программы в поле «Открыть» и укажите желаемые ключи и параметры (при необходимости).

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

Читайте также:
Программа машины для людей

Нажмите кнопку «Обзор» при невозможности определения полного пути к исполняемому файлу выбранной программы для вызова нового диалогового окна с отображение файловой системы компьютера. Данное действие поможет в поисках требуемого файла.

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

Нажмите кнопку OK для подтверждения выполнения команды.

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

Вернитесь в главное меню «Пуск» и перейдите в пункт «Все программы».
Раскройте ссылку «Стандартные» и выберите компонент «Командная строка».

Введите значение runas/user:имя_пользователя»имя_программы путь_к_файлу_программы» для осуществления запуска выбранной программы от имени администратора.

Вызовите контекстное меню выбранной программы в инструменте «Проводник Windows» кликом правой кнопки мыши и выберите команду «Запуск от имени» для выполнения альтернативной операции запуска приложения от имени администратора.

Примените флажок на поле «Учетная запись указанного пользователя» и введите имя и пароль администратора компьютера в соответствующие поля.

Источник: www.kakprosto.ru

Как запустить PHP скрипт в командной строке (без веб-сервера)

Как запустить PHP скрипт в командной строке Windows

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

Если вы часто будете запускать PHP скрипты из командной строки Windows, то настоятельно рекомендуется Добавить путь до PHP в переменную окружения PATH в Windows. Благодаря этому не придётся каждый раз указывать полный путь до файла php.exe.

Теперь, когда PHP установлен и путь до php.exe добавлен в переменную окружения Windows, открываем командную строку, для этого нажмите сочетание клавиш Win+x и выберите Windows PowerShell.

Для проверки, что нормально установилось, посмотрим справку по PHP:

php -h

На самом деле, мы запускаем файл php.exe, но расширение можно отбросить. То есть предыдущая запись эквивалентна

php.exe -h

Как запустить .php скрипт в командной строке Windows и Linux

Для запуска .php файла в консоли Windows используется следующая команда:

php -f путьдофайла.php

Опцию -f можно отбросить, то есть предыдущая и следующая команды равнозначны:

php путьдофайла.php

Я создал тестовый файл, который расположен по пути C:UsersAlexDocumentsPHPtest.php тогда я могу запустить его в PHP так:

php -f C:UsersAlexDocumentsPHPtest.php
php C:UsersAlexDocumentsPHPtest.php

Как передать аргументы PHP скрипту в командной строке

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

php путьдофайла.php ‘аргумент1’ ‘аргумент2’ ‘аргумент3’ ‘аргумент_n’

Пример запуска PHP скрипта с тремя аргументами:

php C:UsersAlexDocumentsPHPtest.php ‘Alex’ ‘hackware.ru’ ‘Admin’

Как в PHP скрипте обратиться к аргументам

Переданные аргументы содержаться в массиве $argv. Причём, порядковый номер аргумента соответствует номеру в массиве. То есть первый аргумент будет помещён в $argv[1], второй в $argv[2] и так далее.

Самый первый элемент массива $argv[0] содержит полный путь до запускаемого скрипта.

Содержимое файла test.php:

Запустим его и передадим в скрипт три аргумента:

php C:UsersAlexDocumentsPHPtest.php ‘Alex’ ‘hackware.ru’ ‘Admin’

Как в PHP получить данные от пользователя в консоли

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

Кстати, при работе в окружении веб-сервера, то есть когда PHP скрипт выполняет задачи для веб-сайта, возможность передать ему аргументы реализована с помощью HTTP методов GET и POST. Эти аргументы передаются перед запуском скрипта, и уже после запуска PHP скрипта новые данные отправить нельзя — нужно ждать завершения работы программы, и при необходимости запустить её ещё раз с новыми данными.

Во время работы скрипта может потребоваться ввод новых данных, в консоли это достигается с помощью строки запроса, в которую пользователь может ввести значение и нажать Enter для передачи его скрипту. В контексте веб-сайта такой возможности — передать данные уже во время выполнения скрипта — нет. То есть консольный запуск PHP скриптов с аргументами не только проще (не нужно возиться с HTML формой), но и даже более гибкий.

В PHP для запроса пользователю используется функция readline.

Эта функция одинаково работает и на Windows и на Linux. Причём на Linux она имеет интерактивные возможности Bash, например, сохраняет историю ввода, к которой можно вернуться с помощью стрелок. На Windows эта возможность появилась начиная с PHP 7.1.

Если сильно надо, можно настроить автозавершение вводимых данных. Все функции GNU Readline рассмотрены здесь. Я же коснусь только readline, которая считывает введённую пользователем строку. С этой функцией можно указать один опциональный аргумент — строку, которая будет показана пользователю в приглашении.

Пример консольного PHP скрипта, которые запрашивает у пользователя данные в приглашении командной строки:

Выполнение команд PHP в интерактивном режиме

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

Для запуска интерактивного шелла:

php -a

Запуск отдельных команд PHP

Для выполнения отдельных команд используйте опцию -r:

php -r ‘echo 2**100;’

Источник: apache-windows.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru