开发者社区> 科技探索者> 正文

Linux IO重定向

简介:
+关注继续查看

John von Neumann 冯诺依曼 

(运算器、控制器)CPU 存储器RAM I/O输入输出设备

程序:是由指令和数据组成

地址总线:内在寻址

数据总线:传输数据

控制总线:控制指令

物理上此三类总线在同一条线路上通过。


Linux系统设定:

        默认输出设备:标准输出:STDOUT:1:显示器

        默认输入设备:标准输入:STDIN:0:键盘

        标准错误输出:STDERR:2:显示器

I/O重定向:更改默认输入设备和输入设备


Linux 

>    表示输出重定向(覆盖)

   例:    ls /var > /tmp/var.out 此命令含义是次输出重定向到/tmp/var.out文件中。

        默认是输出到显示器上,而用了>输出重定向后,则更改输出到/tmp/var.out 文件中。

        注:此命令虽然定向到文件中,如果文件中有数据则直接覆盖。

>>    追加重定向  此命令含义是把输出信息追加到文件中而非覆盖。


set -C    禁止对已存在的文件使用覆盖 强制覆盖输出则使用 >|

set +C    关闭上述功能


2>    表示重定向错误输出

      例: ls /ect 2> /tmp/ect.out 正常ls /etc 而/ect没此目录会出错误信息

           此命令则把错误信息输出到/tmp/ect.out文件中 如果更改为ect为etc 则不会把信息输入

           到此文件中,因为ls /etc是标准输出而非错误输出所以不会输出到文件中

2>>    表示追加错误输出(你懂得呵呵 !!)


如果想同时重定向错误输出和标准输出则可使用

    ls /etc > /tmp/etc.out 2> /tmp/etc.err 

    因为一个命令不是错误输出就是正确输出所以一次使用只能输出到一个文件中

    为了方便使用还有一简单命令

    ls /etc &> /tmp/etc.out

    此命令则可将错误输出或标准输出都输出到同一个文件中

    注:此命令也是可以追加的 &>>


<    输入重定向

     例:cat < /etc/fstab

        则将fstab 文件内容显示到屏幕上,所以cat此命令默认就加了<输入重定向符

        因为我们一般使用的方法是cat /etc/fstab

<<    在此处生成文档 here document

[root@localhost tmp]# cat >>/tmp/cat.out <<end
> cat 
> out
> end
 
[root@localhost tmp]# cat /tmp/cat.out 
cat 
out

这个怎么理解呢? 就是我也不太理解,,,个人理解就是把我所打出的信息输出到那个文件中。


管道(pipe)    | 前一个命令的输出,作为后一个命令的输入

    例:

[root@localhost tmp]# cat /etc/fstab | tr 'a-z' 'A-Z'
# /ETC/FSTAB
# CREATED BY ANACONDA ON SUN JUN  1 06:01:40 2014
#
# ACCESSIBLE FILESYSTEMS, BY REFERENCE, ARE MAINTAINED UNDER '/DEV/DISK'
# SEE MAN PAGES FSTAB(5), FINDFS(8), MOUNT(8) AND/OR BLKID(8) FOR MORE INFO
#
UUID=A3E80A65-7E8F-4D8F-B533-508D6CAA2072 /                       EXT4    DEFAULTS        1 1
UUID=50737840-922B-44CF-AD0C-F434A1BBD865 /BOOT                   EXT4    DEFAULTS        1 2
UUID=B559F967-72D4-48D5-B7F5-454898D190F8 SWAP                    SWAP    DEFAULTS        0 0
TMPFS                   /DEV/SHM                TMPFS   DEFAULTS        0 0
DEVPTS                  /DEV/PTS                DEVPTS  GID=5,MODE=620  0 0
SYSFS                   /SYS                    SYSFS   DEFAULTS        0 0
PROC                    /PROC                   PROC    DEFAULTS        0 0
[root@localhost tmp]# 

此命令含义是cat /etc/fstab 查看该文件内容 

然后 输入到 tr 'a-z' 'A-Z'  此命令是把小写字母换成大写字母  


tee 此命令是同时将标准输出输出到默认输出和文件中

例:

[root@localhost tmp]# ls /var | tee /tmp/var.out
account
cache
crash
db
empty
games
gdm
lib
local
lock
log
mail
named
nis
opt
preserve
run
spool
tmp
www
yp

[root@localhost tmp]# cat /tmp/var.out
account
cache
crash
db
empty
games
gdm
lib
local
lock
log
mail
named
nis
opt
preserve
run
spool
tmp
www
yp
[root@localhost tmp]# 

由此可见该命令是同时将标准输出输出到屏幕上和文件中。

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1619292如需转载请自行联系原作者


Winthcloud

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux基础IO【文件理解与操作】
文件操作是 基础IO 学习的第一步,我们在 C语言 进阶中,就已经学习了文件相关操作,比如 fopen 和 fclose,语言层面只要会用就行,但对于系统学习者来说,还要清楚这些函数是如何与硬件进行交互的
16877 0
Linux 温习(九): IO 重定向与进程管道
I/O输入/输出(Input/Output)的简称,I 即为输入,常见的输入设备有键盘和鼠标。O为输出,常见的打印机等。
20 0
Linux 五种Io模型
异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。比如:调用aio_read系统调用时,不必等IO操作完成就直接返回,调用结果通过信号来通知调用者。
38 0
【Linux篇】第十篇——基础IO(系统文件IO+文件描述符+重定向+文件系统+软硬链接)(三)
【Linux篇】第十篇——基础IO(系统文件IO+文件描述符+重定向+文件系统+软硬链接)
29 0
【Linux篇】第十篇——基础IO(系统文件IO+文件描述符+重定向+文件系统+软硬链接)(二)
【Linux篇】第十篇——基础IO(系统文件IO+文件描述符+重定向+文件系统+软硬链接)
29 0
【Linux篇】第十篇——基础IO(系统文件IO+文件描述符+重定向+文件系统+软硬链接)(一)
【Linux篇】第十篇——基础IO(系统文件IO+文件描述符+重定向+文件系统+软硬链接)
46 0
【Linux】基础IO —— 动静态库的制作与使用
【Linux】基础IO —— 动静态库的制作与使用
40 0
【Linux】基础IO —— 深入理解文件系统 | 软硬链接
【Linux】基础IO —— 深入理解文件系统 | 软硬链接
47 0
【Linux】基础IO —— 缓冲区深度剖析
【Linux】基础IO —— 缓冲区深度剖析
31 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Decian GNU/Linux安全合规之路
立即下载
多IO线程优化版
立即下载
冬季实战营第二期:Linux操作系统实战入门
立即下载