关于Linux的shell的exec命令

来自:    更新日期:早些时候
关于shell_exec的用法~

exec()是用于执行shell命令的函数。它返回执行并返回命令输出的最后一行,但你可以指定一个数组作为第二个参数,这样输出的每一行都会作为一个元素存入数组。使用方式如下:

1.代码如下:
<?php
$last = exec('ls', $output, $return);
print_r($output);
echo "Return [$return]";
?>


2.假设ls命令在shell中手工运行时会产生如下输出:

代码如下:

$ ls
total 0
-rw-rw-r-- 1 chris chris 0 May 21 12:34 php-security
-rw-rw-r-- 1 chris chris 0 May 21 12:34 chris-shiflett


3.当通过上例的方法在exec()中运行时,输出结果如下:

代码如下:
Array
(
[0] => total 0
[1] => -rw-rw-r-- 1 chris chris 0 May 21 12:34 php-security
[2] => -rw-rw-r-- 1 chris chris 0 May 21 12:34 chris-shiflett
)
Return [0]


这种运行shell命令的方法方便而有用,但这种方便为你带来了重大的风险。如果使用了被污染数据构造命令串的话,攻击者就能执行任意的命令。
我建议你有可能的话,要避免使用shell命令,如果实在要用的话,就要确保对构造命令串的数据进行过滤,同时必须要对输出进行转义:

4.代码如下:

<?php
$clean = array();
$shell = array();
/* Filter Input ($command, $argument) */
$shell['command'] = escapeshellcmd($clean['command']);
$shell['argument'] = escapeshellarg($clean['argument']);
$last = exec("{$shell['command']} {$shell['argument']}", $output, $return);
?>

这是一个if结构
判断 /var/log/x.log 是否存在
然后执行exec命令,将执行输出的标准信息和错误信息都输出到 /var/log/x.log 文件

wall是向所有登录系统的用户发送信息,消息的内容是 "Thanks for all the fish" , 相当于短信群发。
exec 3<afile 打开文件afile,文件描述符是3,然后这个3就可以代表文件afile,比如
cat <&3 查看文件afile的内容


关于Linux的shell的exec命令视频

相关评论:
  • 19814126248什么是Linux的登录shell与非登录shell?
    危文群Linux的登录shell与非登录shell的含义及区别:1、含义:登录shell,指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell。登录shell将查找4个不同的启动文件来处理其中的命令,用户登录后,在终端上输入命令,shell立即执行用户提交的命令,当用户退出后,shell也终止了。非交互式:即shell与...

  • 19814126248linux下的shell是什么
    危文群Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

  • 19814126248linux常用的shell有哪些
    危文群Linux常用的shell有哪些?1、Bourne shell Bourne shell是一个交换式的命令解释器和命令编程语言。Bourne shell是标准的UNIX shell,以前常被用来做为管理系统之用。大部分的系统管理命令文件,例如rcstart、stop与shutdown都是Bourne shell的命令档,且在单一使用者模式下以root签入时它常被系统管理者使用。

  • 19814126248linux下的shell是什么?
    危文群Linux中的shell有多种类型,其中最常用的三种是bourne shell(sh)、c shell(csh)、korn shell(ksh)。1、Bourne shell Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell曾作为管理系统的常用工具,是UNIX操作系统的标准shell。大部份的系统管理命令文件,例如 rc start、stop 与shutdown...

  • 19814126248linux 怎么进入shell编程模式
    危文群1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。2、在linux命令行下输入shell指令:vi test.shell。3、最后,按下回车键执行shell指令,此时发现用vi命令成功进入了shell编程模式中。

  • 19814126248LIUNX中常用的shell操作命令有什么
    危文群Linux与用户有关的命令:1. passwd命令:更改用户口令。格式:passwd [用户名]2. su命令:可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级拥护以普通用户的身份做一些事情。格式:su[选项][?][使用者账号]说明:若没有指定的使用者账号,则系统预设值为超级用户root。该命令中个选项的...

  • 19814126248linux中什么是shell?
    危文群有四大要点,硬件、软件、环境、人。1、H,硬件,诸如设备、设施、工具、计算机。2、S,软件,运行规则、硬件驱动软件、指令、法令、程序、文件。3、E,环境,运作环境、工作场所、自然环境。4、L,人,人的绩效、能力、局限。相关拓展 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者...

  • 19814126248有关于shell的命令,本人刚接触shell,主要是想知道他具体的命令
    危文群这个命令列出当前工作目录下的文件列表。如果你输入的是LS,你得到的只能是“找不到命令”的错误信息。另外在Linux shell命令中一个重要的地方是,你可以将命令串起来。这是Unix\/Linux从第一天开始就有的巧妙的特点。最简单的将命令连起来的办法就是使用“|”,我们称之为“pipe”。第一个命令的输出就...

  • 19814126248linux shell 和linux 命令的区别
    危文群也是一个程序设计语言;其次,shell也指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。由此可见,shell相当于经过装饰的命令行,它与命令行一样,都能操作Linux;但是shell是面向过程的,相当于有了一定的逻辑和过程,而命令行只是单一的操作。

  • 19814126248linux下的 shell到底是什么啊
    危文群例如:应用最为广泛的 Windows Explorer (微软的windows系列制作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manger (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。2、命令行式shell(Command Line Interface shell ,即CLI shell)例如:bash \/ sh \/ ...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网