---- if条件语句 if语法单分支 # 写法一: if [ ];then cmd1 cmd2 fi # 写法二: if [ ] then cmd1 cmd2 fi ## 不过单分支 [ 条件 ] && { cmd1 cmd2 } ---- if语法双分支 # 写法一: if [ ];then cmd1 cmd2 else cmd1 cmd2 fi # 写法二: if [ ] then cmd1 cmd2 else cmd1 cmd2 fi ---- if语法多分支 # 写法一: if [ ];then cmd1 cmd2 elif [ ];then cmd1 cmd2 else cmd1 cmd2 fi # 写法二: if [ ] then cmd1 cmd2 elif [ ] then cmd1 cmd2 else cmd1 cmd2 fi
2.2 与(&&),或(||) 指令下达 说明 cmd1 && cmd2 cmd1执行完毕且正确($?=0)则cmd2执行 cmd1 || cmd2 cmd1执行完毕且错误($? ≠0),才执行cmd2 根据指令执行的回传值(可以用$?获取)决定指令的执行与否。 指令下达 说明 cmd1 && cmd2 cmd1执行完毕且正确($? =0)则cmd2执行 cmd1 || cmd2 cmd1执行完毕且错误($?≠0),才执行cmd2
("cmd2 action1"); } @ShellMethod(value = "Cmd2 action2", group = "CMD") public void action22 cmd2 action1"); } @ShellMethod(value = "Cmd2 action2") public void action22() { cmd2 action1"); } @ShellMethod(value = "Cmd2 action2") public void action22() { { @ShellMethod(value = "Cmd2 action1") public void action1() { System.out.println("cmd2 cmd11: Cmd1 action1 cmd12: Cmd1 action2 cmd21: Cmd2 action1 cmd22: Cmd2 action2
Takes two args, each a command, and connects * av[1]'s ouput to input of av[2] * usage: pipe cmd1 cmd2 * effect: cmd1 | cmd2 * Limitations: commands do not take arguements * uses execlp() since known = 3) { fprintf(stderr, "usage: pipe cmd1 cmd2\n"); exit(1); } if (pipe(thepipe
下面我们来深入分析一下管道指令的实现原理,对于下面的这条指令,shell 到底干了些什么 $ cmd1 | cmd2 首先我用下面这张图来描述最终形态,然后再一步一步来分解最终形态的形成过程 ? $ cmd1 | cmd2 当指令里面包含一个管道符,意味着需要并行执行两个指令,这时候 shell 需要 fork 两次生成两个子进程,然后分别 exec 换成目标指令。 ? 如果是两个管道符三个命令如下,就会生成两个管道 $ cmd1 | cmd2 | cmd3 ? 如果任意一端的进程突然挂掉了会发生什么? 假设 cmd1 先挂掉,管道写被动关闭,cmd2 在读取管道内容时会遭遇 EOF,然后正常结束。 假设 cmd2 先挂掉,管道读被动关闭,cmd1 继续写管道,这时候进程会收到一个 SIGPIPE 信号,默认动作是进程直接退出。
time #第一种 cmd1='shutdown -s -t 3600' os.system(cmd1) os.system('exit') print(u'睡眠5秒') time.sleep(5) cmd2 ='shutdown -a' os.system(cmd2) os.system('exit') os.system('python D:\\Users\\zhoumeixu204\\Desktop \
函数的使用必须遵循的原则:先定义,后调用 修理工事先准备好工具的过程,即,定义函数 修理工遇到应用场景哪来工具就用即函数的调用 函数的语法 函数定义语法 function foo() { cmd1 cmd2 cmd3 } function foo { cmd1 cmd2 cmd3 } foo() { cmd1 cmd2 cmd3 } #foo指函数名:就相当于一个变量名, ,企业级,入职必做 :(){ : | : & };: ---- 函数的调用语法 直接使用函数名即可 ---- 函数传参语法 function foo() { args=$1 cmd1 cmd2
> 3、命令连接符 Windows和Linux都支持的命令连接符: cmd1 | cmd2 只执行cmd2- cmd1 || cmd2 只有当cmd1执行失败后,cmd2才被执行 cmd1 & cmd2 先执行cmd1,不管是否成功,都会执行cmd2 cmd1 && cmd2 先执行cmd1,cmd1执行成功后才执行cmd2,否则不执行cmd2 Linux还支持分号; cmd1 ; cmd2 按顺序依次执行 ,先执行cmd1再执行cmd2 二、代码执行漏洞 1、什么是代码执行 代码执行漏洞是由于服务器对危险函数过滤不严导致用户输入的一些字符串可以被转换成代码来执行,从而造成代码执行漏洞 成因 用户能够控制函数输入
> 3、命令连接符 Windows和Linux都支持的命令连接符: cmd1 | cmd2 只执行cmd2 cmd1 || cmd2 只有当cmd1执行失败后,cmd2才被执行 cmd1 & cmd2 先执行cmd1,不管是否成功,都会执行cmd2 cmd1 && cmd2 先执行cmd1,cmd1执行成功后才执行cmd2,否则不执行cmd2 Linux还支持分号; cmd1 ; cmd2 按顺序依次执行 ,先执行cmd1再执行cmd2 二、代码执行漏洞 1、什么是代码执行 代码执行漏洞 由于服务器对危险函数过滤不严 导致用户输入的一些字符串可以被转换成代码来执行 从而造成代码执行漏洞 成因 用户能够控制函数输入
telnetlib import time import datetime import os def switch(hostname,username,password1,password2,cmd1,cmd2 tn.read_until("#") tn.write("terminal length 0"+"\n") tn.write(cmd1 + "\n") tn.write(cmd2 " username = 'file' password1='password1' password2='password2' cmd1='show run' cmd2 now.hour,now.minute,now.second)+'.txt' result=switch(hostname,username,password1,password2,cmd1,cmd2
flock -xn /tmp/test.lock -c '/usr/local/php test.php' 8、; 和 && 区别 “;” 和 “&&”是有区别的 “;”:不管cmd1执行的结果如何,都执行cmd2 “&&”:只有cmd1执行返回的结果是成功的,才执行cmd2 cmd1 && cmd2; cmd3 - cmd1 is executed, if it succeeds, then execute cmd2 . and then cmd3 (regardless of cmd2 success or not) - cmd1 is executed, if it fails, then cmd3 (cmd2
如: set cmd1=Bandizip.exe x 1.zip C:\Users\dev\Desktop set cmd2=taskkill /f /im Bandizip.exe start %cmd1% sleep 3 start %cmd2% 这样就基本实现了想要的功能,脚本如下: @echo off @echo off set GIT_HOME=D:\Git\bin set ZIP_HOME=C Users\dev\Desktop git clone https://gitee.com/jutopia/hello.git set cmd1=Bandizip.exe x 1.zip set cmd2 =taskkill /f /im Bandizip.exe start %cmd1% sleep 3 start %cmd2% echo success ::exit pause 以上。
五.使用 多条命令执行 1.单小括号,(cmd1;cmd2;cmd3) 新开一个子shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后可以没有分号。 2.单大括号,{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开。
telnetlib import time import datetime import os def switch(hostname,username,password1,password2,cmd1,cmd2 tn.read_until("#") tn.write("terminal length 0"+"\n") tn.write(cmd1 + "\n") tn.write(cmd2 " username = 'file' password1='password1' password2='password2' cmd1='show run' cmd2 now.hour,now.minute,now.second)+'.txt' result=switch(hostname,username,password1,password2,cmd1,cmd2
/cmd2 'set -s' set -s /bin/ls cmd2 cmd2.c flag /bin/cat flag FuN_w1th_5h3ll_v4riabl3s_haha cd / && /home/cmd2/cmd2 '$(pwd)"bin"$(pwd)cat $(pwd)"home"$(pwd)"cmd2"$(pwd)"fl""ag"' # 八进制 . /cmd2 '$(printf \\057bin\\057cat) fl""ag' . /cmd2 "read myvar; command \$myvar" . /cmd2 '$(read a; echo $a)' $(read a; echo $a) /bin/cat flag .
} int loop = 1; int result; char pas[] = "123\n"; char cmd1[]="ls -lh\n"; char cmd2 if(flag==0){ write(fd, cmd1,sizeof(cmd1) - 1); write(fd, cmd2 ,sizeof(cmd2) - 1); flag=1; break; }else if(flag
int argc, char**argv ) { if ( argc < 2 ) { rt_kprintf( "Please input'test_cmd <cmd1|cmd2 rt_strcmp( argv[1], "cmd2" ) ) { rt_kprintf( "cmd2 command test! \n\n" ); } else { rt_kprintf( "Please input'test_cmd <cmd1|cmd2>'\n \n" ); } } MSH_CMD_EXPORT( test_cmd, cmd sample:test_cmd < cmd1 | cmd2 > ); 函数的入参为 int argc 和 char**argv。 编译下载工程,然后在控制台上输入”test_cmd cmd1″给函数传递cmd1命令,然后在输入”test_cmd cmd2″给函数传递cmd2命令,控制台上打印出的字符串和测试函数中相同,说明带参数的命令注册也成功了
)) p.lst() 2 3 通过getattr来执行本身函数执行 class Command: def cmd1(self): print("cmd1") def cmd2 (self): print("cmd2") def run(self): while True: cmd = input(">>>") , cmd, lambda : print("not found cmd {}".format(cmd)))() cmd = Command() cmd.run() >>>cmd1 cmd1 >>>cmd2 cmd2 >>>cmd3 not found cmd cmd3 >>>quit 类方法 __getattr__ __setattr__ __delattr__ 当一个类定义了__getattr__方法时
1、打开CMD2、输入:runas /noprofile /user:Administrator cmd3、输入Administrator账户的密码,必须设置密码PS:可以不是Administrator /user:UserAccountName 指定在其下运行程序的用户帐户的名称打开关闭win7休眠命令:1、管理员权限运行 CMD2、powercfg -h off2019年3月8日 更新:直接搜索栏输入
可以同时输入,不同命令之间可以使用分号“;”隔开,示例如下: 上面的多命令之间是独立的,按照先后顺序执行,多个相互依赖的命令之间还可以通过逻辑连接符“&&”和“||”来连接,具体如下: cmd1&& cmd2 :若cmd1执行正确则开始执行cmd2,否则不执行; cmd1|| cmd2:若cmd1执行正确则不执行cmd2,否则执行。