linux常见命令符号
命令联合执行
来看看命令联合执行时的一些关键词特性:
连接词 释义
; 前面的命令执行完以后,继续执行后面的命令
| 管道符,将上一条命令的输出作为下一条命令的参数(显示后面的执行结果)
|| 当前面的命令执行出错时(为假)执行后面的命令
& 将任务置于后台执行
&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真
c=cat flag.php; // 用 ; 把命令隔断
c=cat flag.php|| // ||表示只执行||前面的语句
c=cat flag.php%0a // %0a是url编码,表示的是换行
c=cat flag.php%26 // %26是url编码,表示的是&符
另外说明一下:
| 表示只执行后面的命令
|| 表示只执行前面的命令
&和&& 表示两条命令都会执行
此外,php版本小于5的时候因为php的底层是C,所以截断有另外的%00可以使用
>/dev/null: 说明一下 /dev/null 说白了就是写入这个里面的内容都会丢失,读取这里面的内容什么也不会读取到 而前面的 > 表示重定向代表的是要去哪里 因为 > 前面没有数值,所以默认的是1,表示标准输出重定向到 /dev/null (空设备文件) 因此不会显示任何的数据,同时也不会读取到任何的数据 2>&1: 这里的1表示stdout标准输出,系统默认值是1,因此 > 前面没有值的时候就是默认标准输出 1> 这里的2表示stderr标准错误 &表示等同于的意思 在这里这个语句的意思就表示2的输出重定向等同于1,即标准错误输出重定向等同于标准输出 因为之前标准输出已经重定向到空设备文件,左移标准错误输出也重定向到空设备文件

浙公网安备 33010602011771号