Shell输入输出重定向:Shell Here Document,/dev/null文件

【Shell篇】Shell 输入输出重定向。command1 > file1,Here Document,/dev/null 文件 文章目录Shell 输入/输出重定向1. 重定向命令列表2. 输出重定向2.1 基本语法2.2 实操案例3. 输入重定向3.1 基本语法3.2 实操案例4. 扩展4.1 基本语法4.2 实操案例5. 重定向深入讲解6. Here Document6.1 基本语法6.2 实操案例7. /dev/null 文件 Shell 输入/输出重定向 1. 重定向命令列表 命令 说明 command > file 将输出重定向到 file。 command < file 将输入重定向到 f 阅读详情
Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。
输出重定向
命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。
命令输出重定向的语法为:
$ command > file
这样,输出到显示器的内容就可以被重定向到文件。
例如,下面的命令在显示器上不会看到任何输出:
$ who > users
打开 users 文件,可以看到下面的内容:
$ cat users
oko         tty01   Sep 12 07:30
ai          tty15   Sep 12 13:32
ruth        tty21   Sep 12 10:10
pat         tty24   Sep 12 13:07
steve       tty25   Sep 12 13:03
$
输出重定向会覆盖文件内容,请看下面的例子:
$ echo line 1 > users
$ cat users
line 1
$
如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾,例如:
$ echo line 2 >> users
$ cat users
line 1
line 2
$
输入重定向
和输出重定向一样,Unix 命令也可以从文件获取输入,语法为:
command < file
这样,本来需要从键盘获取输入的命令会转移到文件读取内容。
注意:输出重定向是大于号(>),输入重定向是小于号(<)。
例如,计算 users 文件中的行数,可以使用下面的命令:
$ wc -l users
2 users
$
也可以将输入重定向到 users 文件:
$ wc -l < users
2
$
注意:上面两个例子的结果不同:第一个例子,会输出文件名;第二个不会,因为它仅仅知道从标准输入读取内容。
重定向深入讲解
一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以这样写:
$command 2 > file
如果希望 stderr 追加到 file 文件末尾,可以这样写:
$command 2 >> file
2 表示标准错误文件(stderr)。
如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:
$command > file 2>&1
或
$command >> file 2>&1
如果希望对 stdin 和 stdout 都重定向,可以这样写:
$command < file1 >file2
command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。 


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

Here Document
Here Document 目前没有统一的翻译,这里暂译为”嵌入文档“。Here Document 是 Shell 中的一种特殊的重定向方式,它的基本的形式如下:
command << delimiter
    document
delimiter
它的作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。

注意:
结尾的delimiter 一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 缩进。
开始的delimiter前后的空格会被忽略掉。

下面的例子,通过 wc -l 命令计算 document 的行数:
$wc -l << EOF
    This is a simple lookup program
    for good (and bad) restaurants
    in Cape Town.
EOF
3
$
也可以 将 Here Document 用在脚本中,例如:
#!/bin/bash
cat << EOF
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
EOF
运行结果:
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
下面的脚本通过 vi 编辑器将 document 保存到 test.txt 文件:
#!/bin/sh
filename=test.txt
vi $filename <<EndOfCommands
i
This file was created automatically from
a shell script
^[
ZZ
EndOfCommands

运行脚本:
$ sh test.sh
Vim: Warning: Input is not from a terminal
$
打开 test.txt,可以看到下面的内容:
$ cat test.txt
This file was created automatically from
a shell script
$

/dev/null 文件
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
$ command > /dev/null
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到”禁止输出“的效果。

如果希望屏蔽 stdout 和 stderr,可以这样写:
纯文本复制
$ command > /dev/null 2>&1


VConsole动态加载 // 移动端真机调试工具 vconsole import VConsole from "vconsole"; import Vue from "vue"; // 动态使用VConsole if(process.env.NODE_ENV==='production'){ if(process.env.VUE_APP_BASEURL.includes('test')||process.env.VUE_APP_BASEURL.includes('pre')){ Vue.prototype 阅读详情

相关推荐

ColorOS13系统账户锁与密码锁破解全指南:从恢复模式到激活绕过

本文针对ColorOS13系统用户,详细解析了忘记锁屏密码(数字/图案锁)和遭遇OPPO账户锁(激活锁)的合法解决方案。核心是通过官方恢复模式进行格式化操作清除锁屏密码,并强调账户锁需通过密码找回或官方售后等正规途径解除。文章旨在帮助设备合法所有者恢复使用权,并提供了安全操作指南与数据备份建议。

weixin_28304023的博客 965

为了1024

为了1024

谷咕咕 12万+

离线安装samba与配置(.tar方式安装)

个人记录

小道士写程序 7722

探索Caoliu.plug:一款创新的插件系统框架

探索Caoliu.plug:一款创新的插件系统框架 去发现同类优质开源项目:https://gitcode.com/ 项目简介 是由开发者Rose1988c创建的一个开源项目,旨在提供一个灵活、易扩展的插件系统框架。通过此框架,开发者可以轻松地为自己的应用程序添加新的功能或模块,无需对核心代码进行大规模修改,从而提高了软件的可维护性和复用性。 技术分析 Caoliu.plug的核心是基于Java的...

gitblog_00091的博客 4万+

ESP-SR实战:从零搭建智能语音唤醒与命令识别系统

本文详细介绍了如何利用乐鑫ESP-SR框架,从零开始搭建一个完整的离线智能语音交互系统。内容涵盖硬件选型(推荐ESP32-S3与数字麦克风)、开发环境配置(ESP-IDF与ESP-ADF),并深入解析了AFE声学前端、WakeNet唤醒词检测和MultiNet命令词识别三大核心模块的工作原理与实战配置。通过具体的代码示例和调试技巧,指导开发者快速实现高识别率的语音唤醒与命令控制功能。

weixin_29161785的博客 299

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 195

08.echo,这个要会不能再少了

echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式:echo arg可以使用echo实现更复杂的输出格式控制。显示转义字符echo "\"我爱草榴\""结果将是:"我爱草榴"双引号也可以省略。显示变量name="caoliu" echo"$name是个好社区"结果将是:caoliu 是个好社区同样双引号也可以省略。如果变量与其它字符相连的话,需要...

weixin_34032621的博客 6505

【Hermes Agent】2026 Hermes Agent 最新入门级实战指南:从原理、部署、模型配置到落地 Demo

当下 Vibe Coding、AI 自动化时代,单纯对话大模型已经没有竞争力,

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 244

注意,你注册的假1024可能就是它

  近年来,随着信息技术的迅猛发展,网络已经成为我们生活不可或缺的一部分。网络小芬给我们带来方便快捷的同时,也成为诈骗犯罪的温床,不发分子利用网友的好奇心理,制作上线钓鱼网站诱骗消费者。钓鱼网站是不法分子尽心网络诈骗的主要手段之一。    今天讲的就是一次对钓鱼***到社工的经历  废话不多说 看图跑进来的请认真看 记好笔记  目标站 http://www.caoliu10240.com/  10...

weixin_34068198的博客 3万+

YOLOv11改进:引入SSA序列打乱注意力模块与MSCSA二次创新模块,适配目标检测、图像分类与实例分割

YOLOv11改进:引入SSA与MSCSA模块提升CV任务性能 摘要: 本文提出在YOLOv11中集成SSA(序列打乱注意力)和MSCSA(多尺度上下文序列打乱注意力)模块,以解决计算机视觉任务中的关键挑战。SSA通过序列打乱和局部窗口注意力机制,在降低计算复杂度的同时增强长距离依赖建模能力;MSCSA进一步引入多尺度上下文融合和动态序列打乱策略,优化了多尺度目标检测和实例分割的边界特征处理。这些改进有效解决了传统注意力机制在全局上下文建模、局部细节保持和序列顺序敏感性方面的不足。实验表明,该方法在目标检测

走向CTO的路上... 857

【YOLOv11多模态融合改进】| CVPR2025 LCA轻量交叉注意力 双向模态交叉引导 + 双支路噪点抑制,兼顾纹理与热目标特征融合

可见光模态富含纹理、色彩、边缘细节,但夜间/低照度场景信噪比极低,暗区噪声泛滥;红外模态依靠热辐射凸显弱小目标、暗区物体轮廓,但缺失真实色彩与精细纹理。简单拼接/逐加融合仅做浅层特征叠加,无法建立可见光纹理、红外热特征的双向引导关联,两类模态互补信息无法精准互通;普通自注意力仅单模态内部建模,跨模态交互匮乏,红外热目标易被可见光暗噪声淹没,可见光有效纹理易被红外灰度信息覆盖;

Limiiiing的博客 115

09.打印“caoliuzhenhao”

printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。注意:printf 由 POSIX标准所定义,移植性要比 echo 好。如同 echo 命令,printf 命令也可以输出简单的字符串:printf "caoliu是真的好耶!\n"结果:caoliu是真的好耶!printf 不像 echo 那...

weixin_33779515的博客 2万+

数学建模Matlab算法,第七章 对策论

对策论作为研究竞争与决策的数学理论,从零和对策到非常数和对策,为分析各类博弈问题提供了系统框架。其核心要素包括局中人、策略集和赢得函数,通过稳定解、Nash平衡点等概念揭示竞争规律。该理论广泛应用于经济、军事、政治等领域,不仅提供具体分析工具,更改变了决策思维方式,强调在互动中实现理性选择。对策论既揭示了竞争本质,也凸显合作价值,为解决社会矛盾、促进共赢发展提供了重要启示,在全球化背景下将发挥更大作用。

unber的博客 107

shell基础教程二十: Shell输入输出重定向:Shell Here Document,/dev/null文件

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。 输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。 命令输出重定向的语法为: $ command > file 这样,输出到显示器的内容就可以被重定向到文件。 例如,下面的命令在显示器上不会看到任何输出: $ who > users 打开 users 文件,可以看到下面的内容: $ c

博客简介 249

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

十五、Shell输入输出重定向:Shell Here Document,/dev/null文件

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。(1)输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。命令输出重定向的语法为:(追加覆盖)command > file这样,输出到显示器的内容就可以被重定向到文件。eg1:(打开a.log文件

play_chess_ITmanito的博客 512

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

二十二、Shell输入输出重定向:Shell Here Document,/dev/null文件

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。 输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。 命令输出重定向的语法为: $ command > file 这样,输出到显示器的内容就可以被重定向到文件。

hs6662668的专栏 439

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【Shell脚本学习24】Shell输入输出重定向:Shell Here Document,/dev/null文件

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。 输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。 命令输出重定向的语法为: $ command > file 这样,输出到显示器的内容就可以被重定向

Geek马走日 334

《Linux入门教程》课程学习(39)——第39章 Shell输入输出重定向:Shell Here Document,/dev/null文件

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。 输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。 命令输出重定向的语法为: $ command > file 这样,输出到显示器的内容就可以被重定向到文件。 例如,下面的命令在显示器上不会看到任何输出: $ who > users 打开 users 文件,可以看..

qq_34573534的博客 158
上一篇: Shell函数参数
下一篇: Shell文件包含
puyangdev
博客等级 码龄10年 10粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值