幽映每白日,清辉照衣裳。这篇文章主要讲述CentOS 重定向输入输出相关的知识,希望能为你提供帮助。
重定向输入输出
重定向重定向的含义
【CentOS 重定向输入输出】将原本要输出到屏幕上的内容,重新输入到其他设备中
重定向运用的场景
1.输出的内容,比较重要的时候,我们想把它保存到文件中
2.在后台执行的程序,我不想让它输出的内容,干扰到屏幕
3.将定时任务的结果保存下来(备份,是否成功)
4.一些执行的命令,知道它有可能会有错误输出,但是不想看错误输出
5.执行一个命令,可能报错和正确的输出并存,类似错误日志与标准正确日志需要分别输出至不同的文件。
命令返回值
如何判断一个命令是否执行成功?????
$? 命令的返回值
返回值是0,则代表上一条命令执行成功
返回值非0,则代表上一条命令执行不成功
## 举例
[root@localhost ~]# ll 1.txt
-rw-r--r--. 1 root root 0 Apr 13 06:58 1.txt
[root@localhost ~]# echo $?
0[root@localhost ~]# ll 23
ls: cannot access 23: No such file or directory
[root@localhost ~]# echo $?
2一定是执行完命令后,立马执行echo $?,才能看到上一条命令,$?代表上一条命令的执行结果。
输入输出
文件描述符
名称 | 文件描述符 | 作用 |
---|---|---|
stdin | 0 | 标准输入 |
stdout | 1 | 标准输出 |
stderr | 2 | 错误输出 |
文件名 | 3+ | 无作用 |
# 1.执行一条命令
[root@localhost ~]# ping www.baidu.com >
/opt/1.txt# 2.切换终端机
# 3.查看进程号
[root@localhost ~]# ps -ef | grep ping
root896111680 02:08 pts/000:00:00 ping www.baidu.com
root896389250 02:09 pts/100:00:00 grep --color=auto ping
# 4.查看进程号目录里fd目录,fd表示文件描述符
root@localhost ~]# ll /proc/8961/fd
total 0
lrwx------. 1 root root 64 Apr 14 02:09 0 ->
/dev/pts/0
l-wx------. 1 root root 64 Apr 14 02:09 1 ->
/opt/1.txt
lrwx------. 1 root root 64 Apr 14 02:09 2 ->
/dev/pts/0
lrwx------. 1 root root 64 Apr 14 02:09 3 ->
socket:[59008]## 举例
# 执行一条命令,将标准输出放到/tmp/1.log,错误输出放到/tmp/2.log
[root@localhost tmp]# find / -type d -name *qwe* 1>
/tmp/1.log 2>
/tmp/2.log
[root@localhost ~]# cat /tmp/1.log
/usr/lib/kbd/keymaps/legacy/i386/qwerty
/usr/lib/kbd/keymaps/legacy/i386/qwertz
输入输出符号
名称 | 符号 | 作用 |
---|---|---|
标准输入重定向 | < 或者 0 < | 将符号右边的内容交给左边的命令 |
< < 或者0< < | ||
标准输出重定向 | > 或者0< < | 将原本输出在屏幕上的正确内容,覆盖到重定向的文件中 |
标准输出追加重定向 | > > 或者1> > | 将原本输出在屏幕上的正确内容,追加到重定向的文件中 |
错误输出覆盖重定向 | 2> | 将原本输出在屏幕上的错误内容,覆盖到重定向的文件中 |
错误输出追加重定向 | 2> > | 将原本输出在屏幕上的错误内容,追加到重定向的文件中 |
文章图片
# 标准输出重定向,先清空,后写入,如果文件不存在则创建
[root@localhost ~]# ip a >
ip.txt
案例二:标准输出重定向(追加)
文章图片
# 标准追加输出重定向,想配置文件末尾追加内容
[root@localhost ~]# echo "/etc/passwd &
/dev/null" >
>
ip.txt
案例三:错误输出重定向
文章图片
# 将标准输出和标准错误输出重定向到不同文件
[root@localhost ~]# ls /abcd/ >
ip.txt
ls: cannot access /abcd/: No such file or directory
案例四:正确和错误都输入到相同位置
文章图片
# 将标准输出和标准错误输出重定向到同一个文件,混合输出
[swu@localhost ~]$ find / -type d -name *swu* 1>
/tmp/1.txt 2>
&
1[swu@localhost ~]$ find / -type d -name *swu* &
>
/tmp/1.txt
文章图片
案例五:重定向到空设备/dev/null
文章图片
#空设备,即将产生的输出丢掉
[root@localhost ~]# ls /abcdeg &
>
/dev/null[root@localhost ~]# ls /abcdeg 2>
/dev/null
输出重定向输入重定向,即原本从键盘等设备上获得的输入信息,重定向由命令的输出作为输入。
dd if=/dev/zero of=/file1.txt bs=1M count=20dd if=/dev/zero of=/opt/disk bs=1K count=1024dd bs=1K count=1024 <
/dev/zero >
/opt/disk
知识点总结
#0.文件描述符
#1.标准输入
#2.标准输出
#3.重定向
推荐阅读
- K8S的配置资源管理
- 用shell脚本,创建一个整数和计算器程序并打印数字脚本
- 黑苹果入门教程
- 管理系统中的进程
- 56-centos cp与mv
- 如何解决tomcat启动 ssm项目出现乱码
- #yyds干货盘点#Linux常见面试题之操作实战
- jQuery如何使用delegate()方法(代码示例)
- PHP如何使用usort()函数(代码示例)