重定向

linux shell 编程 12 重定向

微笑、不失礼 提交于 2019-12-17 22:16:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 输出/输入重导向 > >> < << :> &> 2&> 2<>>& >&2 文件描述符(File Descriptor),用一个数字(通常为0-9)来表示一个文件。 常用的文件描述符如下: 文件描述符 名称 常用缩写 默认值 0 标准输入 stdin 键盘 1 标准输出 stdout 屏幕 2 标准错误输出 stderr 屏幕 我们在简单地用<或>时,相当于使用 0< 或 1>(下面会详细介绍)。 * cmd > file 把cmd命令的输出重定向到文件file中。如果file已经存在,则清空原有文件,使用bash的noclobber选项可以防止复盖原有文件。 * cmd >> file 把cmd命令的输出重定向到文件file中,如果file已经存在,则把信息加在原有文件後面。 * cmd < file 使cmd命令从file读入 * cmd << text 从命令行读取输入,直到一个与text相同的行结束。除非使用引号把输入括起来,此模式将对输入内容进行shell变量替换。如果使用<<- ,则会忽略接下来输入行首的tab,结束行也可以是一堆tab再加上一个与text相同的内容,可以参考後面的例子。 * cmd <<< word 把word(而不是文件word)和後面的换行作为输入提供给cmd。 * cmd

MySQL数据库定时备份Shell脚本

余生颓废 提交于 2019-12-17 22:01:14
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 这是一个简单的MySQL数据库备份 shell 脚本,适用于单台 Linux 服务器或者VPS的mysql数据库备份工作, 工作原理是使用mysql的mysqldump工具来导出数据库为.sql文件,然后将所有导出的文件打包归档。 然后我们在shell脚本中使用 scp命令把备份文件复制到另外一台备份机器,由于scp每次传送文件要密码 因此我们需要使用 expect插件 或者利用密钥。在这里介绍采用生成密钥对的方法。 1,生成密匙对,我用的是rsa的密钥。使用命令 "ssh-keygen -t rsa" 生成的过程中提示输入密钥对保存位置及密码,直接回车,接受默认值就行了。 其中公共密钥保存在 ~/.ssh/id_rsa.pub,私有密钥保存在 ~/.ssh/id_rsa 。 2,然后修改 .ssh 目录权限,chmod 755 ~/.ssh 。最后把 公共密钥复制到你要访问 的机器上去,并保存为: ~/.ssh/authorized_keys 。 scp -P 1110 ~/.ssh/id_rsa.pub daniel@*.*.*.*:/home/daniel/.ssh/authorized_keys (注意这里- P 为大写, 表示目标机器daniel 的ssh端口为1110,小写的p为源ssh端口,

HTTP状态码

柔情痞子 提交于 2019-12-17 20:31:56
消息编辑 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。 100 Continue 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 Switching Protocols 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。 只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特性的资源。 102 Processing 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 成功编辑 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。 200 OK 请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。 201 Created

Shell(六):输入/输出重定向

*爱你&永不变心* 提交于 2019-12-17 17:02:05
重定向的作用是将命令的执行结果输出到指定的文件中。 重定向命令列表如下: 文件描述符 0 通常是标准输入(STDIN), 1 是标准输出(STDOUT), 2 是标准错误输出(STDERR)。 1、输出重定向 将输出重定向到file示例: 注意,任何file1内的已经存在的内容将被新内容替代,更改file1,再次重定向: 如果要将新内容添加在文件末尾,需要使用>>操作符: 2、输入重定向 注意:上面两个例子的结果不同:第一个例子,会输出文件名;第二个不会,因为它仅仅知道从标准输入读取内容。 重定向输入和输出可以同时使用: 一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件: 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。 默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。 如果希望 stderr 重定向到 file,可以这样写: $ command 2> file 如果希望 stderr 追加到 file 文件末尾

“echo >”和“echo >>”的区别

妖精的绣舞 提交于 2019-12-17 04:45:23
https://www.cnblogs.com/singeryoung/p/9554551.html > 输出重定向 >> 输出追加重定向 --------------------------------------------------------------------------------------------------------------------- echo hello A 将字符串hello A输出到屏幕 --------------------------------------------------------------------------------------------------------------------- echo hello A > tmp.txt 将字符串输出重定向,当前目录没有tmp.txt,则创建tmp.txt,并将字符串输出到tmp.txt文件中 tmp.txt内容:hello A --------------------------------------------------------------------------------------------------------------------- echo hello B > tmp.txt 将字符串输出重定向, 当前目录存在tmp.txt

二维码生成工厂

一个人想着一个人 提交于 2019-12-17 04:27:16
本次主要分享的是3个免费的二维码接口的对接代码和测试得出的注意点及区别,有更好处理方式多多交流,相互促进进步;最近在学习JavsScript的扩展TypeScript,感觉语法糖很甜,大部分与C#更为类似,可能都是微软项目的原因吧,有兴趣的朋友可以多多相互交流下; 以上是个人的看法,下面来正式分享今天的文章吧: . Google的Api二维码生成接口 . 2d-code的Api二维码生成接口 . topscan的Api二维码生成接口 . 使用面向对象+加载程序集创建对象合并以上接口封装成二维码生成工厂 下面一步一个脚印的来分享: . Google的Api二维码生成接口 首先,这里给出Google接口文档的链接 qr_codes文档 ,热情的朋友马上就会打开此链接吧,详细看下里面的参数这就不做截图了,大致通常用到的参数是:api地址,内容参数,生成图片的高宽这3个参数,其他的几个参数都采用默认的吧,不同需要大家可以更详细的看下;其实第一次看到文档里面的参数,感觉少了一些东西,比如怎么不能传递二维码中间那个图标的图片地址和扫描二维码过后怎么跳转到我想重定向的url链接呢,带着这个疑问我进行了多次的尝试;下面给出自己尝试的结果说明: 1. 接口关键参数是:cht(固定值qr),chl(内容参数),chs(生成出来二维码图片尺寸,格式如:200x200,这里是xyz的x不是*) 2.

Django之视图

狂风中的少年 提交于 2019-12-16 23:59:05
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你当前项目目录下面。 除此之外没有更多的要求了——可以说“没有什么神奇的地方”。 为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。 一个简单的视图 下面是一个以HTML文档的形式返回当前日期和时间的视图: from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 让我们来逐行解释下上面的代码: 首先,我们从 django.http 模块导入了 HttpResponse 类,以及Python的 datetime 库。 接着,我们定义了 current_datetime 函数。

linux后台执行命令:&和nohup

旧街凉风 提交于 2019-12-16 21:53:27
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。 & 当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。 例如:sh test.sh & 适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中: command > out.file 2>&1 & 这样,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。 PS:当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程

关于/dev/null的几点小知识……

ε祈祈猫儿з 提交于 2019-12-16 21:32:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> /dev/null 讲解 1、可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用. 用处: 禁止标准输出. 1 cat $filename >/dev/null # 文件内容丢失,而不会输出到标准输出. 禁止标准错误. 2>/dev/null 这样错误信息[标准错误]就被丢到太平洋去了. 2、1>/dev/null 2>&1的含义 ">" 代表重定向,例如:echo "123" > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 表示stderr标准错误,即 2>/dev/null & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 那么: 1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。 2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。 所以: 分解这个组合:“>/dev/null 2>&1” 为4部分。 1:>

linux shell数据重定向(输入重定向与输出重定向)详细分析

被刻印的时光 ゝ 提交于 2019-12-16 21:10:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 导读小文:【 http://www.ibm.com/developerworks/cn/linux/l-iotips/ 】 技巧:Linux I/O重定向的一些小技巧 简介: Linux I/O 重定向虽然很简单,但在脚本编写、系统管理时却要常常打交道,搞清其中使用技巧非常有用。 首先说一下什么是I/O重定向,所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外一个文件,命令,程序,或者脚本。 标准输入通常指键盘的输入 标准输出通常指显示器的输出 标准错误通常也是定向到显示器 # ls /dev 1>filename #注意:"1"和">"中间没有空格 以上命令会把命令的标准输出重新定向到一个文件filename,而不是显示到屏幕上,如果不指明文件标识符, 系统默认的就是1, 因此1可以省略 如果把上面例子重的">"改成">>"则表示把输出追加到filename文件的末尾 ,如果文件不存在则创建它。如下 # ls /dev >>filename # ls -qw /dev 2>filename : 把标准错误重新定向到文件 # ls /dev &>filename : "&