第7单元-标准输入输出及重定向

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:ls -l &> result LS -l &>> erro
3、输入结束符
用户可以通过cat > file来创建文件并为文件输入内容, 输入结束后按下快捷键“ctrl+d”结束输入。
[root@server1 ~]# cat > file hello every body this is a test Ctrl+D [root@server1 ~]# cat file hello every body this is a test
2.4、错误输出重定向 如果一个指令执行错误时,也会在屏幕上显示错 误提示信息。虽然它与标准输出一样都会将结果 显示在屏幕上,但它们占用的I/O通道不同。 如果要将错误结果重定向到另一个地方则就不能 再使用“>”来实现了,得使用“2>”将报错讯息重定 向。
例:ds -h 2> erro
也可使用“2>>”将报错讯息追加入一个文件。
例:lt -l 2>> eroo
2.5、双重输出重定向 如果用户想将正确的输出结果与错误输出结果 一次性单独地送到不同的地方则可使用下面的 双重输出重定向。
例:ls -l 2> error > results LS -a 2>> error >> results
如果用户将不管是正确输出还是错误输结果都 送到同一个指定的地方则可使用“&> 或 &>>” 来 完成。
注意:如果原文件存在并有内容,那么新的执 行结果会覆盖原文件内容。
2.3、追加重定向
在上节中提到,使用“>”进行输出重定向,文件 的原内容会被覆盖。那么有没有一个办法不覆 盖原文件内容,只是追加在其后呢? 使用“>>”,就可以将正确的输出结果追加到一 个文件中。
例“ls –l >> listfile
第七单元
标准输入输出、重定向及管道
学习大纲
标准输入、输出以及错误输出 重定向 输入结束符 管道 综合应用
1、标准输入、输出以及错误输出
标准输入:过滤器的数据来源。
标准输入stdin(0):默认是键盘
标准输出:过滤器的数据去向。
标准输出stdout (1):默认是终端屏幕
标准错误输出 :报错讯息与标准输出走不同的 I/O通道。
标准错误输出stderr(2):默认是终端屏幕
2、重定向
重定向:标准输入、输出与错误输出,都可以 用特定符号改变数据来源或去向。 常见的重定向
输入重定向 输出重定向 追加重定向 错误输出重定向 双重输出重定向
2.1、输入重定向 有一些指令需要用户从标准输入(键盘)来输 入数据,但某些时候如果让用户手动输入数据 的话,将会相当麻烦。 使用“<”来重定向输入源
练习
Biblioteka Baidu
创建文件file1,并输入内容。 将当前的系统时间追加在file1文件之后。 分别输入一个正确与错误的指令,并将正确的 输出结果保存在rigth文件中,将错误的信息保 存在wrong文件中。 通过管道来显示“df –h” 指令执行结果的第2、3 、4行。
结束
The End Thanks
例:mail -s “hello” lonny@example.com < file
2.2、输出重定向 大多数的指令在正确执行后都会有一个执行结 果显示在标准输出(屏幕终端)上。用户可以使用 “>”改变数据输出目标,一般是另存到一个文件 中供以后分析,而不再显示屏幕终端上。 范例:
df -h > mydisk 将当前系统的磁盘分区的使用状况保存到mydisk文 件中,不让它显示在屏幕上。
例:ls -l | head -100
允许多重管道
例:ls –l | head -100 | more
5、综合应用
cat file1 > file2
拷贝file1到file2
cat file1 file2 file3 > fileall
将数个小文件合并成一个文件
ls –l | more
分屏显示当前目录下的文件
使用 << 让系统将一次键盘的全部输入,先送入虚拟的„ 当前文档‟,然后一次性输入。 可以选择任意符号作为终结标识符。
[root@server1 ~]# cat > file << quit > hello > quit [root@server1 ~]# cat file hello
4、管道 管道是Linux中很重要的一种通信方式,它是把一 个程序的输出直接连接到另一个程序的输入。 常说的管道一般是指无名管道(例如“|”),无名管道 只能用于具有”亲缘”关系进程之间的通信。 使用“ | ”将前一个进程的输出直接送入后一个进 程的输入。
相关文档
最新文档