linux重定向

linux 重定向 的符号有 > >> < <<
> >> 是输出重定向
< << 是输入重定向
0 用来表于标准输入
1 用来表示标准输出
2 用来表示标准错误

输出重定向

要弄明白什么是输出重定向 要先搞明白什么是输出
输出其实就是命令的结果
命令有两种结果 一种是正常执行的结果 一种是发生错误的结果
echo hello 命令正常执行产生的结果就是hello,然后会把hello这个字符串打印出来
这个正常执行的结果就叫做标准输出 标准输出默认会输出到控制台

[root@centos76 data]# echo hello
hello

ech hello 命令会发生错误 提示-bash: ech: 未找到命令 这个提示内容就是标准错误输出
标准错误输出默认也会输出到控制台

[root@centos76 data]# ech hello
-bash: ech: 未找到命令

那我们想改变输出位置可以吗 这时候就要用到输出重定向了
为了区分 标准输出和标准错误输出 我们用1来表示标准输出 用2来表示标准错误输出

[root@centos76 data]# echo hello 1> hello.txt 

这时候你会发现控制台没有打印hello 而是生成了一个 hello.txt文件

[root@centos76 data]# cat hello.txt
hello

也就是说 echo hello 1> hello.txt 中的 1>改变了输出的位置 所以叫做输出重定向
1> 表示这是一个标准输出重定向 正常执行会重定向 如果发生错误则不管
注意 1> 可以简写成 >

[root@centos76 data]# ech hello 2> err.txt
[root@centos76 data]# cat err.txt
-bash: ech: 未找到命令

同样的 ech hello 2> err.txt 会把错误信息重定向到 err.txt 而不是输出到控制台

注意: 使用 1>或者> 2>把输出重定向到文件 你会发现每次重定向都会先清空文件
那么能不能不清空文件 而是在文件末尾追加信息呢
其实很简单 只需要 把1>或者> 替换成 1>>或者>>2>替换成2>> 即可

小结

符号 作用 特点
1>或者> 标准输出重定向 清空文件后输出
1>>或者>> 标准输出重定向 在文件末尾追加
2> 标准错误重定向 清空文件后输出
2>> 标准错误重定向 在文件末尾追加

小技巧 > a.txt 可以直接清空文件

输入重定向

输入就是数据的来源 linux中的标准输入就是键盘输入 和上面输出一样 标准输入也用数字指代 这里用数字0指代
举个输入的例子
cat命令的作用是 把文件或者标准输入的内容复制到标准输出
在命令行输入cat按下回车 就会等待标准输入 也就是键盘输入 此时你在键盘上按下一些字符并回车 cat会把你输入的内容复制到标准输出 也就是控制台上 所以你会发现 你按下什么 它就显示什么 最后按ctrl+d退出

[root@centos76 data]# cat
xxx
xxx
yyy
yyy
zzz
zzz
[root@centos76 data]#

同样的我们可以改变输入的来源 也就是说进行标准输入重定向

[root@centos76 data]# cat  0< hello.txt
hell0

当然这里直接 cat hello.txt 也可以 这是因为 cat命令可以把标准输入的内容复制到标准输出 也可以把文件内容直接复制到标准输出
上面的命令是先把标准输入重定向到文件 再把标准输入复制到标准输出 好好思考一下

和cat命令不同 有些命令只能接受标准输入 不接受文件
比如tr命令 是从标准输入中替换字符并将结果写到标准输出
在命令行 输入 tr a 1 敲回车
此时会等待键盘输入 键盘输入abcd后敲回车 会显示1bcd
因为tr命令把标准输入中的abcd 按规则替换后把结果写到了标准输出

[root@centos76 data]# tr a 1 
abcd
1bcd

换成文件试试呢

[root@centos76 data]# tr h 1 hello.txt 
tr: 额外的操作数 "hello.txt"

报错了 此时想把文件当输入 就必须用到输入重定向了

[root@centos76 data]# tr h 1 0<hello.txt 
1ello

注意0<可以简写成 <

最后一个 << 的作用是什么呢

还来分析cat
直接cat敲回车 可以从标准输入中获取数据 但是一次只能接受一行
cat 0< hello.txt 可以接受多行 但是只能从文件中获取数据
那如果我想直接从键盘获取多行数据呢
两个EOF直接的内容就是 数据来源 0<< 就是把标准输入重定向到这部分数据了

[root@centos76 data]# cat 0<< EOF
> aa
> bb
> cc
> EOF
aa
bb
cc

小结

符号 作用
0<或者< 标准输入重定向到文件
0<<或者<< 标准输出重定向到多行文本
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容

  • stdin 标准输入 0 stdout 标准输出 1 stderr 标准错误输出 2 一个命令的输入有三种来源: ...
    _于曼丽_阅读 211评论 0 0
  • Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的...
    陈sir的知识图谱阅读 978评论 0 0
  • 1.重定向概述 1.什么是重定向将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中。 2.为什么要使用重定向...
    风铃科技阅读 414评论 0 0
  • 《Linux命令行与shell脚本编程大全》,4 E -- Chapter 15 一、理解输入和输出 显示脚本输出...
    生信摆渡阅读 5,180评论 0 2
  • [TOC] 标准输入、输出和错误 程序输出的两种类型: 程序运行结果:程序要完成的功能。 状态和错误信息:程序进展...
    独木舟的木阅读 617评论 0 0