在 Ubuntu 上使用 PHP,不一定非得先搭 Web 环境。很多脚本任务、定时任务、调试代码,直接通过命令行运行反而更高效。下面就按“安装、执行、传参、处理选项”这条线走一遍,帮你把 PHP CLI 的基本用法一次弄清楚,也顺带看懂什么场景适合用普通参数,什么场景更适合用选项。
先确认并安装 PHP CLI
如果系统里还没有 PHP CLI,可以先在终端执行下面两条命令完成安装:

sudo apt update
sudo apt install php-cli
php-cli 安装完成后,就可以直接在终端里使用 php 命令来执行脚本。对于 Ubuntu 用户来说,这是上手 PHP 命令行环境最直接的一步。
编写第一个 PHP 命令行脚本
先用熟悉的编辑器创建一个文件,例如放在 ~/Documents 目录下,文件名就用 hello.php。示例内容如下:
<?php
echo "Hello, World!n";
?>
这个脚本只有一件事:向终端输出一行文本。虽然简单,但它能验证当前机器上的 PHP CLI 是否已经正常工作。
在终端中运行脚本
脚本写好后,先进入它所在的目录:
cd ~/Documents
然后用 php 命令直接执行:
php hello.php
如果一切正常,终端会输出 Hello, World!。到这一步,说明你的 Ubuntu 已经可以正常通过 PHP CLI 运行脚本。
给脚本传入位置参数
命令行脚本真正有用的地方,在于它可以接收外部输入。先看最常见的一种方式:位置参数。把 hello.php 改成下面这样:
<?php
if ($argc > 1) {
echo "Hello, " . $argv[1] . "n";
} else {
echo "Hello, World!n";
}
?>
这里有两个 PHP CLI 中很常见的变量:
$argc:表示命令行参数的个数。$argv:表示命令行参数数组。
现在执行:
php hello.php 张三
如果传入了参数,脚本就会输出 Hello, 张三!;如果没有传入,仍然回退到默认的 Hello, World!。这种方式适合参数顺序很明确、输入结构比较简单的脚本。
用选项形式处理输入
当脚本的输入开始变多时,只靠参数顺序会越来越难读。这时,像 --name 这样的选项式写法通常更清晰。可以继续把脚本改成下面这样:

<?php
$name = "World";
foreach ($argv as $arg) {
if ($arg === "--name") {
if ($argc > 2) {
$name = $argv[2];
} else {
echo "Please provide a name after --name option.n";
exit(1);
}
}
}
echo "Hello, " . $name . "n";
?>
然后用下面的方式执行:
php hello.php --name 李四
这时输出会变成 Hello, 李四!。这个例子虽然不复杂,但已经展示了命令行工具里常见的一个基本模式:先遍历输入,再判断是否带有特定选项,最后给出默认值或错误提示。
什么时候用普通参数,什么时候用选项
如果脚本只接收一个固定输入,例如文件名、用户名这类单一值,位置参数已经够用;如果脚本后续可能增加更多输入项,或者你希望命令更直观,选项式调用会更适合维护。对于需要长期使用的内部工具来说,这个差别通常会越来越明显。
Ubuntu 下使用 PHP CLI 的基本思路
把整套流程归纳一下,Ubuntu 中使用 PHP CLI 大致就是四步:安装 php-cli、编写脚本、通过 php 文件名 执行、按需要补充参数或选项处理。只要先把这个最小流程跑通,后面无论是写自动化脚本、批处理任务,还是调试小段 PHP 逻辑,都会顺手很多。
如果你刚开始接触 PHP 命令行,建议先从这个 hello.php 继续往下扩展:增加更多参数、补上输入校验、再尝试不同的输出结果。这样比单纯记命令更容易真正掌握它的工作方式。













