linux命令4

本文介绍Linux中标准输入、输出、错误的概念及其文件标识符,并详细解释重定向的各种用法,包括如何通过文件描述符实现输入输出的灵活控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)

linux的几个基本符号:

stdin,stdout,stderr分别用文件标识符(0,1,2)来表示。

/dev/null 表示空设备文件,可以理解为文件黑洞。
0 :stdin(标准输入,键盘录入)

1 :stdout(标准输出,终端输出)

2 :stderr(标准错误,终端输出)


如,执行command,标准输出到log.txt中,标准错误输出到error.txt中。

command 1>log.txt 2>error.txt


举例(1),command 执行的结果为标准输出,用1来表示

command > /dev/null

等价于

command 1 > /dev/null


(二)

重定向:

Linux系统通常从一个叫标准输入的地方读取输入并且将一个命令的结果以写入到标准输;如果我们想改变输入和输出的方式,就需要使用重定向。通常重定向命令有如下几种方式:

命令说明 
command > file将输出重定向到 file。 
command < file将输入重定向到 file。 
command >> file将输出以追加的方式重定向到 file。 
n > file将文件描述符为 n 的文件重定向到 file。 
n >> file将文件描述符为 n 的文件以追加的方式重定向到 file。 
n >& m将输出文件 m 和 n 合并。(m和n合并,同时作为输出) 
n <& m将输入文件 m 和 n 合并。(m和n合并,同时作为输入) 
<< tag将开始标记 tag 和结束标记 tag 之间的内容作为输入。 

(三)

举例(1):2>&1,表示标准错误2和标准输出1,合并输入到/dev/null(空文件)中。

nohup command>/dev/null 2>&1 &

nohup:表示no hang up,也就是不挂起,表示command不挂起

&:最后一个&,表示为command后台执行。


举例(2):

command>a 2>a 和 command>a 2>&1的区别

command>a 2>&1:表示标准输出和标准错误合并同时写入a中。只打开文件a一次。

command>a 2>a:表示标准输出(1)写入文件a,标准错误(2)也写入文件a。标准错误(2)写入a的时候会覆盖掉标准输出(1)。打开文件a两次。


感谢参考:https://blog.youkuaiyun.com/ggxiaobai/article/details/53507530









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值