其他分享
首页 > 其他分享> > 基础day18

基础day18

作者:互联网

输入输出

重定向

 # 1.输出的内容,比较重要的时候,我们想把它保存到文件中
 # 2.在后台执行的程序,我不想让它输出的内容,干涉到屏幕
 # 3.将定时任务的结果保存下来(备份是否成功)
 # 4.一些执行的命令,知道它有可能会有错误输出,但是不想看错误输出
 # 5.执行一个命令,可能报错和正确的输出并存,类似错误日志与标准日志需要分别输出至不同的文件

命令返回值(扩展)

 # 如何判断一个命令是否执行成功
 echo $? 命令的返回值
 返回值是0,则代表上一条命令执行成功
 返回值非0,则代表上一条命令执行失败
 ​
 # 例:
 [root@localhost ~]# ll
 total 0
 [root@localhost ~]# echo $?
 0
 ​

输入输出

文件的描述符

名称文件描述符作用
stdin 0 标准输入
stdout 1 标准输出
stderr 2 错误输出
文件名 3+  
 # 例:
 [root@localhost ~]# ll /proc/2090/fd
 total 0
 lrwx------. 1 root root 64 Apr 13 16:35 0 -> /dev/pts/0
 lrwx------. 1 root root 64 Apr 13 16:35 1 -> /dev/pts/0
 lrwx------. 1 root root 64 Apr 13 16:35 2 -> /dev/pts/0
 lrwx------. 1 root root 64 Apr 13 17:20 255 -> /dev/pts/0
 ​
 [root@localhost ~]# ll /dev/std*
 lrwxrwxrwx. 1 root root 15 Apr 13 08:24 /dev/stderr -> /p roc/self/fd/2
 lrwxrwxrwx. 1 root root 15 Apr 13 08:24 /dev/stdin -> /proc/self/fd/0
 lrwxrwxrwx. 1 root root 15 Apr 13 08:24 /dev/stdout -> /proc/self/fd/1
 ​

输入输出符号

名称符号作用
标准输入重定向 < 或 0< 将符号右边的内容交给符号左边的命令
  << 或 0<<  
标准输出覆盖重定向 > 或 1> 将原本要输出在屏幕上的正确内容,覆盖到重定向文件
标准输出追加重定向 >> 或 1>> 将原本要输出在屏幕上的正确内容,追加到重定向文件
错误输出覆盖重定向 2> 将原本要输出在屏幕上的错误内容,覆盖到重定向文件
错误输出追加重定向 2>> 将原本要输出在屏幕上的错误内容,追加到重定向文件

输出重定向举例

 # 将标准输出和错误输出分开
 普通用户执行下列命令:
 find / -type d -name'文件名' > 常规日志 2> 错误日志
 ​
 # 将标准输出和错误输出放在同一文件中
 find / -type d -name'文件名' &> 文件名
 find / -type d -name'文件名' > 文件名 2>&1
 ​
 如果执行的命令只有标准输出和错误输出,以上两条命令,输出结果一样,但是执行流程不一样
 如果执行命令除了标准和错误输出还有其他输出,以上两条命令,输出结果不一样,执行流程也不一样
 ​
 ​
 # 将两个命令输出的内容重定向到一个文件中
 [root@localhost ~]# (ls; date) &>/dev/null

输入重定向

 dd </dev/zero >/opt/disk bs=1K count=1024

管道技术

 # |:将管道符左边命令的标准输出,交给管道符右边命令的标准输入处理
 ​
 # tree
 -a:append 追加
 ​
 # xargs:处理数据流,有些命令如果没有标准输入可以使用xargs
 1.将管道符前面的标准输出进行排列
 2.将排列后的内容,放到后面命令结尾处理
 没有标准输入的命令,可以用xargs,有标准输入的命令也可以用,效果不同
 ​
 -i:指定数据流的位置,将数据流放入{}中

 

 

 

标签:输出,重定向,标准,root,基础,dev,命令,day18
来源: https://www.cnblogs.com/LZA1218/p/16182517.html