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,即标准错误输出重定向等同于标准输出
    因为之前标准输出已经重定向到空设备文件,左移标准错误输出也重定向到空设备文件

 

posted @ 2025-01-13 18:59  柒夜sec  阅读(32)  评论(0)    收藏  举报