|NO.Z.00038|——————————|LinuxShell|——|Linux&Shell$Bash功能.V04|——|输入输出重定向|

一、输入输出重定向:Bash 的标准输入输出
  设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出
二、输出重定向
  符号 作用
标准输出重定向 命令>文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。
命令>>文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中
标准错误输出重定向 错误命令2>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。
错误命令2>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中
正确输出和错误输出同时保存 命令>文件2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中
命令>>文件2>&1 以追加的方式,把正确输出和错误输出都保存到统一个文件当中
命令&>文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中
命令&>>文件 以追加的方式,把正确输出和错误输出都保存到同一个文件当中
命令>>文件12>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中

三、输入输出实验

### --- 覆盖输出
~~~     重定向:是指把它的输出方式不再输出到显示器上,而是输出到文件当中;输出重定向
~~~     单大于号是覆盖:

[root@localhost ~]# pwd > abc
[root@localhost ~]# cat abc 
/root
### --- 追加内容
~~~     输出重定向可以用来保存系统日志

[root@localhost ~]# pwd >> abc 
[root@localhost ~]# cat abc 
/root
/root
### --- 把报错信息写入到配置文件中
### --- 文件中也没有保存
~~~     注:报错信息直接输出到屏幕上,命令未找到

[root@localhost ~]# lskblkg >> bac
-bash: lskblkg: command not found   
[root@localhost ~]# cat abc     
### --- 记录报错信息
~~~     注:错误信息保存在了配置输出文件中,但是错误输出格式不合理

[root@localhost ~]# lskblkg 2>> abc
[root@localhost ~]# cat abc 
/root
/root
-bash: lskblkg: command not found
### --- 错误输出与正确输出
~~~     # 错误输出:
~~~     把命令的正确输出写入到文件中,再把命令的错误输出保存在正确输出中
~~~     命令>文件2>&1
~~~     命令&>>文件

[root@localhost ~]# ls >> abc>&1
[root@localhost ~]# cat abc 
abc
bac
hello.sh
### --- 假设把命令写错了,把错误输出保存在正确输出中
~~~     注:错误输出追加到配置文件中

[root@localhost ~]# lskgjd >> abc 2>&1
[root@localhost ~]# cat abc 
abc
bac
hello.sh
-bash: lskgjd: command not found      
### --- 正确输出

[root@localhost ~]# pwd &>>abc
[root@localhost ~]# cat abc 
/root
### --- 错误输出
~~~     注意:在写正确输出的时候需要加入空格,
~~~     错误输出不需要空格,若是错误加入空格,会报错

[root@localhost ~]# pwdadfdf &>>abc
[root@localhost ~]# cat abc 
/root
-bash: pwdadfdf: command not found
lskgjd >> abc                                       # 正确输出段   2>&1    # 错误段
### --- 把正确输出和错误输出写入到不同的文件中
~~~     可以用来分别保存正确日志和错误日志

[root@localhost ~]# ls >> ok 2>>err
[root@localhost ~]# cat ok 
ok
[root@localhost ~]# lslll >> ok 2>>err
[root@localhost ~]# cat err 
-bash: lslll: command not found 

四、输入输出重定向实验

### --- 输入重定向
~~~     # 选项:
~~~     -c   统计字节数
~~~     -w   统计单词数
~~~     -l   统计行数

[root@localhost ~]# wc [选项] [文件名]
### --- 输出重定向实验
### --- wc统计abc文件

[root@localhost ~]# wc abc 
 2  6 41 abc
### --- 也可以使用<来统计
 
[root@localhost ~]# wc -l abc
2 abc
[root@localhost ~]# wc < abc
 2  6 41
### --- 统计数量
 
[root@localhost ~]# wc << EOF
> 1111111
> 2222222
> 3333333
> 4444444
> EOF
 4  4 32

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示