Linux学习—复习数据流重定向

1 数据流重定向概念

执行一个命令的时候,这个命令可能会由文件读入数据,经过处理之后,再将数据输出到屏幕上。

standard output与standard error output分别代表“标准输出”与“标准错误输出”。
标准输出指的是命令执行所回传的正确的信息,而标准错误输出可理解为命令执行失败后,所回传的错误信息。
1)标准输出:读取/etc/crontab后,将该文件内容显示到屏幕上;
标准错误输出:因为无法找到/etc/vbirdsay,因此在屏幕上显示错误信息;

不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的,我们需要使用数据流重定向的功能。数据流重定向可以将standard output(简称stdout)与standard error output(简称stderr)分别传送到其他的文件或设备去,分别传送所使用的特殊字符则如下所示:
1)标准输入(stdin):代码为0,使用<或<<;
2)标准输出(stdout):代码为1,使用>或>>;
3)标准错误输出(stderr):代码为2,使用2>或2>>。

1.1 将/目录的内容重定向到~/testfile
1)输入:ll /
在这里插入图片描述
2)输入: ll / > ~/testfile
已经创建了文件 testfile
注意:testfile这个文件若不存在,系统会自动创建;当这个文件村由内容时,系统会清除数据,再将数据写入;>输出到已存在的文件会覆盖原来的文件。

3)输入:cat ~/testfile
在这里插入图片描述

1.2 输出数据到文件,可以使用以下方法:
1)1>:以覆盖的方法将正确 的数据输出到指定的文件或设备上;
2)1>>:以累加的方法将正确的数据输出到指定的文件或设备上;
3)2>:以覆盖的方法将错误的数据输出到指定的文件或设备上;
4)2>>:以累加的方法将错误的数据输出到指定的文件或设备上;

切换到普通用户,查看/home/.bashrc 有权限问题,会报错
在这里插入图片描述
1.3 将错误的信息输出到指定为文件
将错误信息输出到errorfile,正确信息输出到rightfile
在这里插入图片描述
1.4 /dev/null 垃圾桶黑洞设备与特殊写法
/dev/null可以吃掉任何导向这个设备的信息,屏幕上不会显示错误信息
在这里插入图片描述
1.5 将正确与错误的数据都写入一个文件

在这里插入图片描述
第一个时错误的:由于两条数据同时写入一个文件,又没有特殊的语法,此时两条数据可能会交叉写入该文件,会导致次序的错乱。所以最终list文件还是会产生。
后面两时正确的,写入同一个文件的特殊语法如上,可以使用 “2>&1” 也可以使用 “&>”。

1.6 standard input : <与<<

<就是将原本需要由键盘输入的数据改由文件内容代替。
**cat命令来创建一个文件的简单流程。**
用stdin代替键盘输入以创建新文件的简单流程
创建catfile文件内容与~/.bashrc文件内容一致
**在这里插入图片描述
<<:代表结束的以什么字符进行结束的意思,见以下示例是以“eof”结束输入
在这里插入图片描述

使用命令输出重定向的原因:
1)屏幕输出的信息很重要,我们需要存下这些输出信息;
2)后台执行中的程序,不希望干扰屏幕正常的输出结果;
3)一些系统的例行命令的执行结果,希望存下来,比如写在/etc/crotab;
4)一些执行命令的错误可能已知的错误信息,想以“2>/dev/null”将它丢掉;
5)错误信息与正确信息需要分别输出

2 命令执行的判断依据:;,&&,ll

想要一次输入多重名,看看下面把!

2.1 cmd

在某些时候,我们希望可以一次执行多个命令,例如在关机的时候先执行两次sync同步写入磁盘后才shutdown计算机

sync;sync;shutdown -h now

在命令与命令之间利用分号来隔开

2.2 $?(命令回传码)与&&或||

若前面一个命令执行的结果为正确,在Linux下面会回传一个$?=0的值,我们就需要使用"&&"及“||”的帮忙

cmd1&&cmd2:
cmd1正确执行完毕后,就开始执行cmd2;
cmd错误执行完毕后,cmd2不执行;
cmd1||cmd2:
cmd1正确执行完毕后,cmd2不执行;
cmd1错误执行完毕后,开始执行cmd2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值