day6.3
输入输出
重定向
将原本要输出到屏幕的数据信息,重新定向到指定文件中。
1.输出的内容比较重要的时候时,我们想要把它保存到文件中
2.在后台执行的程序,我不想让他输出的内容,干扰,显示到屏幕上。
3.将定时任务结果保存下来(备份是否成功)
4.一些执行的命令,知道他可能会有错误输出,当不想看到错误输出
5.执行一个命令,可能报错和正确的输出并存,类似错误日志需要分别输出至不同的文件
标准输入与输出
名称 |
文件描述符 |
作用 |
标准输入(stdin) |
0 |
通常是键盘,也可以是其他文件或者命令的输出的内容可以作为标准输入 |
标准输出(srdout) |
1 |
默认输出到屏幕 |
错误输出(stderr) |
2 |
默认输出到屏幕 |
文件名称(filename) |
3+ |
|
进程使用文件描述符(file descriptost)来管理打开文件

输入输出过程检测
[root@28technicians ~]
lrwxrwxrwx. 1 root root 15 Apr 13 08:14 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 Apr 13 08:14 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 Apr 13 08:14 /dev/stdout -> /proc/self/fd/1
输入输出重定向符号
类型 |
操作符 |
用途 |
标准覆盖输出重定向 |
> 或者 1> |
将命令的执行结果输出到指定文件中,而不是直接显示在屏幕上 |
标准追加输出重定向 |
1>>或者>> |
将命令执行的结果追加输出到指定文件中 |
错误覆盖输出重定向 |
2> |
将程序错误的输出结果输出到执行文件中,会覆盖原文件内容 |
错误追加输出重定向 |
2>> |
将程序错误的输出的结果追加到指定文件中,不会覆盖 |
标准输入重定向 |
<<或者< |
将符号右边的内容交给符号左边的命令 |
所有输出结果 |
& |
重定向所有输出 |
输出重定向
[root@28technicians ~]
[root@28technicians ~]
-rw-r--r--. 1 root root 0 Apr 11 16:23 xxx

[root@28technicians ~]
[root@28technicians ~]
-rw-r--r--. 1 root root 0 Apr 11 16:23 xxx
123456789

[qq@28technicians ~]$ find /etc -name "*.conf" 1>a 2>b

1.[qq@28technicians ~]$ find /etc -name "*.conf" &>c
2.[qq@28technicians ~]$ find /etc -name "*.conf" >d 2>&1
输入重定向
标准输入:< 等价 0 <
dd if=/dev/zero of=/file1.txt bs=1M count=20
dd if=/dev/zero of=/opt/disk bs=1K count=102
[root@28technicians ~]
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.0150209 s, 69.8 MB/s

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了