作者:有志者来袭 | 来源:互联网 | 2023-07-10 10:33
目录day20输入输出重定向命令的返回值输入输出输入输出符号输出重定向举例输入重定向知识点思维导图day20输入输出重定向什么是重定向?将原本要输入到屏幕的内容,重新输入到其他设备
目录
- day20输入输出
- 重定向
- 命令的返回值
- 输入输出
- 输入输出符号
- 输出重定向举例
- 输入重定向
- 知识点
- 思维导图
day20输入输出
重定向
什么是重定向?
将原本要输入到屏幕的内容,重新输入到其他设备中
为什么要学习重定向
# 1.输出的东西比较重要的时候,我们想把它保存到文件中
# 2.在后台执行的程序,我不想让他的输出内容干扰到屏幕
# 3.将定时任务的结果保存下来(备份,是否成功)
# 4.执行一下命令时,我们已经知道它可能出现错误结果,想将它直接丢弃
# 5.执行一个命令时,可能报错和正确的输出并存,类似错误日志和标准输入日志需要分别输出至不同的文件
命令的返回值
如何判断一个命令是否执行成功
echo $? 命令的返回值
# 返回值是0,则代表上一条命令执行成功
0 ✓ 16:54:57 root@localhost.localdomain,10.0.0.158:/srv # ll
total 88
-rw-------. 2 wq1 wq1 1469 Mar 16 14:54 anaconda-ks.cfg
0 ✓ 16:55:04 root@localhost.localdomain,10.0.0.158:/srv # echo $?
0
# 返回值不是0,则代表上一条命令执行失败
127 ✗ 16:56:01 root@localhost.localdomain,10.0.0.158:/srv # ll dhsjdh
ls: cannot access dhsjdh: No such file or directory
2 ✗ 16:56:07 root@localhost.localdomain,10.0.0.158:/srv # echo $?
2
输入输出
文件的描述符
名称 |
文件描述符 |
作用 |
---|
stdin |
0 |
标准输入 |
stdout |
1 |
标准输出 |
stderr |
2 |
错误输出 |
文件名 |
3+ |
|
0 ✓ 17:10:57 root@localhost.localdomain,10.0.0.158:/srv # ps -ef |grep tail
root 1841 1549 0 17:11 pts/0 00:00:00 grep --color=auto tail
# /proc/:存放用户进程
# fd:文件描述符
# 查看tail命令的进程号
✓ 17:26:03 root@localhost.localdomain,10.0.0.158:/srv # ps -ef |grep tail
root 1986 1549 0 17:26 pts/0 00:00:00 grep --color=auto tail
# 查看tail命令的文件描述符
0 ✓ 17:26:29 root@localhost.localdomain,10.0.0.158:/srv # ll /proc/1549/fd
total 0
lrwx------. 1 root root 64 Apr 13 16:38 0 -> /dev/pts/0
lrwx------. 1 root root 64 Apr 13 16:38 1 -> /dev/pts/0
lrwx------. 1 root root 64 Apr 13 16:38 2 -> /dev/pts/0
lrwx------. 1 root root 64 Apr 13 17:23 255 -> /dev/pts/0
0 ✓ 17:26:33 root@localhost.localdomain,10.0.0.158:/srv # ll /dev/std*
lrwxrwxrwx. 1 root root 15 Apr 13 16:23 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 Apr 13 16:23 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 Apr 13 16:23 /dev/stdout -> /proc/self/fd/1
# 查找 / 下面所有 目录 名字带wq
1 ✗ 17:36:11 root@localhost.localdomain,10.0.0.158:/srv # find / -type d -name '*wq*'
/sys/devices/virtual/workqueue/nvme-reset-wq
/sys/devices/virtual/workqueue/nvme-delete-wq
/sys/devices/virtual/workqueue/nvme-wq
/var/lib/yum/yumdb/l/d15fead8663430a95ace634cae64c9948fcb7442-libpwquality-1.2.3-5.el7-x86_64
/usr/share/doc/libpwquality-1.2.3
/home/wq
/home/wq1
/home/wq2
# 查找 / 下面所有 目录 名字带wq,将标准输出和错误输出都重定向到/tmp下
# find / -type d -name '*wq*' 1>/tmp/zhengque.log 2>/tmp/cuowu.log
输入输出符号
名称 |
符号 |
作用 |
---|
标准输入重定向 |
<或 0< |
将符号右边的内容交给左边的命令执行 |
|
<<或 0<< |
|
标准输出覆盖重定向 |
> 或 1> |
将原本要输出在屏幕的正确内容,覆盖到重定向的文件中 |
标准输出追加重定向 |
>> 或 1>> |
将原本要输出在屏幕的正确内容,追加到重定向的文件中 |
错误输出覆盖重定向 |
2> |
将原本要输出在屏幕的错误内容,覆盖到重定向的文件中 |
错误输出追加重定向 |
2>> |
将原本要输出在屏幕的错误内容,追加到重定向的文件中 |
输出重定向举例
# 将错误输出和正确输出,同时写入一个文件
# &>:输出的全部结果重定向到文件中
0 ✓ 18:01:34 root@localhost.localdomain,10.0.0.158:/srv # find / -type d -name '*wq*' >/tmp/tongshi &>/tmp/tongshi.log
✓ 18:19:03 root@localhost.localdomain,10.0.0.158:/srv # cat /tmp/tongshi.log
/sys/devices/virtual/workqueue/nvme-reset-wq
/sys/devices/virtual/workqueue/nvme-delete-wq
/sys/devices/virtual/workqueue/nvme-wq
/var/lib/yum/yumdb/l/d15fead8663430a95ace634cae64c9948fcb7442-libpwquality-1.2.3-5.el7-x86_64
/usr/share/doc/libpwquality-1.2.3
/home/wq
/home/wq1
/home/wq2
# 2>&1:将错误输出结果重定向到正确结果中,再重定向到文件中
0 ✓ 18:16:34 root@localhost.localdomain,10.0.0.158:/srv # find / -type d -name '*wq*' >/tmp/tongshi >/tmp/tongshi.log 2>&1
0 ✓ 18:19:17 root@localhost.localdomain,10.0.0.158:/srv # cat /tmp/tongshi1.log
/sys/devices/virtual/workqueue/nvme-reset-wq
/sys/devices/virtual/workqueue/nvme-delete-wq
/sys/devices/virtual/workqueue/nvme-wq
/var/lib/yum/yumdb/l/d15fead8663430a95ace634cae64c9948fcb7442-libpwquality-1.2.3-5.el7-x86_64
/usr/share/doc/libpwquality-1.2.3
/home/wq
/home/wq1
/home/wq2
输入重定向
# dd:取数据
# 在/dev/zero里面取出1M数据,取20次,放到/file1.txt里面
dd if=/dev/zero of=/file1.txt bs=1M count=20
# 在/dev/zero里面取出1k数据,取1024次,放到/opt/disk里面
dd if=/dev/zero of=/opt/disk bs=1K count=1024
# 将/dev/zero的交给左边的dd取出1k数据,取1024次,并且将输出结果保存到/opt/disk
dd bs=1K count=1024 /opt/disk
知识点
# 文件描述符
# 标准输入
# 标准输出
# 重定向
思维导图
