美文网首页Linux赵
Linux输入与输出

Linux输入与输出

作者: Gq赵 | 来源:发表于2019-08-09 15:54 被阅读0次

一、什么是重定向?

定义:将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中。(就是执行命令时把输出到屏幕的数据信息放到指定的文件夹中,输出的信息就不会显示到屏幕上)

二、为何要使用重定向?

1.当屏幕输出的信息很重要,而且希望保存重要的信息时;
2.后台执行中的程序,不希望他干扰屏幕正常的输出结果时;
3.系统的例行命令, 例如定时任务的执行结果,希望可以存下来时;
4.一些执行命令,我们已经知道他可能出现错误信息, 想将他直接丢弃时;
5.错误日志与正确日志需要分别输出至不同的文件保存时;

三、常用的符号

  • < 输入重定向
  • ;   cmd1 ; cmd2 无论前者命令成功还是失败,都执行后者命令
  • &   将程序放入后台执行 ( screen 将程序放入后台 )
  • &&  cmd1 && cmd2 前者命令执行成功,后者命令才会执行
  • ||   cmd1 || cmd2 前者命令执行失败,后者命令才会执行

3.标准输入\ 标准输出 错误输出
程序运行起来后,变为进程, 会同时打开三个文件 标准输入 标准输出 错误输出. 标准输入
标准输入输出 错误\ 与重定向之间有什么关系?
重定向就是用来改变标准输出 或者标准错误输出的一个指向.
1> 标准输出重定向 (覆盖)
1>> 标准输出重定向 (追加)
2> 标准错误输出重定向 (覆盖)
2>> 标准错误输出重定向 (追加)
&>/dev/null 混合输出 (覆盖)
&>>/tmp/t.log 混合输出 (追加
当运行一个程序时通常会自动打开三个标准文件,分别是标准输入、标准输出、错误输出

文件描述符
  • 标准输入 0
  • 标准输出 1
  • 错误输出 2
  • 文件名称 3+


    image.png

四、cat 命令的功能是从命令行给出的文件中读取数据,并将这些数据直接送到标准输出。若使用如下命令:

会把文件/etc/passwd的内容输出显示到屏幕上
[root@ZhaoJianHao-1 ~]# cat /etc/passwd

如果用cat查看文件时没有带上文件名,就会把输入的内容输出到屏幕上。

[root@ZhaoJianHao-1 ~]# cat
1
1
23
23

ps 查看系统进程
[root@ZhaoJianHao-1 ~]# ps
   PID TTY          TIME CMD
 20352 pts/1    00:00:00 bash
 20370 pts/1    00:00:00 ps
Linux查看标准输入输出设备
[root@ZhaoJianHao-1 ~]# ls -l /dev/std*
lrwxrwxrwx. 1 root root 15 Aug  5 20:11 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 Aug  5 20:11 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 Aug  5 20:11 /dev/stdout -> /proc/self/fd/1

五、输出重定向

输出重定向,改变输出内容的位置。输出重定向有如下几种方式,如表格所示

类型              操作符            用途
标准覆盖输出重定向         >     将程序输出的正确结果输出到指定的文件中,会覆盖文件原有的内容
标准追加输出重定向         >>      将程序输出的正确结果以追加的方式输出到指定文件,不会覆盖原有文件
错误覆盖输出重定向         2>      将程序的错误结果输出到执行的文件中,会覆盖文件原有的内容
错误追加输出重定向         2>>     将程序输出的错误结果以追加的方式输出到指定文件,不会覆盖原有文件
标准输入重定向           <<      将命令中接收输入的途径由默认的键盘更改为指定的文件或命令
案例1: 标准输出重定向(每次都会覆盖文件)
image.png
[root@ZhaoJianHao-1 ~]# ifconfig eth0 > abc
[root@ZhaoJianHao-1 ~]# cat abc
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.10  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::902a:d748:c923:992d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:45:ce:35  txqueuelen 1000  (Ethernet)
        RX packets 107722  bytes 17639774 (16.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 58756  bytes 27878833 (26.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
案例2: 标准输出重定向(会往文件的尾部在添加内容)
image.png
#####标准追加输出重定向, 向配置文件末尾追加内容
[root@ZhaoJianHao-1 ~]# echo "This is network conf" >> if 
[root@ZhaoJianHao-1 ~]# cat if
This is network conf

案例3: 错误输出重定向
image.png
正确输出以及错误输出重定向至一个文件
[root@ZhaoJianHao-1 ~]# useradd xuliangwei
[root@ZhaoJianHao-1 ~]# su - xuliangwei

将标准输出和标准错误输出重定向到不同文件
[root@ZhaoJianHao-1 ~]$ find /etc -name "*.conf" 1>a 2>b
案例4: 正确和错误都输入到相同位置
image.png
将标准输出和标准错误输出重定向到同一个文件, 混合输出
[root@ZhaoJianHao-1 ~]$ find /etc -name "*.conf" &>ab

合并两个文件内容至一个文件
[root@ZhaoJianHao-1 ~]$ cat a b > c
案例5: 正确和错误都输入到相同位置
image.png
#重定向到相同的位置
[root@ZhaoJianHao-1 ~]# ls /root /error >ab  2>&1
案例6: 重定向到空设备/dev/null
image.png
#将产生的任何数据放入黑洞设备,则视为丢弃。
[root@ZhaoJianHao-1 ~]# ls /root /error >ab 2>/dev/null
[root@ZhaoJianHao-1 ~]# ls /root /error >ab &>/dev/null

六、进程管道技术 |

将左边命令的标准输出 ---传递---> 右边命令的标准输入 ---> 标准输出| 错误输出 tee 将左边命令的标准输出保存至文件或打印至终端, 但不影 响管道数据的一个传递
xargs 用于将不支持管道的命令 支持管道 左边命令的输出作 为参数进行传递

相关文章

  • Linux输入与输出

    一、什么是重定向? 定义:将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中。(就是执行命令时把输出到屏幕的...

  • Linux -- 重定向STDIN与STDOUT

    《Linux命令行与shell脚本编程大全》,4 E -- Chapter 15 一、理解输入和输出 显示脚本输出...

  • linux重定向输入输出总结

    标准输入输出 在 Linux 系统中:标准输入(stdin)默认为键盘输入;标准输出(stdout)默认为屏幕输出...

  • Shell | 标准输入输出重定向

    一、Linux 标准输入输出 二、标准输入输出重定向 1. 标准输入输出重定向是什么? 2. 标准输入输出重定向的...

  • shell中的重定向

    linux shell下常用输入输出操作符是: 输出重定向 输入重定向

  • 2020-10-22

    输入与输出 阅读,学习,写日记,写作,健身,饮食,都是输入与输出,输入是为了输出。想输出必要输入,输出是倒逼我成长...

  • 深度思考-输入输出与本质

    深度思考-输入输出与本质 目录 1、输入与输出 2、本质 3、总结 1、输入与输出 输入输出就是现象。 A:我有个...

  • 01初识Linux

    与Linux进行交互 通过shell给Linux下达命令:在提示符后输入命令再回车,就会执行命令,并在终端输出结果...

  • Linux 输入输出

    Linux 中三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2。 STDIN...

  • 学习与践行相结合,输入与输出相匹配

    学习与践行相结合,输入与输出相匹配 学习与践行相结合,输入与输出相匹配。 以输入转化为输出,以输出倒逼输入。 只有...

网友评论

    本文标题:Linux输入与输出

    本文链接:https://www.haomeiwen.com/subject/hfdhjctx.html