linux基础--I/O重定向

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

文件                文件描述符

输入文件->标准输入            0

输出文件->标准输出            1

错误输出文件->标准错误          2


输出重定向符号:

    >:覆盖输出

    >>:追加输出


set -c:禁止对已经存在的文件进行覆盖重定向

            在禁止设置后强制覆盖输出,使用>|

set +c:关闭上述功能

标准输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
覆盖模式标准输出重定向
[root@liang-study basic] # ls /var > a.txt
[root@liang-study basic] # cat a.txt 
account
cache
crash
cvs
db
追加模式标准输出重定向
[root@liang-study basic] # ll /home >> a.txt
[root@liang-study basic] # cat a.txt 
account
cache
crash
cvs
db
empty
total 16948
-rw-r--r--   1 root     root      5484681 Dec  8 12:24 4.1.0. tar .gz
drwxr-xr-x   2 root     root         4096 Dec 20 10:55 basic
drwx------   2 chenchao chenchao     4096 Dec 14 17:34 chenchao
drwxrwxr-x   8 root     root         4096 Dec  8 12:25 ipython-4.1.0
drwxr-xr-x.  2 root     root         4096 Dec  7 19:05 logs
drwx------.  2 root     root        16384 Dec  7 19:00 lost+found

标准错误输出

1
2
3
4
5
6
7
8
9
覆盖模式标准错误输出重定向
[root@liang-study basic] # ll /var12 2> b.txt
[root@liang-study basic] # cat b.txt 
ls : cannot access  /var12 : No such  file  or directory
追加模式标准错误输出重定向
[root@liang-study basic] # ll /var12 2>> b.txt
[root@liang-study basic] # cat b.txt          
ls : cannot access  /var12 : No such  file  or directory
ls : cannot access  /var12 : No such  file  or directory

标准输出和标准错误输出同时重定向

1
2
3
4
5
6
7
8
9
[root@liang-study basic] # ll /var12 &> b.txt  
[root@liang-study basic] # ll /var &> b.txt  
[root@liang-study basic] # cat b.txt 
total 76
drwxr-xr-x.  2 root root 4096 Dec 20 03:43 account
drwxr-xr-x. 11 root root 4096 Dec  7 19:04 cache
drwxr-xr-x.  2 root root 4096 Nov 18 23:19 crash
drwxr-xr-x.  2 root root 4096 Nov 22  2013 cvs
drwxr-xr-x.  3 root root 4096 Dec  7 19:04 db

即输出到屏幕又保存到文件中

1
2
3
4
[root@liang-study basic] # echo "hello word" | tee c.txt
hello word
[root@liang-study basic] # cat c.txt 
hello word


特殊例子:获取nginx版本号

1
2
3
4
[root@qa- test -lb-103-101 ~] # /usr/local/nginx/sbin/nginx -v 
nginx version: DLEngine /10 .2.2
[root@qa- test -lb-103-101 ~] # /usr/local/nginx/sbin/nginx -v | grep nginx |awk -F '/' '{print $2}'
nginx version: DLEngine /10 .2.2

上例可以看到,对nginx -v的输出使用awk处理并没有效果,继续看实验

1
2
3
4
5
[root@qa- test -lb-103-101 ~] # /usr/local/nginx/sbin/nginx -v > a.txt
nginx version: DLEngine /10 .2.2
[root@qa- test -lb-103-101 ~] # /usr/local/nginx/sbin/nginx -v 2> a.txt
[root@qa- test -lb-103-101 ~] # cat a.txt 
nginx version: DLEngine /10 .2.2

明白了吧,nginx -v不是标准输出,而是标准错误输出。标准错误输出不可使用awk等做处理。

可通过下面办法处理

1
2
[root@qa- test -lb-103-101 ~] # /usr/local/nginx/sbin/nginx -v |& grep nginx |awk -F '/' '{print $2}'
10.2.2

上述中在管道符“|”后增加&,表示将标准错误输出转化成标准输出,再对输出做awk处理即可切割或者过滤。

本文转自  亮公子  51CTO博客,原文链接:http://blog.51cto.com/iyull/1884189


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
6月前
|
Unix Linux Shell
【探索Linux】P.12(文件描述符 | 重定向 | 基础IO)
【探索Linux】P.12(文件描述符 | 重定向 | 基础IO)
59 0
|
3月前
|
存储 Unix Linux
Linux I/O 重定向与管道
【8月更文挑战第17天】重定向在Linux中改变命令I/O流向,默认有">"覆盖输出至文件及">>"追加输出至文件末尾,便于保存结果;使用"<"从文件读取输入而非键盘,高效处理数据。文件描述符如0(stdin)、1(stdout)、2(stderr)标识I/O资源,支持读写操作。管道以"|"连接命令,使前一命令输出成为后一命令输入,如排序用户或找出CPU占用最高的进程,构建复杂数据处理流程。
47 9
|
3月前
|
监控 Linux
在Linux中,如何监控磁盘I/O性能?
在Linux中,如何监控磁盘I/O性能?
|
3月前
|
Linux
Linux的I/O操作
Linux的I/O操作
|
3月前
|
存储 Unix Linux
Linux I/O 重定向与管道
【8月更文挑战第14天】输出重定向可将命令结果存入文件,如`>`覆盖写入或`>>`追加写入。输入重定向从文件读取数据,如`<`代替键盘输入。这些操作利用文件描述符(如0:stdin, 1:stdout, 2:stderr)管理I/O。管道`|`连接命令,使前一命令输出作为后一命令输入,便于数据处理,如排序用户`sort -t: -k3 -n /etc/passwd | head -3`或查找CPU占用高的进程`ps aux --sort=-%cpu | head -6`。
39 4
|
3月前
|
Unix Linux Shell
Linux I/O 重定向简介
Linux I/O 重定向简介
36 2
|
3月前
|
Linux 开发者
深入理解Linux I/O模型:同步、异步、阻塞与非阻塞
【8月更文挑战第1天】在探索操作系统的奥秘中,I/O模型作为影响性能的关键因素之一,常常让开发者们感到困惑。本文将通过浅显易懂的语言和实际代码示例,揭示Linux下同步与异步、阻塞与非阻塞的概念及其区别,并指导如何在实际应用中选择合适的I/O模型以优化程序性能。
131 1
|
3月前
|
存储 Linux 数据处理
在Linux中,管道(pipe)和重定向(redirection)的是什么?
在Linux中,管道(pipe)和重定向(redirection)的是什么?
|
4月前
|
Linux 数据处理 C语言
【Linux】基础IO----系统文件IO & 文件描述符fd & 重定向(下)
【Linux】基础IO----系统文件IO & 文件描述符fd & 重定向(下)
73 0
|
4月前
|
小程序 Linux
【编程小实验】利用Linux fork()与文件I/O:父进程与子进程协同实现高效cp命令(前半文件与后半文件并行复制)
这个小程序是在文件IO的基础上去结合父子进程的一个使用,利用父子进程相互独立的特点实现对数据不同的操作
102 2
下一篇
无影云桌面