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系统的命令行壳程序(例如:shbashcsh),同时也内置脚本语言以及辅助脚本程序的工具。

定义命令别名

查看别名
  • 查看此Session中已经设定的所有别名:Get-Aliasgal

PS C:\> gal
  • 查看某别名的原命令,如ls的原命令:> Get-Alias ls

  • 查看某原命令的别名,如Get-ChildItem的别名:> Get-Alias -Definition Get-ChildItem

创建别名

​ 创建别名有两个方法可用New-AliasSet-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-AliasNew-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,尽管它们之间有很多共同的行为;

关于root账号下cron任务不执行问题处理

今天业务反馈某个定时任务不生效了。重新去查看配置定时任务, 执行命令sudo crontab -e 时提示如下错误:

鉴定令牌不再有效;需要新的鉴定令牌
You (root) are not allowed to access to (crontab) because of pam configuration.

问题排查过程:

  1. 然后就检查当前用户下的定时任务是否正常, 运行 crontabe -e 一切正常,说明应该不是cron软件的问题。

  2. sudo su root 切换到 root 账号下执行 crontab -e 仍然提示同样的错误信息。

  3. 查询系统日志 tail -n 100 , 有类似如下信息提示, root该用户密码过期了

crond[32181]: pam_unix(crond:account): expired password for user root (password aged)
  1. 重新修改下 root 用户密码后恢复正常, 问题解决~

前同事创业分享文字

更努力,才有未来

创业竞争很残酷,创业成功率很低,别说公司很小的时候,一点小失误,一个小浪潮就可以打翻。即使公司大了,同样也面临着激烈的竞争,最近大家看到了乐视的情况,也看到了很多已经拿到多轮投资的公司面临困境。这说明,做事都不容易,他们只是被我们所知的案例,我们只有做得更多更好才可能避免这些坏的情况发生在自己身上。
 
那么我们应该怎么做?
 
1、我们必须吸引更优秀的同事。这是我们可以把握的很重要的事情。我们要让自己更优秀,心态更谦虚,我们也要有心思去招揽,引进比自己更优秀的同事,这些新同事,能补充增加我们的专业力量,提高我们的成功率。

2、我们必须更努力。为了能一起做成一点事情,每个人必须尽量多做贡献才有可能。首先得保证在自己专业领域,自己负责的工作上,不时做出让人惊喜的成绩来。做出好成绩是优秀+努力的共同结果。所以,即使你认可自己优秀,如果不努力,实际上,你的优秀价值也根本没有体现出来。

3、各司其职很重要,特别是小公司,每个人的专业可能都不一样。每个人承担的责任也不一样。销售就是要创造收入,创造利润,创造用户。每时每刻都要考虑,怎么达成这些结果。创始人就是要负责方向和资金,主要精力和心思就是要放在这个上面,日思夜想。你承担了这个责任,就是要付出极大努力去做好,创造各种条件去做好。同样地,产品同事也是,找到好产品就是永恒的责任,困难再大,也要不停地去找。做服务的同事也是,留住每一个老客户,传达公司好感,就是永恒的责任。公司必须培养能打硬仗的队伍,培养能把自己工作做到极致,给公司带来希望的人。

4、我们也许要说,这些是好,可是很难做到啊。事实就是:做不到这些,也就是做不成事情。做到这些就是我们创业的重要追求。打造一支牛逼的队伍,是成功的唯一保证。所以,是有些残酷,可是,我们必须对自己残酷起来。逼着自己更努力,逼着自己更承担。


以前同事转发的创业分享文字,觉得很有道理,Mark下

IT人工作中一些做事的原则总结

参加工作也有6年了,在三家公司待过,每个企业的企业文化多少都有些不同,不过从中也学到了不少精华,感觉自己也养成了不错的做事习惯;最近4年也带了不少技术人员,其中一些或多或少都有工作上都存在一些问题,现在抽个时间把想到的整理了一下, 意识为了告诫自己,同时也希望读者能参考借鉴!

工作做事原则

一、珍惜他人时间:
大家的时间都是宝贵的,请相互珍惜对方时间:
1.1、事情完成后必须自己认证检查无误以后再给对方;
1.2、遇到问题不知道如何处理,可以先上网查资料,如果网上也没有相关资料,再问相关人员;

二、及时反馈:
工作中可能会遇到一些疑问或者完成后需要反馈给相关人员,要及时反馈,相关人员没有来问询不代表不重要而是不希望打扰到你的工作, 而且如果不及时反馈也会影响到相关人员的工作进度;
2.1、工作内容如有不理解或者不清晰的地方要及时咨询相关人员,切勿不处理或者随意处理;
2.2、任务完成以后及时反馈给相关人员,以便相关人员根据当前工作进度制定方案;

三、长期保存工作内容:
很多人在工作成果交付给相关人员以后删除自己的备份,这是很不好的习惯;因为可能将来你还会需要翻查/参考这些资料,请养成良好的历史工作内容保存习惯!

四、找解决办法方法 > 找理由

五、IT人员工作原则:
编码&测试是两项都是非常重要工作内容, 比重可谓1:1,请保持良好的测试习惯,这样做也符合工作原则一“珍惜他人时间”

1、前端: 相关页面完成后及时检查&测试

  • 是否和UI一致

  • 是否有缺失页面

  • 是否有缺失UI组件

  • 兼容性测试: 多种浏览器、手机等设备测试

2、程序: 代码请一定符合编码规范,详细了解客户需求,先规划在编码实现功能

  • 编码是要符合编码规范

  • 重复功能要进行重构优化

  • 进行功能测试

  • 前后端都要进行数据转换&验证

  • 提示内容要清晰明了,切勿含糊不清

  • 代码一定要健壮[例如:每个if后一定要有else分支],不能因为客户的非法输入/访问 页面出错或者空白

  • 学会编写测试代码&保留

  • 代码Review

  • 代码在正式环境正常才算完成

Mac下homebrew 更新及重启服务

Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。
因为个人记忆力不好, 经常忘记命令,所以把常用到的命令记录如下:

 brew doctor                        #自检
 brew update                        #更新brew可安装包,建议每次执行一下
 brew search php55                  #搜索php5.5
 brew tap josegonzalez/php          #安装扩展<gihhub_user/repo>   
 brew tap                           #查看安装的扩展列表
 brew install php55                 #安装php5.5
 brew remove  php55                 #卸载php5.5
 brew upgrade php55                 #升级php5.5
 brew options php55                 #查看php5.5安装选项
 brew info    php55                 #查看php5.5相关信息
 brew home    php55                 #访问php5.5官方网站
 brew services list                 #查看系统通过 brew 安装的服务
 brew services cleanup              #清除已卸载无用的启动配置文件
 brew services restart php55        #重启php-fpm