Linux中的重定向以及标准输入输出、混合输出和标准错误输出

阅读: 评论:0

Linux中的重定向以及标准输入输出、混合输出和标准错误输出

Linux中的重定向以及标准输入输出、混合输出和标准错误输出

👨‍🎓博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 前言
    • 重定向统计列表
  • 标准输入重定向:
  • 标准输出重定向:
  • 混合输出重定向:
  • 标准错误输出重定向:
  • 文件描述符
  • EOF的使用

前言

重定向统计列表

类型命令作用
标准输入重定向 echo “123” < file 将输入的数字展示到终端上。
标准输出重定向 command > file 以覆盖的方式,把 command 的正确输出结果输出到 file 文件中。
command >> file 以追加的方式,把 command 的正确输出结果输出到 file 文件中。
标准错误输出重定向command 2> file 以覆盖的方式,把 command 的错误信息输出到 file 文件中。
command 2>> file以追加的方式,把 command 的错误信息输出到 file 文件中。
正确输出和错误信息同时保存 command > file 2>&1 以覆盖的方式,把正确输出和错误信息同时保存到同一个文件(file)中。
command >> file 2>&1以追加的方式,把正确输出和错误信息同时保存到同一个文件(file)中。
command >file1 2>file2 以覆盖的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。
command >>file1 2>>file2以追加的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。

标准输入重定向:

  标准输入(stdin)通常是指从终端或命令行界面接收输入数据的通道。当你在终端中输入命令并按下回车键时,你的输入就会被发送到标准输入。

标准输入通常用文件描述符(file descriptor)表示,其中stdin的文件描述符为0。在程序中,你可以使用这个文件描述符来读取从标准输入传来的数据。

以下是一些与标准输入相关的常见操作:

  1. 从标准输入读取一行文本:
echo "请输入您的名字:"
read name
echo "您好,$name!"
  1. 将命令的输出重定向到标准输入:

如果没有后面的文件,需要先创建:

echo "123" < a.txt

这将输入的内容123显示在终端上。

标准输出重定向:

  标准输出(stdout)是指默认情况下将进程的输出结果发送到终端的通道。当你运行一个程序或命令时,它通常会将输出内容显示在终端上,这就是标准输出的作用。

  • 标准输出(输出第二次则覆盖第一次的内容)
echo "abc" > a.txt# 覆盖a.txt内容
echo "abc" > a.txt
echo "123" > a.txt
# 输入了两个文字,但是只存留了最后一个,因为>代表的是标准输入(输出第二次则覆盖第一次的内容)
  • 标准输出(追加输出)>>
echo "123" > a.txt
echo "123123" >> a.txt#此时&#中内容为:
123
123123
  • 使用命令查询输入到一个文件中(工作中最常用的)
ls -a > a.txt# 输出完之后可以使用cat查看

混合输出重定向:

  可以使用管道符号(|)将两个或多个命令的输出进行混合,并将结果重定向到文件或其他命令的输入。

下面是一个将两个命令的输出混合并重定向到文件的示例:

command1 | command2 > 

在这个示例中,command1的输出会被作为command2的输入,并且它们的输出结果会被重定向到<文件中。

如果你要将一个命令的输出同时重定向到文件和其他命令的输入,你可以使用多个重定向符号:

command >  2>&1 | command2

在这个示例中,command的输出会被重定向到<文件中,并且标准错误输出(stderr)会被重定向到标准输出(stdout),然后再将标准输出作为command2的输入。

标准错误输出重定向:

例如:

LS > a.txt
# 默认这个会直接再也没上输入【bash: LS: command not found】,而a.txt.里是空的
# 想要将错误的信息也输出到a.txt中,我们可以使用标准错误
LS 2> a.txt
# 这样cat查看你的时候,错误信息就可以看到了。

实例:

yum -y install bind bind-utils &> /dev/null && echo “ok” || echo “not ok”

(安装一个bind和bind-utils把安装时候输出的内容全部放到/dev/null,[/dev/null相当于一个回收站,输出到这里面就直接清空]然后如果安装成功就输出ok,安装失败就输出not ok)

文件描述符

文件描述符文件名类型硬件
0stdin标准输入文件键盘
1stdout标准输出文件显示器
2stderr标准错误输出文件显示器

实例:运行一个jar包,将jar包的日志输出到cs.logs中,错误日志输出到cserror.log中。

java -jar cs.jar > cs.log 2> cserror.log

EOF的使用

  1. 可以使用EOF输入多行文字显示到终端上。
[root@localhost a]# cat << EOF
> 123
> 123
> sda
> EOF123
123
sda
  1. EOF输入追加
[root@localhost a]#  cat <<EOF>> c.txt
> 123
> 123
> EOF
  1. EOF输入覆盖
[root@localhost a]# cat <<EOF> c.txt 
> 123lda
> dfasdf
> EOF
  • 实例:

  1. 172.16.11.221 k8s-master
    172.16.11.222 k8s-node1
    172.16.11.223 k8s-node2
    输出到//中(追加)
cat >> / << EOF 
172.16.11.221 k8s-master
172.16.11.222 k8s-node1
172.16.11.223 k8s-node2
EOF
  1. 将 a 输出到//中(覆盖)
cat > / << EOF 
a
EOF
  1. 双重重定向指定内容到指定文件(覆盖)
tee / << EOF
123
1wed
sdfa
13228
EOF

双重重定向的意思是:将输出的内容,在页面上展示一下,并输出到指定的文件内容中。

本文发布于:2024-01-31 09:05:30,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170666313127417.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:标准   输入输出   重定向   错误   Linux
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23