Window下的PHP命令行工具
本章介绍基于Windows PowerShell下 PHP命令行技巧
PowerShell
PowerShell(包括Windows PowerShell and PowerShell Core)是微软公司开发的任务自动化和配置管理框架,由.NET Framework和.NET Core是构建的命令行界面壳层相关脚本语言组成,最初仅Windows组件,后于2016年8月18日开源并跨平台支持
UNIX系统一直有着功能强大的壳程序(shell),Windows PowerShell的诞生就是要提供功能相当于UNIX系统的命令行壳程序(例如:sh、bash或csh),同时也内置脚本语言以及辅助脚本程序的工具。
定义命令别名
查看别名
查看此Session中已经设定的所有别名:
Get-Alias
或gal
PS C:\> gal
查看某别名的原命令,如
ls
的原命令:> Get-Alias ls
查看某原命令的别名,如
Get-ChildItem
的别名:> Get-Alias -Definition Get-ChildItem
创建别名
创建别名有两个方法可用New-Alias
和 Set-Alias
;其中New-Alias
可以创建别名,但是不能更改;Set-Alias
可以创建或更改别名。
注意:通过命令创建的别名只能在当前回话中生效,关闭回话窗口后回自动失效;创建永久别名需要在后面有详细介绍。
给记事本创建一个别名,并运行:
C:\PS> Set-Alias Edit notepad
C:\PS> Edit //打开记事本
//电脑中notepad++的程序路径为 E:\Program Files (x86)\Notepad++\notepad++.exe
C:\PS> Set-Alias Edit "E:\Program Files (x86)\Notepad++\notepad++.exe"
C:\PS> Edit //打开Notepad++程序
删除别名
别名不用删除,自定义的别名在powershell退出时会自动清除。但是请放心,powershell内置别名(诸如ls,dir,fl等)不会清除。如果你非得手工删除别名。请使用
PS C:\PS> del alias:Edit
创建永久的别名
在PowerShell中直接使用Set-Alias
或New-Alias
命令创建的别名在关闭此Session后即会失效,防止此现象的方法是将此命令写入Windows PowerShell profile
文件。
查看此文件在计算机中的位置:
PS C:\> $profile //实际上显示的路径文件不存在
一般该文件在没有创建前是不存在的,使用以下命令为当前用户创建profile命令并返回文件地址:
PS C:\> New-Item -Type file -Force $profile //执行该命令回创建相应的文件,
注意:首次在计算机上启动 Windows PowerShell 时,现用执行策略很可能是 Restricted(默认设置)。Restricted 策略不允许任何脚本运行。请在PowerShell中执行如下命令:
set-ExecutionPolicy RemoteSigned
// 执行策略更改提示
// 执行策略可以防止您执行不信任的脚本。更改执行策略可能会使您面临 about_Execution_Policies 帮助主题中所述的安全风险。是否要更改执行策略? [Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值为“Y”): y
// 修改后即可执行脚本。
PowerShell脚本四种执行权限:
Restricted——默认的设置, 不允许任何script运行
AllSigned——只能运行经过数字证书签名的script
RemoteSigned——运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名
Unrestricted——允许所有的script运行
若要了解计算机上的现用执行策略,请键入:get-executionpolicy
设置常用永久命令:
打开生成的profile文件:C:\Users\geek100\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Set-Alias Edit "E:\Program Files (x86)\Notepad++\notepad++.exe"
Set-Alias php56 "E:\phpStudy\PHPTutorial\php\php-5.6.27-nts\php.exe"
Set-Alias php72 "E:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.exe"
Set-Alias mysql "E:\phpStudy\PHPTutorial\MySQL\bin\mysql.exe"
Set-Alias mysql "E:\phpStudy\PHPTutorial\MySQL\bin\mysql.exe"
Set-Alias mysqldump "E:\phpStudy\PHPTutorial\MySQL\bin\mysqldump.exe"
重启PowerShell,在命令窗口中执行如下命令体验下效果吧:
PS C:\Users\geek100\Documents> Edit //打开编辑器
PS C:\Users\geek100\Documents> mysql -h'127.0.0.1' -uroot -p //打开MySQL终端
PS C:\Users\geek100\Documents> mysqldump -h'127.0.0.1' -uroot -p test > test.sql //导出
PS C:\Users\geek100\Documents> php72 -i //查看phpinfo信息
PS C:\Users\geek100\Documents> php72 -v //查看php版本信息
PHP命令行
一下是PHP官网相关一些介绍,具体介绍请查看《PHP命令行模式》
从版本 4.3.0 开始,PHP 提供了一种新类型的 CLI SAPI(Server Application Programming Interface,服务端应用编程端口)支持,名为 CLI,意为 Command Line Interface,即命令行接口。顾名思义,该 CLI SAPI 模块主要用作 PHP 的开发外壳应用。CLI SAPI 和其它 CLI SAPI 模块相比有很多的不同之处,我们将在本章中详细阐述。值得一提的是,CLI和 CGI 是不同的 SAPI,尽管它们之间有很多共同的行为;