在日常的开发工作中,我们经常需要与Shell交互,例如执行一些系统命令、启动一些进程等等。而PHP作为一种强大的Web编程语言,也可以很好地与Shell进行交互。本文将介绍,并附上演示代码。
- 执行系统命令
PHP中可以使用system()函数来执行系统命令,例如我们可以执行ls命令来列出当前目录下的文件:
system("ls");
如果我们需要获取命令的输出结果,可以使用exec()函数:
$output = array();
exec("ls", $output);
print_r($output);
- 启动进程
PHP也可以启动进程,例如我们可以启动一个后台运行的进程:
$pid = shell_exec("nohup php myscript.php >/dev/null 2>&1 & echo $!");
这个命令会启动一个名为myscript.php的PHP脚本,并将其作为后台进程运行。我们可以使用$pid变量来获取这个进程的进程ID。
- 获取系统信息
PHP可以使用一些函数来获取系统信息,例如php_uname()函数可以获取操作系统的名称:
echo php_uname();
如果我们需要获取系统的CPU信息,可以使用exec()函数来执行lscpu命令:
$output = array();
exec("lscpu", $output);
print_r($output);
- 监控系统资源
PHP可以使用一些函数来监控系统资源,例如getrusage()函数可以获取进程的CPU时间和内存使用情况:
$usage = getrusage();
echo "CPU time: " . ($usage["ru_utime.tv_sec"] + $usage["ru_utime.tv_usec"] / 1000000) . "s" . PHP_EOL;
echo "Memory usage: " . memory_get_usage() . " bytes" . PHP_EOL;
- 执行远程命令
如果我们需要在远程服务器上执行一些命令,可以使用SSH协议来进行远程连接和命令执行。PHP可以使用ssh2_connect()函数来建立SSH连接,使用ssh2_exec()函数来执行命令:
$connection = ssh2_connect("example.com");
ssh2_auth_password($connection, "username", "password");
$stream = ssh2_exec($connection, "ls");
stream_set_blocking($stream, true);
$output = stream_get_contents($stream);
echo $output;
以上就是的介绍及代码演示。希望对你有所帮助。