重定向

Shell编程基础

风流意气都作罢 提交于 2020-03-04 07:19:09
写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单、灵活、高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作变得容易、简单、高效 shell脚本可移植性好,在unix/linux系统中可灵活移植,几乎不用任何设置就能正常运行 shell脚本可轻松方便读取和修改源代码,不需要编译 掌握shell可以帮你解决一些故障问题,比如脚本引起的故障问题 掌握shell是一个中级以上系统工程师必需要会的 掌握shell是你系统管理进阶的必经之路 掌握shell是你面试更高级职位的一块敲门砖 那什么时候不使用Shell 脚本? 资源密集型的任务,尤其在需要考虑效率时(比如排序,hash 等) 需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理) 有跨平台移植需求(一般使用C 或Java) 复杂的应用,在必须使用结构化编程的时候(需要变量的类型检查,函数原型,等等) 对于影响系统全局性的关键任务应用。 对于安全有很高要求的任务,比如你需要一个健壮的系统来防止入侵,破解,恶意破坏等等. 项目由连串的依赖的各个部分组成。 需要大规模的文件操作 需要多维数组的支持 需要数据结构的支持,比如链表或数等数据结构 需要产生或操作图形化界面 GUI 需要直接操作系统硬件 需要 I/O

Linux实战教学笔记09:通配符

放肆的年华 提交于 2020-03-04 06:14:49
第九节 通配符 标签(空格分隔): Linux实战教学笔记 --- 更多详细资料请点我查看 第1章 回顾特殊符号 | #管道符,或者(正则) > #输出重定向 >> #输出追加重定向 < #输入重定向 << #追加输入重定向 ~ #当前用户家目录 `` $() #引用命令被执行后的结果 $ #以。。。结尾(正则) ^ #以。。。开头(正则) * #匹配全部字符,通配符 ? #任意一个字符,通配符 # #注释 & #让程序或脚本切换到后台执行 && #并且 同时成立 [] #表示一个范围(正则,通配符) {} #产生一个序列(通配符) . #当前目录的硬链接 .. #上级目录的硬链接 第2章 通配符 他是shell的内置功能 通配符,用过DOS的应该很了解,也很常用。 通配符,指包含这些字符的字符串“?”,“*”,“【”,{} 通配符含义===>匹配文件名 符号 作用 * 匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file * ? 匹配任何一个字符(不在括号内时)?代表人意1个字符 ls file 0 [abcd] 匹配abcd中任何一个字符 [a-z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0 {..} 表示生成序列。以逗号分隔,且不能有空格 补充 [!abcd] 或[^abcd]表示非

Linux之通配符

眉间皱痕 提交于 2020-03-04 05:53:51
Linux之通配符 前言:学习通配符有点为正则表达式打基础的感觉……之前学python有学过 正则表达式 ,所以这篇博客学起来还是挺快的。 特殊符号 | #管道符,或者(正则) > #输出重定向 >> #输出追加重定向 < #输入重定向 << #追加输入重定向 ~ #当前用户家目录 `` $() #引用命令被执行后的结果 $ #以。。。结尾(正则) ^ #以。。。开头(正则) * #匹配全部字符,通配符 ? #任意一个字符,通配符 # #注释 & #让程序或脚本切换到后台执行 && #并且 同时成立 [] #表示一个范围(正则,通配符) {} #产生一个序列(通配符) . #当前目录的硬链接 .. #上级目录的硬链接 通配符 他是shell的内置功能 通配符,用过DOS的应该很了解,也很常用。 通配符,指包含这些字符的字符串“?”,“*”,“[]”,{} 通配符含义===>匹配文件名 符号 作用 * 匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file * ? 匹配任何一个字符(不在括号内时)?代表任意1个字符 ls file 0 [abcd] 匹配abcd中任何一个字符 [a-z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0 {..} 表示生成序列. 以逗号分隔,且不能有空格 补充 [!abcd] 或[^abcd

Linux实战教学笔记09:通配符

心不动则不痛 提交于 2020-03-04 05:49:50
第九节 通配符 标签(空格分隔): Linux实战教学笔记 --- 更多详细资料请点我查看 第1章 回顾特殊符号 | #管道符,或者(正则) > #输出重定向 >> #输出追加重定向 < #输入重定向 << #追加输入重定向 ~ #当前用户家目录 `` $() #引用命令被执行后的结果 $ #以。。。结尾(正则) ^ #以。。。开头(正则) * #匹配全部字符,通配符 ? #任意一个字符,通配符 # #注释 & #让程序或脚本切换到后台执行 && #并且 同时成立 [] #表示一个范围(正则,通配符) {} #产生一个序列(通配符) . #当前目录的硬链接 .. #上级目录的硬链接 第2章 通配符 他是shell的内置功能 通配符,用过DOS的应该很了解,也很常用。 通配符,指包含这些字符的字符串“?”,“*”,“【”,{} 通配符含义===>匹配文件名 符号 作用 * 匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file * ? 匹配任何一个字符(不在括号内时)?代表人意1个字符 ls file 0 [abcd] 匹配abcd中任何一个字符 [a-z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0 {..} 表示生成序列。以逗号分隔,且不能有空格 补充 [!abcd] 或[^abcd]表示非

ssm重定向失效?

本秂侑毒 提交于 2020-03-04 05:15:59
@RequestMapping(value = "delReply") @ResponseBody public String delReply(@Param("replyid") Integer replyid, HttpSession session, RedirectAttributes attr) { Integer userid = (Integer) session.getAttribute("userid"); msgReplyService.delReply(replyid); attr.addAttribute("userid",userid); System.out.println("删回复表"); return "redirect:message"; } 重定向失效,页面显示的是redirect:message,并不是转到message方法。 解决方案: @RequestMapping(value = "delReply") public String delReply(@Param("replyid") Integer replyid, HttpSession session, RedirectAttributes attr) { Integer userid = (Integer) session.getAttribute("userid");

meta http-equiv=\"refresh\" 和13种跳转页面方法

試著忘記壹切 提交于 2020-03-03 19:02:39
· meta http-equiv="refresh" 和13种跳转页面方法 我们来说说13种页面跳转方法 先来介绍一下在 服务端JSP脚本 中跳转页面的4种方法: 一、在服务端JSP脚本 中跳转 1. response.sendRedirct(“跳转到页面”); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容. request无法传值过去. 执行完该页所有代码,然后再跳转到页面. 跳转地址栏改变. 可以跳转到其他服务器上的页面response.sendRedirct(‘//www.jb51.net’). 2. response.setHeader(); 该方法和response.sendRedirect一样,通过修改HTTP协议的HEADER部分 response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn=”/index.html”; response.setHeader(“Location”,newLocn); 3. < jsp:forward page=”跳转页面”/> 该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在< jsp:forward

HTTP探索之初学乍练

戏子无情 提交于 2020-03-03 08:02:36
一、什么是HTTP? Hypertext Transfer Protocol(HTTP)协议(RFC7230) 一种无状态的、应用层、以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动。 二、HTTP请求行与响应行 请求行格式(ABNF方式描述) Request-line = method SP request-target SP HTTP-version CRLF HTTP常见方法(RFC7231) GET:主要的获取信息方法,大量的性能优化都针对该方法,幂等方法 HEAD:类似GET方法,但服务器不发送BODY,用以获取HEAD元数据,幂等方法 POST:常用于提交HTML FORM表单、新增资源等 PUT:更新资源,带条件时是幂等方法 DELETE:删除资源,幂等方法 CONNECT:建立tunnel隧道 OPTIONS:显示服务器对访问资源支持的方法,幂等方法 TRACE:回显服务器收到的请求,用于定位问题。有安全风险 Request-target origin-form:后端请求资源的路径,为空时传递/ absolute-form:用于正向代理 authority-form:用于CONNECT方法 asterisk-form:用于OPTIONS方法 HTTP-version 版本号发展历史 HTTP/0.9:只支持GET

CTFHUB学习记录(二)

扶醉桌前 提交于 2020-03-03 03:50:18
web之前置技能 HTTP协议之302跳转 尝试解题之前,回顾30X状态码 !](https://img-blog.csdnimg.cn/20200301234039168.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg4MjMxNw==,size_16,color_FFFFFF,t_70) 百度一波: baidu 原文链接:https://baike.baidu.com/item/302/878045?fr=aladdin 302 Found ,原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。可以简单的理解为该资源原本确实存在,但已经被 临时 改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指示,该状态码不可缓存。一个暂时重定向是一种服务器端的重定向,能够被 搜索引擎蜘蛛正确地处理 。 csdn 原文链接:https://blog.csdn.net/grandPang/article/details/47448395 详细来说,301和302状态码都表示重定向

postman-1版本区别、选择

不打扰是莪最后的温柔 提交于 2020-03-02 07:57:59
postman基于乙醇在腾讯课堂的postman教程 postman特点: 1.便于开发:开发接口的时候需要快速的调用接口,以便调试 2.便于测试:测试的时候需要非常方便的调用接口,通过不同的参数去测试接口的输出 3.反复运行:有些接口调用是需要保存下来反复运行的 4.支持断言 chrome app与native app的区别: 1.cookies native版本可以直接操作cookie,而Chrome版本需要安装扩展 2.build-in proxy native版本自带proxy,可以用来抓包 3.menu bar 4.restricted header受限header:有些header在Chrome app上是受限的,比如origin and user-agent。native版本伪造身份就简单多了。 5.don't follow redirects option 不去跟随重定向。如果接口发生重定向,Chrome会跟随重定向,返回重定向后的状态;native不会跟随。 6.postman console 基于以上,native版本是更好的选择。 postman版本更新设置: Mac版本:postman-preference-update 可以设置是否自动下载大版本的更新 postman相关资料: 1.官方及下载地址: https://www.getpostman.com/

模拟shell程序

我的梦境 提交于 2020-03-02 07:43:09
要求: 能识别 > , < 的输入输出重定向。 能识别出管道操作。 支持多重管道: 比如 cat | cat | cat | cat 。 支持管道和重定向的混合。 解决管道输入输出重定向和管道输出重定向和文件重定向共存的问题。 分析: 简单指令 此类指令无重定向, 无管道, 则其执行方式应该是主进程创建一个子进程, 将指令字符串组装成字符串数组后再添加调用 exec 函数即可。 带有重定向的指令 方案一 : > 和 < 直接当做命令行参数传递给 exec 函数。 经过测试, exec 并不能解析重定向符号 。 方案二 : 手动打开文件然后后 dup2 了。 带有管道的指令 将指令从管道符号拆分成多条指令, 每条指令分给一个子线程, 并让一个管道分隔的两个子进程一个获得一个管道的读端, 一个获得进程写端, 且将写端的进程的标准输出重定向到写端的文件描述符。如下图所示: 实现 /** * 完成一个模拟shell的程序。 */ # include <stdio.h> # include <stdlib.h> # include <string.h> # include <sys/types.h> # include <sys/stat.h> # include <fcntl.h> # include <unistd.h> char commands [ 1024 ] ; /*