首页vns威尼斯城官网登入 › shell是指一种应用程序,vns威尼斯城官网登入然后可以cmd中就可以运行php命令了 

shell是指一种应用程序,vns威尼斯城官网登入然后可以cmd中就可以运行php命令了 

PHP是一个开源服务器端脚本语言,最初这三个字母代表的是“Personal Home
Page”,而现在则代表的是“PHP:Hypertext
Preprocessor”,它是个递归首字母缩写。它是一个跨平台脚本语言,深受C、C++和Java的影响。

下面通过图文并茂的方式给大家分享下通过Linux命令使用和运行PHP脚本。

【注释】在ubuntu下,升级php到7.1版本,虽然提示的是Interactive
mode enabled, 但实际上可以直接书写命令,和interactive
shell效果一样。

一、什么是Shell脚本

vns威尼斯城官网登入 1

PHP是一个开源服务器端脚本语言,最初这三个字母代表的是“Personal Home
Page”,而现在则代表的是“PHP:Hypertext
Preprocessor”,它是个递归首字母缩写。它是一个跨平台脚本语言,深受C、C++和Java的影响。

一:windows下

示例

看个例子吧:

#!/bin/sh
cd ~
mkdir shell_tut
cd shell_tut

for ((i=0; i<10; i++)); do
    touch test_$i.txt
done

在 Linux 命令行中运行 PHP 代码

在 Linux 命令行中运行 PHP 代码

首先配置环境变量,注意是把php.exe所在的文件夹(而不是二进制文件)放在环境变量中。然后可以cmd中就可以运行php命令了 

示例解释
  • 第1行:指定脚本解释器,这里是用/bin/sh做解释器的
  • 第2行:切换到当前用户的home目录
  • 第3行:创建一个目录shell_tut
  • 第4行:切换到shell_tut目录
  • 第5行:循环条件,一共循环10次
  • 第6行:创建一个test_0…9.txt文件
  • 第7行:循环体结束

mkdir, touch都是系统自带的程序,一般在/bin或者/usr/bin目录下。for, do,
done是sh脚本语言的关键字。

PHP的语法和C、Java以及带有一些PHP特性的Perl变成语言中的语法十分相似,它当下大约正被2.6亿个网站所使用,当前最新的稳定版本是PHP版本5.6.10。

PHP的语法和C、Java以及带有一些PHP特性的Perl变成语言中的语法十分相似,它当下大约正被2.6亿个网站所使用,当前最新的稳定版本是PHP版本5.6.10。

如何使用PHP的交互式运行环境(Interactive shell) php -a 

从PHP 5.1.0开始,CLI SAPI提供了一个交互式命令行工具(Interactive
shell),这个交互式PHP
shell是通过使用 –with-readline 编译选项集成到php内核里的。使用这个交互式shell,你可以直接在命令行窗口里输入PHP并直接获得输出结果。

开启PHP的交互式shell模式,需要使用 -a 参数。下面是使用交互式shell的一些例子。

$ php -a
Interactive shell

php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_dump(addtwo(2));
int(4)
php >

在交互式shell里,你可以使用 tab 键对函数名,内置变量,类名,静态方法等进行自动补全操作。

需要注意的是,Interactive Shell 和
Interactive Mode 并不是一个东西,尽管名称和功能都很相似。

如果你输入 php -a ,得到的回应是 ‘Interactive
Shell’
 并跟随着 ‘php>’ 提示符,那你使用的就是交互式shell。如果你得到的回应是 ‘Interactive
mode
enabled’
 ,说明你的PHP并不支持交互式shell,上面介绍的用法也不实用于你。

但也不用担心,Interactive
mode(交互模式)也可以在命令行窗口里执行PHP代码,只是代码的执行方式有些区别。
在PHP交互模式(Interactive
mode)里,你在命令行窗口里输入PHP代码,代码不会立即执行,当你输入了所有PHP代码后,输入 Ctrl-Z (windows里),或输入 Ctrl-D (linux里),你输入的所有代码将会一次执行完成并输出结果。

在PHP交互模式(Interactive
mode)里,跟交互式shell里不一样,你的代码需要以 <?php 开头,跟你的普通PHP文件里的写法一致。下面是在Windows里的使用例子。

C:\>php -a
Interactive mode enabled

<?php
echo "Hello, world!";
?>
^Z
Hello, world!

在Winidows里,没有交互式shell,只有Interactive
mode。

 

 

PHP是一个开源服务器端脚本语言,最初这三个字母代表的是“Personal
Home Page”,而现在则代表的是“PHP:Hypertext
Preprocessor”,它是个递归首字母缩写。它是一个跨平台脚本语言,深受C、C++和Java的影响。

 

在 Linux 命令行中运行 PHP 代码

PHP的语法和C、Java以及带有一些PHP特性的Perl变成语言中的语法十分相似,它当下大约正被2.6亿个网站所使用,当前最新的稳定版本是PHP版本5.6.10。

PHP是HTML的嵌入脚本,它便于开发人员快速写出动态生成的页面。PHP主要用于服务器端(而Javascript则用于客户端)以通过HTTP生成动态网页,然而,当你知道可以在Linux终端中不需要网页浏览器来执行PHP时,你或许会大为惊讶。

本文将阐述PHP脚本语言的命令行方面。

1.
在安装完PHP和Apache2后,我们需要安装PHP命令行解释器。

  1. # apt-get install php5-cli [Debian 及类似系统]
  2. # yum install php-cli [CentOS 及类似系统]

接下来我们通常要做的是,在/var/www/html(这是
Apache2
在大多数发行版中的工作目录)这个位置创建一个内容为 <?php phpinfo(); ?>,名为 infophp.php 的文件来测试(PHP是否安装正确),执行以下命令即可。

  1. # echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php

然后,将浏览器访问  ,这将会在网络浏览器中打开该文件。

vns威尼斯城官网登入 2

检查PHP信息

不需要任何浏览器,在Linux终端中也可以获得相同的结果。在Linux命令行中执行/var/www/html/infophp.php,如:

  1. # php -f /var/www/html/infophp.php

vns威尼斯城官网登入 3

从命令行检查PHP信息

由于输出结果太大,我们可以通过管道将上述输出结果输送给 less 命令,这样就可以一次输出一屏了,命令如下:

  1. # php -f /var/www/html/infophp.php | less

vns威尼斯城官网登入 4

检查所有PHP信息

这里,‘-f‘选项解析并执行命令后跟随的文件。

2.
我们可以直接在Linux命令行使用phpinfo()这个十分有价值的调试工具而不需要从文件来调用,只需执行以下命令:

  1. # php -r 'phpinfo();'

vns威尼斯城官网登入 5

PHP调试工具

这里,‘-r‘
选项会让PHP代码在Linux终端中不带<>标记直接执行。

3.
以交互模式运行PHP并做一些数学运算。这里,‘-a‘
选项用于以交互模式运行PHP。

  1. # php -a
  2. Interactive shell
  3. php > echo 2+3;
  4. 5
  5. php > echo 9-6;
  6. 3
  7. php > echo 5*4;
  8. 20
  9. php > echo 12/3;
  10. 4
  11. php > echo 12/5;
  12. 2.4
  13. php > echo 2+3-1;
  14. 4
  15. php > echo 2+3-1*3;
  16. 2
  17. php >exit

输入 ‘exit‘ 或者按下 ‘ctrl+c‘
来关闭PHP交互模式。

vns威尼斯城官网登入 6

启用PHP交互模式

4.
你可以仅仅将PHP脚本作为shell脚本来运行。首先,创建在你当前工作目录中创建一个PHP样例脚本。

  1. # echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php

注意,我们在该PHP脚本的第一行使用#!/usr/bin/php,就像在shell脚本中那样(/bin/bash)。第一行的#!/usr/bin/php告诉Linux命令行用
PHP 解释器来解析该脚本文件。

其次,让该脚本可执行:

  1. # chmod 755 phpscript.php

接着来运行它,

  1. # ./phpscript.php

5.
你可以完全靠自己通过交互shell来创建简单函数,这你一定会被惊到了。下面是循序渐进的指南。

开启PHP交互模式。

  1. # php -a

创建一个函数,将它命名为 addition。同时,声明两个变量 $a 和 $b

  1. php >function addition ($a, $b)

使用花括号来在其间为该函数定义规则。

  1. php >{

定义规则。这里,该规则讲的是添加这两个变量。

  1. php { echo $a + $b;

所有规则定义完毕,通过闭合花括号来封装规则。

  1. php {}

测试函数,添加数字4和3,命令如下:

  1. php > var_dump (addition(4,3));

 

shell和shell脚本的概念

shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken
Thompson的sh是第一种Unix Shell,Windows
Explorer是一个典型的图形界面Shell。

shell脚本(shell
script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell
script是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell编程”都是指shell脚本编程,不是指开发shell自身(如Windows
Explorer扩展开发)。

PHP是HTML的嵌入脚本,它便于开发人员快速写出动态生成的页面。PHP主要用于服务器端(而Javascript则用于客户端)以通过HTTP生成动态网页,然而,当你知道可以在Linux终端中不需要网页浏览器来执行PHP时,你或许会大为惊讶。

PHP是HTML的嵌入脚本,它便于开发人员快速写出动态生成的页面。PHP主要用于服务器端以通过HTTP生成动态网页,然而,当你知道可以在Linux终端中不需要网页浏览器来执行PHP时,你或许会大为惊讶。

样例输出

  1. 7NULL

你可以运行以下代码来执行该函数,你可以测试不同的值,你想来多少次都行。将里头的
a 和 b 替换成你自己的值。

  1. php > var_dump (addition(a,b));

  1. php > var_dump (addition(9,3.3));

 

二、环境

shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

本文将阐述PHP脚本语言的命令行方面。

本文将阐述PHP脚本语言的命令行方面。

样例输出

  1. 12.3NULL

vns威尼斯城官网登入 7

创建PHP函数

你可以一直运行该函数,直至退出交互模式(ctrl+z)。同时,你也应该注意到了,上面输出结果中返回的数据类型为
NULL。这个问题可以通过要求 php 交互 shell用 return 代替 echo
返回结果来修复。

只需要在上面的函数的中 ‘echo‘ 声明用
‘return‘ 来替换

替换

  1. php { echo $a + $b;

  1. php {return $a + $b;

剩下的东西和原理仍然一样。

这里是一个样例,在该样例的输出结果中返回了正确的数据类型。

vns威尼斯城官网登入 8

PHP函数

永远都记住,用户定义的函数不会从一个shell会话保留到下一个shell会话,因此,一旦你退出交互shell,它就会丢失了。

希望你喜欢此次教程。保持连线,你会获得更多此类文章。保持关注,保持健康。请在下面的评论中为我们提供有价值的反馈。点赞并分享,帮助我们扩散。

PHP 7
,你值得拥有  

在 CentOS 7.x
/ Fedora 21 上面体验 PHP
7.0  

CentOS 6.3 安装LNMP (PHP
5.4,MyySQL5.6) 

在部署LNMP的时候遇到Nginx启动失败的2个问题 

Ubuntu安装Nginx
php5-fpm
MySQL(LNMP环境搭建) 

《细说PHP》高清扫描PDF+光盘源码+全套教学视频 

CentOS
6中配置PHP的LNMP的开发环境  

PHP
的详细介绍
:请点这里
PHP
的下载地址
:请点这里

还请阅读: 12个Linux终端中有用的的PHP命令行用法——第二部分


via: 

作者:Avishek
Kumar 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

本文永久更新链接地址

【第二篇
高级用法】

本文旨在让你了解一些相当不错的Linux终端中的PHP交互性 shell 的用法特性。

 

让我们先在PHP 的交互shell中来对php.ini设置进行一些配置吧。

 

6. 设置PHP命令行提示符

 

要设置PHP命令行提示,你需要在Linux终端中使用下面的php
-a(启用PHP交互模式)命令开启一个PHP交互shell。

 

  1. $ php -a

 

然后,设置任何东西(比如说Hi Tecmint
::)作为PHP交互shell的命令提示符,操作如下:

 

  1. php >#cli.prompt=Hi Tecmint ::

 

vns威尼斯城官网登入 9

 

启用PHP交互Shell

 

同时,你也可以设置当前时间作为你的命令行提示符,操作如下:

 

  1. php >#cli.prompt=`echo date('H:m:s');` >
  2. 22:15:43>

 

7. 每次输出一屏

 

在我们上一篇文章中,我们已经在原始命令中通过管道在很多地方使用了less命令。通过该操作,我们可以在那些不能一屏全部输出的地方获得分屏显示。但是,我们可以通过配置php.ini文件,设置pager的值为less以每次输出一屏,操作如下:

 

  1. $ php -a
  2. php >#cli.pager=less

 

vns威尼斯城官网登入 10

 

限制PHP屏幕输出

 

这样,下次当你运行一个命令(比如说条调试器phpinfo();)的时候,而该命令的输出内容又太过庞大而不能固定在一屏,它就会自动产生适合你当前屏幕的输出结果。

 

  1. php > phpinfo();

 

vns威尼斯城官网登入 11

 

PHP信息输出

 

8. 建议和TAB补全

 

PHP
shell足够智能,它可以显示给你建议和进行TAB补全,你可以通过TAB键来使用该功能。如果对于你想要用TAB补全的字符串而言有多个选项,那么你需要使用两次TAB键来完成,其它情况则使用一次即可。

 

如果有超过一个的可能性,请使用两次TAB键。

 

  1. php > ZIP [TAB][TAB]

 

如果只有一个可能性,只要使用一次TAB键。

 

  1. php >#cli.pager [TAB]

 

你可以一直按TAB键来获得建议的补全,直到该值满足要求。所有的行为都将记录到~/.php-history文件。

 

要检查你的PHP交互shell活动日志,你可以执行:

 

  1. $ nano ~/.php_history | less

 

vns威尼斯城官网登入 12

 

检查PHP交互Shell日志

 

9. 你可以在PHP交互shell中使用颜色,你所需要知道的仅仅是颜色代码。

 

使用echo来打印各种颜色的输出结果,类似这样:

 

  1. php > echo "color_code1 TEXT second_color_code";

 

具体来说是:

 

  1. php > echo "\033[0;31m Hi Tecmint \x1B[0m";

 

vns威尼斯城官网登入 13

 

在PHP Shell中启用彩色

 

到目前为止,我们已经看到,按回车键意味着执行命令,然而PHP
Shell中各个命令结尾的分号是必须的。

 

10. 在PHP shell中用basename()输出路径中最后一部分

 

PHP shell中的basename函数可以从给出的包含有到文件或目录路径的最后部分。

 

basename()样例#1和#2。

 

  1. php > echo basename("/var/www/html/wp/wp-content/plugins");
  2. php > echo basename("www.tecmint.com/contact-us.html");

 

上述两个样例将输出:

 

  1. plugins
  2. contact-us.html

 

vns威尼斯城官网登入 14

 

在PHP中打印基本名称

 

11.
你可以使用PHP交互shell在你的桌面创建文件(比如说test1.txt),就像下面这么简单

 

  1. php> touch("/home/avi/Desktop/test1.txt");

 

我们已经见识了PHP交互shell在数学运算中有多优秀,这里还有更多一些例子会令你吃惊。

 

12. 使用PHP交互shell打印比如像tecmint.com这样的字符串的长度

 

strlen函数用于获取指定字符串的长度。

 

  1. php > echo strlen("tecmint.com");

 

vns威尼斯城官网登入 15

 

在PHP中打印字符串长度

 

13. PHP交互shell可以对数组排序,是的,你没听错

 

声明变量a,并将其值设置为array(7,9,2,5,10)。

 

  1. php > $a=array(7,9,2,5,10);

 

对数组中的数字进行排序。

 

  1. php > sort($a);

 

以排序后的顺序打印数组中的数字,同时打印序号,第一个为[0]。

 

  1. php > print_r($a);
  2. Array
  3. (
  4. [0]=>2
  5. [1]=>5
  6. [2]=>7
  7. [3]=>9
  8. [4]=>10
  9. )

 

vns威尼斯城官网登入 16

 

在PHP中对数组排序

 

14. 在PHP交互Shell中获取π的值

 

  1. php > echo pi();
  2. 3.1415926535898

 

15. 打印某个数比如32的平方根

 

  1. php > echo sqrt(150);
  2. 12.247448713916

 

16. 从0-10的范围内挑选一个随机数

 

  1. php > echo rand(0,10);

 

vns威尼斯城官网登入 17

 

在PHP中获取随机数

 

17. 获取某个指定字符串的md5校验和sha1校验,例如,让我们在PHP
Shell中检查某个字符串(比如说avi)的md5校验和sha1校验,并交叉校验bash
shell生成的md5校验和sha1校验的结果。

 

  1. php > echo md5(avi);
  2. 3fca379b3f0e322b7b7967bfcfb948ad
  3. php > echo sha1(avi);
  4. 8f920f22884d6fea9df883843c4a8095a2e5ac6f

 


 

  1. $ echo -n avi | md5sum
  2. 3fca379b3f0e322b7b7967bfcfb948ad-
  3. $ echo -n avi | sha1sum
  4. 8f920f22884d6fea9df883843c4a8095a2e5ac6f-

 

vns威尼斯城官网登入 18

 

在PHP中检查md5校验和sha1校验

 

这里只是PHP Shell中所能获取的功能和PHP
Shell的交互特性的惊鸿一瞥,这些就是到现在为止我所讨论的一切。保持连线,在评论中为我们提供你有价值的反馈吧。为我们点赞并分享,帮助我们扩散哦。

 

PHP 7 ,你值得拥有  

 

在 CentOS 7.x
/ Fedora 21 上面体验 PHP
7.0  

 

CentOS 6.3 安装LNMP (PHP
5.4,MyySQL5.6) 

 

在部署LNMP的时候遇到Nginx启动失败的2个问题 

 

Ubuntu安装Nginx php5-fpm
MySQL(LNMP环境搭建) 

 

《细说PHP》高清扫描PDF+光盘源码+全套教学视频 

 

CentOS
6中配置PHP的LNMP的开发环境  

 

PHP
的详细介绍
:请点这里
PHP
的下载地址
:请点这里

 


 

via: 

 

作者:Avishek
Kumar 译者:GOLinux 校对:wxy

 

本文由 LCTT 原创翻译,Linux中国 荣誉推出

 

本文永久更新链接地址

 

操作系统

当前主流的操作系统都支持shell编程,本文档所述的shell编程是指Linux下的shell,讲的基本都是POSIX标准下的功能,所以,也适用于Unix及BSD(如Mac
OS)。

Linux

Linux默认安装就带了shell解释器。

Mac OS

Mac
OS不仅带了sh、bash这两个最基础的解释器,还内置了ksh、csh、zsh等不常用的解释器。

Windows上的模拟器

windows出厂时没有内置shell解释器,需要自行安装,为了同时能用grep, awk,
curl等工具,最好装一个cygwin或者mingw来模拟linux环境。

  • cygwin
  • mingw

1. 在安装完PHP和Apache2后,我们需要安装PHP命令行解释器。

1. 在安装完PHP和Apache2后,我们需要安装PHP命令行解释器。

脚本解释器

# apt-get install php5-cli          [Debian 及类似系统]
# yum install php-cli               [CentOS 及类似系统]

复制代码 代码如下:# apt-get install
php5-cli [Debian 及类似系统]# yum install php-cli [CentOS
及类似系统]

sh

即Bourne shell,POSIX(Portable Operating System
Interface)标准的shell解释器,它的二进制文件路径通常是/bin/sh,由Bell
Labs开发。

本文讲的是sh,如果你使用其它语言用作shell编程,请自行参考相应语言的文档。

接下来我们通常要做的是,在/var/www/html(这是 Apache2
在大多数发行版中的工作目录)这个位置创建一个内容为 <?php phpinfo();
?>,名为 infophp.php
的文件来测试(PHP是否安装正确),执行以下命令即可。

接下来我们通常要做的是,在 /var/www/html (这是 Apache2
在大多数发行版中的工作目录)这个位置创建一个内容为 ,名为
infophp.php 的文件来测试,执行以下命令即可。

bash

Bash是Bourne shell的替代品,属GNU
Project,二进制文件路径通常是/bin/bash。业界通常混用bash、sh、和shell,比如你会经常在招聘运维工程师的文案中见到:熟悉Linux
Bash编程,精通Shell编程。

在CentOS里,/bin/sh是一个指向/bin/bash的符号链接:

[root@centosraw ~]# ls -l /bin/*sh
-rwxr-xr-x. 1 root root 903272 Feb 22 05:09 /bin/bash
-rwxr-xr-x. 1 root root 106216 Oct 17  2012 /bin/dash
lrwxrwxrwx. 1 root root      4 Mar 22 10:22 /bin/sh -> bash

但在Mac
OS上不是,/bin/sh和/bin/bash是两个不同的文件,尽管它们的大小只相差100字节左右:

iMac:~ wuxiao$ ls -l /bin/*sh
-r-xr-xr-x  1 root  wheel  1371648  6 Nov 16:52 /bin/bash
-rwxr-xr-x  2 root  wheel   772992  6 Nov 16:52 /bin/csh
-r-xr-xr-x  1 root  wheel  2180736  6 Nov 16:52 /bin/ksh
-r-xr-xr-x  1 root  wheel  1371712  6 Nov 16:52 /bin/sh
-rwxr-xr-x  2 root  wheel   772992  6 Nov 16:52 /bin/tcsh
-rwxr-xr-x  1 root  wheel  1103984  6 Nov 16:52 /bin/zsh
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php

复制代码 代码如下:# echo '' >
/var/www/html/infophp.php

高级编程语言

理论上讲,只要一门语言提供了解释器(而不仅是编译器),这门语言就可以胜任脚本编程,常见的解释型语言都是可以用作脚本编程的,如:Perl、Tcl、Python、PHP、Ruby。Perl是最老牌的脚本编程语言了,Python这些年也成了一些linux发行版的预置解释器。

编译型语言,只要有解释器,也可以用作脚本编程,如C
shell是内置的(/bin/csh),Java有第三方解释器Jshell,Ada有收费的解释器AdaScript。

然后,将浏览器访问
,这将会在网络浏览器中打开该文件。

然后,将浏览器访问
,这将会在网络浏览器中打开该文件。

三、如何选择shell编程语言

vns威尼斯城官网登入 19

不需要任何浏览器,在Linux终端中也可以获得相同的结果。在Linux命令行中执行
/var/www/html/infophp.php ,如:

简单 vs 高级

如果你觉得自己熟悉的语言(如Java、C)写shell脚本实在太啰嗦,你只是想做一些备份文件、安装软件、下载数据之类的事情,学着使用sh,bash会是一个好主意。

shell只定义了一个非常简单的编程语言,所以,如果你的脚本程序复杂度较高,或者要操作的数据结构比较复杂,那么还是应该使用Python、Perl这样的脚本语言,或者是你本来就已经很擅长的高级语言。因为sh和bash在这方面很弱,比如说:

  • 它的函数只能返回字串,无法返回数组
  • 它不支持面向对象,你无法实现一些优雅的设计模式
  • 它是解释型的,一边解释一边执行,连PHP那种预编译都不是,如果你的脚本包含错误(例如调用了不存在的函数),只要没执行到这一行,就不会报错

检查PHP信息

复制代码 代码如下:# php -f
/var/www/html/infophp.php

环境兼容性

如果你的脚本是提供给别的用户使用,使用sh或者bash,你的脚本将具有最好的环境兼容性,perl很早就是linux标配了,python这些年也成了一些linux发行版的标配,至于mac
os,它默认安装了perl、python、ruby、php、java等主流编程语言。

不需要任何浏览器,在Linux终端中也可以获得相同的结果。在Linux命令行中执行/var/www/html/infophp.php,如:

从命令行检查PHP信息

四、第一个shell脚本

转载本站文章请注明出处:vns威尼斯城官网登入 http://www.tiec-ccpittj.com/?p=4956

上一篇:

下一篇:

相关文章