Shell 输入输出重定向

2023-11-01

1 普通重定向

命令 说明
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 之间的内容作为输入。
输出重定向
command1 > file1 执行command1然后将输出的内容存入file1。
输出重定向会覆盖文件内容
command1 >> file1 如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾
输入重定向
command1 < file1 Unix 命令也可以从文件获取输入
本来需要从键盘获取输入的命令会转移到文件读取内容
同时替换输入和输出
command1 < infile > outfile 执行command1,从文件infile读取内容,然后将输出写入到outfile中

2 文件描述符

文件描述符
0 标准输入(STDIN)
1 标准输出(STDOUT)
2 标准错误输出(STDERR)
一些更复杂的示例
如果希望 stderr 重定向到 file command 2 > file
如果希望 stderr 追加到 file 文件末尾 command 2 >> file
如果希望将 stdout 和 stderr 合并后重定向到 file command > file 2>&1
如果希望对 stdin 和 stdout 都重定向 command < file1 >file2

3 Here Document

是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。

作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command

command << delimiter
document
delimiter

实例

在命令行中通过 wc -l 命令计算 Here Document 的行数:

wc -l << EOF
欢迎来到
云教程
www.dandelioncloud.cn
EOF

输出结果为 3

4 /dev/null 文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

command > /dev/null

如果希望屏蔽 stdout 和 stderr

command > /dev/null 2>&1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell 输入输出重定向 的相关文章

  • 找出 Linux 上的默认语言

    有没有办法从C语言中找出Linux系统的默认语言 有 POSIX API 可以实现这个功能吗 例如 我想要一个人类可读格式的字符串 即德语系统上的 German 或 Deutsch 法语系统上的 French 或 Francais 等 有类
  • 从 Python 访问 802.11 无线管理帧

    我想从 Linux 上的 Python 嗅探 802 11 管理 探测请求 帧 这可以从 Scapy 中实现 如下所示 coding utf 8 from scapy all import def proc p if p haslayer
  • Fortran 中的共享库,最小示例不起作用

    我试图了解如何在 Linux 下的 Fortran 中动态创建和链接共享库 我有两个文件 第一个 liblol f90 看起来像这样 subroutine func print lol end subroutine func 我用它编译gf
  • 如何在gnuplot中将字符串转换为数字

    有没有办法将表示数字 以科学格式 的字符串转换为 gnuplot 中的数字 IE stringnumber 1 0e0 number myconvert stringnumber plot 1 1 number 我可能使用 shell 命令
  • 如何确定代码是否在信号处理程序上下文中运行?

    我刚刚发现有人正在从信号处理程序调用我编写的绝对不是异步信号安全的函数 所以 现在我很好奇 如何避免这种情况再次发生 我希望能够轻松确定我的代码是否在信号处理程序上下文中运行 语言是 C 但该解决方案不适用于任何语言吗 int myfunc
  • 查看 Linux 上的多核或多 CPU 利用率

    我有一个在 Linux 上运行的程序 我需要确定它如何利用所有 CPU 内核 有没有什么程序可以查看这些信息 跑过 top 命令并按下 1 查看各个核心
  • 在 debian wheezy amd64 上安装 ia32-libs

    我正在使用 Debian 7 喘息 amd64 uname a Linux tzwm debian 3 2 0 4 amd64 1 SMP Debian 3 2 51 1 x86 64 GNU Linux 我想安装ia32 libs在我的
  • 使用c在linux上分块读写

    我有一个 ASCII 文件 其中每一行都包含一个可变长度的记录 例如 Record 1 15 characters Record 2 200 characters Record 3 500 characters Record n X cha
  • 为什么docker容器提示“权限被拒绝”?

    我使用以下命令来运行 docker 容器 并从主机映射目录 root database 到容器 tmp install database docker run it name oracle install v root database t
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • Visual Studio - X11:缺少 DISPLAY 环境变量

    我正在使用 Visual Studio 2019 Enterprise 开发跨平台 Windows Linux x64 GUI 应用程序 在这个 2019 版本中 我们可以使用 Visual Studio调试平台 Windows 本机 和
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b

随机推荐

  • 机器学习sklearn之贝叶斯网络实战(三)

    贝叶斯网络的结构学习 包括 基于评分的结构学习 基于约束的结构学习以及两者结合的结构学习方法 hybrid structure learning 评分函数主要分为两大类 贝叶斯评分函数 基于信息论的评分函数 贝叶斯评分函数主要包括 K2评分
  • 虚拟机VMware最详细下载与安装教程!

    前面给大家讲过了虚拟机VBox的安装 个人觉得还是没有VMware好用 因为VMware有快照功能 而VBox没有 所以今天就给大家说下VMware的安装 有很多细节方面需要注意 不然很可能安装失败 这里就说下15 5 2的安装 建议不要安
  • WMware WorkStation克隆CentOS7

    WMware WorkStation克隆CentOS7 1 克隆说明 vmware中的完整克隆是基于指定的虚拟机克隆出相同的一份出来 不必再安装 但是我们要保证几个地方不能一样 一个是主机名称 hostname 一个是虚拟网卡设备mac地址
  • webpack 的热更新是如何做到的?原理是什么?

    Hot Module Replacement 简称 HMR 在不需要刷新整个页面的同时更新模块 能够提升开发的效率和体验 热更新时只会局部刷新页面上发生了变化的模块 同时可以保留当前页面的状态 比如复选框的选中状态等 在 webpack 中
  • Java课题笔记~ 日期处理

    2 8 日期处理 2 8 1 日期注入 日期类型不能自动注入到方法的参数中 需要单独做转换处理 使用 DateTimeFormat注解 需要在springmvc xml文件中添加mvc annotation driven 标签 1 在方法的
  • RSA算法

    一 资料阅读 1 RSA算法 将两个大素数相乘十分容易 但那时想要对其乘积进行因式分解却极其困难 因此可以将乘积公开作为加密密钥 2 数字签名 又称公钥数字签名 电子签章 是一种类似写在纸上的普通的物理签名 但是使用了公钥加密领域的技术实现
  • 小程序登录及AppSecret(小程序密钥)

    在授权开发以后 需要提交小程序密钥 有小程序密钥第三方才有能力获取用户的一些信息 提供一些能力 平台分别提供多种方式实现微信登录 1 调用wx login接口 静默获取openid 适用场景 无需使用用户头像 昵称 Unionid信息 2
  • Echarts基本入门(一)

    一 关于Echarts图形的基本设置都是在 option中完成的 具体的配置可以参考官网链接 https www echartsjs com zh tutorial html ECharts 20 E4 B8 AD E7 9A 84 E6
  • 单片机实现 printf 打印输出,和电脑端一样用

    在学C语言时 printf 很好用 到了单片机 ARM时却不能用 那因为库中的 printf 是定向打印到显示屏的 所以我们把 printf 重新定向打印到串口就可以了 串口助手中就可以显示打印的内容 这样我们在单片机 ARM中就可以 像电
  • 1.性能测试项目实战

    怎么开展性能测试 什么时候开始性能测试 1 先确定需不需要做 客户有明确的性能需求 当没有明确需求时 如果市场用户访问量不大 时间允许就做一个基准测试 时间不允许就不做 市场用户量比较大 需要先跟产品 需求人员确定好性能需求 再去做对应的性
  • 申请带@msn.com后缀的邮箱

    很多朋友总是抱怨申请msn邮箱时总是申请到 hotmail com的 为什么申请不到 msn com的呢 我从网上Google了一下 这个地址是申请简体中文MSN邮箱的 https accountservices passport net
  • DC/AC:单相双极性SPWM逆变电路原理设计及MATLAB/Simulink实验仿真

    单相PWM逆变电路的主电路与单相方波逆变电路相同 如图所示 只是其驱动信号不再是占空比为50 的方波 而是采用PWM控制 将宽度变化的窄脉冲作为驱动信号 PWM技术的理论基础为面积等效原理 即形状不同但面积相等的窄脉冲加之于线性惯性环节时
  • html input设置非空,input非空检查解决方案

    当前位置 我的异常网 vbScript input非空检查解决方案 input非空检查解决方案 www myexceptions net 网友分享于 2013 03 10 浏览 62次 input非空检查 code VBScrip悬赏科技
  • 简述熔断、限流、降级

    高并发场景指的是在大量用户同时访问服务时 服务能够保持稳定和高效运行的能力 常用的解决高并发场景下服务不可用问题的技术手段包括熔断 限流和降级 熔断 当服务的错误率超过一定阈值时 熔断器会自动断开服务的调用 防止错误的服务继续对系统造成负载
  • 视频教程-Java从小白到大牛第3篇 【进阶篇】-Java

    Java从小白到大牛第3篇 进阶篇 一个在IT领域摸爬滚打20多年的老程序员 软件架构师 培训讲师 IT作家 熟悉Java Kotlin Python iOS Android 游戏开发 数据库开发与设计 软件架构设计等多种IT技术 参与设计
  • python中的特殊运算符

    运算符 描述 相当于python中的关键字 or 简述 usr bin env python coding UTF 8 Time 2019 9 16 15 10 Email spirit az foxmail com File tst py
  • Unity 回合制战斗系统(中级篇)

    项目文件找出来了 老版本的脚本有报错 我在新版2019 4 21f1c1下解决了报错 战斗场景可以正常跑的 需要的同学点下面地址下载 关注就行啦不用积分 祝大家都早日学成 项目包下载 上一篇文章里实现了较为初级的回合制战斗系统 仅限与1v1
  • LabVIEW开放神经网络交互工具包【ONNX】,大幅降低人工智能开发门槛,实现飞速推理

    文章目录 前言 一 工具包内容 二 工具包下载链接 三 工具包安装步骤 四 实现物体识别 五 实现图像分割 六 自然场景下的文字识别 七 人体关键点检测 总结 前言 前面给大家介绍了自己开发的LabVIEW ai视觉工具包 后来发现有一些o
  • SCI三区论文大修笔记(已录用)

    本人5月份往Journal of Process Control期刊投了一篇论文 是基于深度学习图像序列预测的 前几天收到一审结果 大修 两个审稿人给了几篇参考文献 此贴专门用来做笔记方便自己查阅 论文1 Video salient obj
  • Shell 输入输出重定向

    1 普通重定向 命令 说明 command gt file 将输出重定向到 file command lt file 将输入重定向到 file command gt gt file 将输出以追加的方式重定向到 file n gt file