linux的标准重定向分为,Linux--标准输入输出、重定向及管道运用

*****************************************************************************************************************************************************************************************

标准输入输出:

Linux的大部分命令都具有标准的输入/输出设备端口,下图列出了标准设备信息:

名称                      文件描述

含义                  设备                     说明

STDIN

0                           标准输入          键盘                     命令在执行时所要的输入数据通过它来取得

STDOUT                     1

标准输出            显示器                命令在执行后的输出结果从该端口送出

STDERR                     2

标准错误            显示器                 命令执行时的错误信息通过该端口送出

系统重定向:

重定向就是不适用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定,所以重定向分为输入、输出和错误重定向,通常情况下重定向到一个文件。

重定向符号

说明

<

实现输入重定向。输入重定向不经常使用,因为大多数命令都以参数的形式在命令行上指定输入文件的                                                                         文件名,尽管如此,当使用一个不接受文件名为输入参数的命令,而需要的输入又是在一个已存在的文

件里,就可以使用输入重定向解决问题。

>或>>

输出重定向。相对于输入重定向来说,输出重定向更常用,输出重定向使用户能把一个命令的输出重                                                                           定向 到一个文件里,而不是显示在屏幕上,这种功能使用于多种情况,例如,如果某个命令的输出很

多,在屏幕上不能完全显示,即可把他重定向到一个文件中,稍后在用文本编辑器来打开这个文件

2>或>>

错误重定向

&>

同时实现输出重定向和错误重定向

a.例如现在需要统计/etc/passwd文件中的行数和字符数,需要用到输入重定向,将命令输入到文件中:

8d7ef13eb42d180697112e2971c37dad.png

b.再比如,现在有两个新创建的文件test1,和test2,需求:将test1中的内容重定向到test2中,怎么操作呢??

1) 在test1编辑"重定向test1文件"内容文字,并保存

ba9af6548a07274be71399e58b138316.png

2)创建test2文件,并将test1中的内容输出重定向到test2中

c6c99b3012c2a5751c8633d1f6ac82f4.png

我认为,输入重定向是从文件中读取数据,输出重定向是将数据写入到文件中

3) 输出重定向有两个标志">"

、">>" 这两个有什么区别呢?

这两个符号都具有输出重定向的功能,只是输出后的形式有所不同,只有一个">"符号,输出之后,不管输出目标文件中有没有数据,都会将其内容覆盖,只显示最新输出重定向的内容,而使用">>"符号,则会在目标文件原内容的基础上实行拼接,即在原内容的基础上,显示最新输出重定向的内容,不会覆盖。

例如: 现在查询hello3文件夹中的内容,我想要将查询结果在新创建的test3文件中显示,这时候需要用到输出重定向了,先用">"试试:

4b42289432b2b8e0b486365c9ab7bb1a.png

看图可以知道,使用一个">"完成需求;

恩,test3文件中有内容了,现在我想将test2文件中的内容"重定向test1文件"也重定向到test3中,

985a3b64a23ff54815089d97528f16f0.png

发现经过以上命令,确实将test2中的内容重定向到test3中,但是,,却将之前查询的内容覆盖掉了,如果我现在既想将test2中的内容重定向到test3中,又不想覆盖test3文件中的的内容,怎么办呢?试试">>"

我现在将test3内容还原,显示的还是之前的查询结果,再利用test2文件,输出重定向到test3中查看结果:

3bbddcc75a337269548df2eb1d053dba.png

现在再看,test3文件中,不仅显示出test2中的内容,test3中的内容也显示出来了。这就是">"与">>"的区别

只有错误重定向和输出、错误重定向我认为和标准输出重定向就性质和功能上来说,没有明显的区别,只是表达形式不同.......

管道:

许多Linux命令具有过滤特性,即一条命令通过标准输入端口接受一个文件中的数据,命令执行后产生的结果数据又通过标准输出端口送给后一条命令,作为该命令的输入数据。后一条命令也是通过标准输入端口而接受输入数据。

管道命令"|" 将这些命令前后连接在一起,形成一条管道线,格式如下:

命令格式:

cmd1 | cmd2

其中:

cmd 是命令名

| 管道连接符。

例如:

a.分屏显示文件文件/etc/passwd的内容

cat /etc/passwd | more

b.统计文本文件/etc/passwd的行数,字数和字符数

cat /etc/passwd | wc

c. 查找是否存在ceshi 的用户账号

cat  /etc/passwd | grep ceshi

d. 查看系统是否安装了apache软件包

rpm -qa | grep http

上面列出的只是一些运用管道连接符,实现的简单的查询,复杂的会在后续的文章里继续说明!

GOOD MORNING !!!

*****************************************************************************************************************************************************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值