php 操作shell_php popen操作shell - CSDN
精华内容
参与话题
  • PHP调用shell命令

    千次阅读 2019-05-09 17:16:12
    PHP调用shell命令 前言 因为想用php调用python脚本,于是想到可以利用php调用shell命令的方法实现。 php版本:php7.0 三种方法 1.system system — 执行外部程序,并且显示输出 函数使用方法 system ( string $...

    PHP调用shell命令

    前言

    因为想用php调用python脚本,于是想到可以利用php调用shell命令的方法实现。
    php版本:php7.0

    三种方法

    1.system

    system — 执行外部程序,并且显示输出

    函数使用方法

    system ( string $command [, int &$return_var ] ) : string
    

    example:

    <?php
    $last_line = system('ls',$return_val);
    echo(“last line:”.$last_line);
    echo(“return:”.$return_val);
    

    说明:执行了shell命令,并直接输出其返回结果;
    函数的返回结果为shell命令输出内容的最后一行;
    $return_val为shell命令的返回结果。

    2.exec

    exec — 执行一个外部程序

    exec ( string $command [, array &$output [, int &$return_var ]] ) : string
    

    example:

    <?php
    exec('ls',$out);
    var_dump($out);
    

    说明:exec函数返回结果为shell命令输出内容的最后一行;
    $output为shell命令输出内容;
    $return_val为shell命令返回结果;

    3.passthru

    passthru — 执行外部程序并且显示原始输出

    passthru ( string $command [, int &$return_var ] ) : void
    

    example:

    <?php
    passthru('ls',$res);
    echo($res);
    

    说明:当所执行的 Unix 命令输出二进制数据, 并且需要直接传送到浏览器的时候, 需要用此函数来替代 exec() 或 system() 函数。通过设置 Content-type 为 image/gif, 然后调用 pbmplus 程序输出 gif 文件, 就可以从 PHP 脚本中直接输出图像到浏览器

    展开全文
  • exec 与shell_exec的区别

    万次阅读 2016-11-01 14:41:29
    手册 shell_exec函数运行在shell脚本环境,没有返回值 shell_exec (PHP 4, PHP 5, PHP 7) shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。 说明 string shell_exec ( ...

    手册 shell_exec函数运行在shell脚本环境,没有返回值

    shell_exec

    (PHP 4, PHP 5, PHP 7)

    shell_exec 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

    说明

    string shell_exec ( string $cmd )

    本函数同 执行操作符

    参数

    cmd

    要执行的命令。

    返回值

    命令执行的输出。 如果执行过程中发生错误或者进程不产生输出,则返回 NULL

    Note:

    当进程执行过程中发生错误,或者进程不产生输出的情况下,都会返回 NULL, 所以,使用本函数无法通过返回值检测进程是否成功执行。 如果需要检查进程执行的退出码,请使用 exec() 函数。

    范例

    Example #1 shell_exec() 例程

    <?php
    $output 
    shell_exec('ls -lart');
    echo 
    "<pre>$output</pre>";


    exec

    (PHP 4, PHP 5, PHP 7)

    exec 执行一个外部程序

    说明

    string exec ( string $command [, array &$output [, int &$return_var ]] )

    exec() 执行 command 参数所指定的命令。

    参数

    command

    要执行的命令。

    output

    如果提供了 output 参数, 那么会用命令执行的输出填充此数组, 每行输出填充数组中的一个元素。 数组中的数据不包含行尾的空白字符,例如 \n 字符。 请注意,如果数组中已经包含了部分元素,exec() 函数会在数组末尾追加内容。如果你不想在数组末尾进行追加, 请在传入 exec() 函数之前 对数组使用 unset() 函数进行重置。

    return_var

    如果同时提供 output return_var 参数, 命令执行后的返回状态会被写入到此变量。

    返回值

    命令执行结果的最后一行内容。 如果你需要获取未经处理的全部输出数据, 请使用 passthru() 函数。

    如果想要获取命令的输出内容, 请确保使用 output 参数。

    范例

    Example #1 exec() 例程

    <?php
    // 输出运行中的 php/httpd 进程的创建者用户名
    // (在可以执行 "whoami" 命令的系统上)
    echo exec('whoami');
    ?>

    展开全文
  • [shell]shell简介

    万次阅读 2018-07-11 12:02:21
    Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。二、Shell...

    一、简介

            Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

    二、Shell脚本

            Shell 脚本(shellscript),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,后面出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。

    三、Shell环境

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

            Linux 的 Shell 种类众多,常见的有:

    • Bourne Shell(/usr/bin/sh或/bin/sh)
    • Bourne Again Shell(/bin/bash)
    • C Shell(/usr/bin/csh)
    • K Shell(/usr/bin/ksh)
    • Shell for Root(/sbin/sh)
    • ……

           我们所关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。

    #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。

    四、第一个shell脚本

            打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell)。

    #!/bin/bash
    echo "Hello World !"

           #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。echo 命令用于向窗口输出文本。

    五、运行shell的两种方法:

    1 作为可执行程序

    将上面的代码保存为 test.sh,并 cd 到相应目录:

    chmod +x ./test.sh  #使脚本具有执行权限
    ./test.sh  #执行脚本

            注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

    2作为解释器参数

    /bin/sh test.sh
    /bin/php test.php
    这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
    展开全文
  • Shell脚本

    万次阅读 2020-10-04 20:29:52
    Shell脚本 这里写目录标题Shell脚本1.Shell脚本简介2.Shell2.1 Shell 脚本的解释器2.2 脚本的编写规范2.3 执行脚本的三种方式2.4变量...Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。

    Shell脚本


    1.Shell脚本简介

    Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。Shell 既是一种命令语言,又是一种程序设计语言。Shell script 是一种为 shell 编写的脚本程序。Shell 编程一般指 shell脚本编程,不是指开发 shell 自身。Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux 的 Shell 解释器 种类众多,一个系统可以存在多个 shell,可以通过 cat /etc/shells 命令查看系统中安装的 shell解释器。Bash 由于易用和免费,在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。

    2.Shell

    2.1 Shell 脚本的解释器

    /bin/sh
    /bin/bash
    /sbin/nologin
    /bin/dash
    /bin/tcsh
    /bin/csh
    

    2.2 脚本的编写规范

    首行描述解释器 #!/bin/bash

    2.3 执行脚本的三种方式

    1、bash 脚本名称 脚本参数
    2、 sh 脚本名称 脚本参数
    3、 ./脚本名称 脚本参数【./脚本名称之间没有空格】【chmod 777 脚本名称】

    2.4变量的声明

    变量名=”值”【中间不能有空格】
    变量名要求 字母或下划线或数字(开头不能是数字)构成

    2.5变量的引用

    使用$ 或 ${}引用变量

    2.6删除变量 只读变量

    删除 unset 变量名
    只读 readonly 变量名

    2.7字符串使用

    双引号(””):内部可以使用变量
    单引号(‘’):内部所有的原样输出
    反引号(``):表示可执行

    2.8字符串长度及截取

    长度: echo ${#skill}
    截取: echo ${str:2:2} 【在第二个字符开始截取截取两位】

    2.9脚本参数传递

    bash 脚本名 参数1 参数2 参数3 。。。。。。
    脚本内
    $0 脚本名称
    $1 参数1
    $2 参数2
    $n 参数n
    $* 所有参数
    $# 参数的个数

    2.10算数运算符

    加法计算 expr 2 + 2
    乘法计算 expr 2 \* 2

    2.11流程控制if

    if [ $a -gt 10 ];then
    代码1
    elif [ $a -lt 10 ];then
    代码2
    else 代码3
    fi

    2.12关系运算符

    在这里插入图片描述

    2.13循环

    For 循环
    For aa in XXXX
    do
    循环体
    done

    While循环
    While 条件 ;
    do
    循环体
    done

    跳出循环
    跳出所有循环 break
    跳出当前循环,进入下一次循环 continue

    case ()

    case 值 in
    结果1) 结果1对应的操作;;
    结果2) 结果2对应的操作;;
    结果3) 结果3对应的操作;;
    esac

    2.14接收控制台数据

    read 变量名
    函数的使用
    函数声明:
    [function] 函数名(){
    函数体
    $参数1
    $参数2
    $参数3
    }

    函数调用 函数名 参数1 参数2 参数3

    2.15数组

    数组声明: 数组名称=(元素1 元素2 元素3 元素4)
    数组的使用
    单个使用 echo 数组名[角标] 【角标从0开始】
    遍历数组
    for var in ${my_arr[*]}
    do
    echo $var
    done

    2.16文件加载

    在文件中添加 . 脚本名称 或者 source 脚本名称
    #!/bin/bash
    source ./test1.sh # 加载test1.sh 的文件内容

    展开全文
  • 什么是Shell

    千次阅读 2018-08-10 21:41:23
    Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 ShellShell 在线工具 S.....
  • linux下PHP7环境搭建

    万次阅读 2016-03-29 00:03:16
    LAMP环境版本 操作系统:Centos 7Mysql:5.7.11Apache:2.4.18PHP:7.0.4 安装Mysql 下载链接:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz ...shell> groupadd mysql
  • shell获取当前用户名或者ID

    万次阅读 2009-10-26 11:00:00
    [user@localhost fix_bug_srpm]$ echo "$USER"user[user@localhost fix_bug_srpm]$ echo `id -u`503[user@localhost fix_bug_srpm]$ echo `whoami`user[user@localhost fix_bug_srpm]$ echo `who am i`
  • 我知道的有如下两种方式可以在shell中访问操作mysql数据库 1. mysql -uusername -ppasswd -e "command;command" [root@localhost ~]# mysql -uroot -p123456 -e "select user,host from mysql.user" +------+----...
  • php执行shell脚本

    千次阅读 2019-03-25 16:44:15
    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本 编写test.sh脚本如下 #! /bin/sh ...很简单的一个shell脚本 创建一个文件夹 php脚本如下 system('/us...
  • Hbase访问方式之Hbase shell

    万次阅读 2013-12-27 15:15:29
    2、HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用; 3、Thrift Gateway:利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据; 4、REST Gateway:...
  • 如何在shell中处理异常

    万次阅读 2015-08-18 10:14:29
    前言 似乎好像大概有句话是这么说得,好程序与...平时写php或者java程序等等的时候,很多人都会去注重对于异常的处理,比如try..catch等等,但往往在写一些脚本的时候,忽视了对于异常的判断。本文主要就是写如何在
  • Notepad++ 是一款Windows环境下免费开源的代码编辑器,支持的语言:C, C++ , Java , C#, XML, HTML, PHP, Javascript! 本文给大家讲解的是用notepad++在windows下开发的shell脚本上传到linux下无法执行问题...
  • mac fish shell的安装和使用教程

    万次阅读 2018-06-27 17:57:41
    写在前面:一直用mac pro自带的bash shell,其实也不错,但是fish shell有个非常实用的功能:根据输入,自动匹配历史命令我看到同事在用,试了下,感觉确实非常方便,所以我也换成fish了。 1、安装fish:brew ...
  • Shell 概述

    千次阅读 2016-08-26 00:29:57
    Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面ShellShell 脚本Shell 脚本(shell...
  • php执行shell脚本的权限问题

    千次阅读 2018-02-28 14:19:31
    由于以前在ECS中每次都是以root用户身份登录和进行操作,所以基本都没有用到sudo,但是最近项目需要要进行这么个事:通过浏览器访问php网页,php网页里会调用执行linux下的一个脚本。本来这个事很简单的,但是我在...
  • 利用msf生成后门拿shell

    千次阅读 2017-11-15 23:31:38
    kali x64:192.168.26.136 win7 x86: 192.168.26.128 先在kali终端输入msfvenom -l,打开payload目录 然后找到payload windows/meterpreter/reverse_tcp ...然后将生成的qq.exe移到win7中,然后打开msf
  • 自己安装ubuntu的时候出现了 如题的...下面这个是在 http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=37010 看到的,算是解释了一些原因,继续搜索解决方案 ---- BusyBox v1.13.3 (Ubuntu 1:1.13
  • php执行linux命令、shell脚本。以获取服务器运行状态举栗子
  • 现在我们使用的操作系统(Windows、Mac OS、Android、iOS 等)都是带图形界面的,简单直观,容易上手,对专业用户(程序员、网管等)和普通用户(家庭主妇、老年人等)都非常适用;计算机的普及离不开图形界面。 ...
  • shell脚本赋值的5种方法

    万次阅读 2012-02-21 12:44:31
    1. Shell中的变量类型 Shell中的变量可以分为环境变量、位置变量、预定义的特殊变量以及用户自定义变量、 2. 环境变量 Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由...
1 2 3 4 5 ... 20
收藏数 69,037
精华内容 27,614
关键字:

php 操作shell