Linux----------------Shell重定向输入输出
(一)
标准输入
以键盘读取用户输入的数据,然后再把数据拿到 Shel程序中使用。
标准输出
Shell 程序产生的数据,这些数据一般都是呈现到显示器上供用户浏览查看
输入输出重定向
输入方向就是数据从哪里流向程序。数据默认从键盘流向程序,如果改变了它的方向,
数据就从其它地方流入,这就是输入重定向。
输出方向就是数据从程序流向哪里。数据默认从程序流向显示器,如果改变了它的方向,
数据就流向其它地方,这就是输出重定向。
(二)文件描述符
linux 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。在linuxshell 执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述不容易记忆,shell同时给出相应的文件名。
| 文件名 | 文件描述符 | 功能 |
| 标准输入stdin | 0 | 获取键盘的输入数据 |
| 标准输出stdout | 1 | 将正确数据输出到显示器上 |
| 标准错误 | 2 | 将错误信息输出到显示器上 |
默认情况下,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 >file2command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。
()重定向命令列表

输出重定向
当你在Linux或Unix-like操作系统中执行命令时,可以使用输出重定向来控制命令的输出。输出重定向通过使用特定符号来实现,以下是一些常见的语法:
`>` 符号:
将命令的输出覆盖到指定的文件。如果文件已经存在,它将被新内容替代。
`>>` 符号:
将命令的输出追加到指定文件的末尾,而不会删除已有的内容。
示例:
例如,执行以下命令会将指定的文本追加到"users"文件的末尾,而不会删除已有的内容:
$ echo "好人一生平安" >> users
这些输出重定向功能对于日志记录、数据备份和生成报告等任务非常有用。你可以使用这些符号来控制命令的输出,以满足不同的需求。
输入重定向
wc命令可以用来对文本进行统计,包括单词个数、行数、字节数。
wc语法格式:wc [选项] [文件名]
常见选项有:

(四)补充
Here Document
Here Document是Shell脚本中的一种特殊重定向方式,用于将一段文本作为输入传递给一个命令或脚本。这种重定向方式允许你在Shell脚本或交互式环境中嵌入多行文本,并将这些文本作为命令的输入。
Here Document的基本形式如下:
command << delimiterdocument delimiter
command是接收输入的命令。delimiter是自定义的分界符,它标志了文本输入的开始和结束。document包含了你要传递给命令的文本。
注意事项:
- 结尾的
delimiter必须以单独的一行顶格写,前后不能有任何字符,包括空格和制表符。 - 开始的
delimiter前后的空格会被忽略。 - 这个功能非常适用于需要在Shell脚本中生成动态文本或配置文件的情况。
可以使用Here Document来传递多行文本,而不必在命令行中手动输入多行文本。wc -l命令用来计算Here Document中的行数。这个功能在脚本编程中非常有用,因为它允许你轻松地嵌入文本内容,而无需手动创建临时文件。
/dev/null文件。/dev/null是一个特殊的文件,它会吞掉所有写入它的内容,这对于禁止输出或将输出丢弃非常有用。通过将命令的输出重定向到/dev/null,你可以将命令的输出完全丢弃,使其不会在屏幕上显示或占用系统资源。如果将标准输出和标准错误都重定向到/dev/null,可以使用command > /dev/null 2>&1。这里的2>&1表示将标准错误(文件描述符2)重定向到标准输出,然后再将标准输出重定向到/dev/null。这样,命令的所有输出都会被丢弃。
相关文章:
Linux----------------Shell重定向输入输出
(一) 标准输入 以键盘读取用户输入的数据,然后再把数据拿到 Shel程序中使用。 标准输出 Shell 程序产生的数据,这些数据一般都是呈现到显示器上供用户浏览查看 输入输出重定向 输入方向就是数据从哪里流向程序。数据默认从键…...
apachesolr中简单使用
core使用 首先点击add core 可以看到报错solrconfig.xml不在new_core目录下,new_core是我们点击后自动创建的 那么我们将D:\solr2\solr-9.3.0\solr-9.3.0\server\solr\configsets下的任何一个目录下的conf拷贝到new_core过去 这里是使用_default下的conf目录拷贝…...
C++多线程编程:其一、thread类概述
thread是C11版本中出现的线程对象,可以让程序员非常方便地创建线程。 非空的thread对象创建以后,线程就会自动运行起来。简单地理解,一个线程对象中会传入一个函数指针,之后编译器会构造一个栈,将这个函数指针压栈。函…...
C++11 initializer_list 轻量级初始化列表的使用场景(让自定义类可以用初始化列表的形式来实例化对象)
initializer_list 是 C11 中的一个特性,它允许你使用花括号 {} 中的值列表来初始化容器或数组。通常用于初始化标准库容器,比如 std::vector、std::set、std::map 以及数组。 场景一:用初始化列表初始化容器 std::vector<int> arr {…...
请求地址‘/operlog‘,发生未知异常
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是全栈工…...
Makefile 保姆级使用教程
目录 Makefile 规则 Makefile的使用介绍 make 命令的使用 即时变量、延时变量介绍和使用 使用make命令编译多个文件 假想目标 常用函数 1.$(foreach var,list,text) 2.$(wildcard pattern) 3.$(filter pattern...,text) 4.$(filter-out pattern...,text) 5.$(patsub…...
【GitHub】Watch、Star、Fork、Follow 有什么区别?
目录 一、前言二、区别1. Watch2. Star3. Fork4. Follow 一、前言 GitHub 是最受欢迎的代码托管平台之一,拥有大量的开源代码可供学习。 Github 中也有类似 “点赞”、“收藏”、“加关注” 的功能。 下面介绍下,GitHub 中 Watch、Star、Fork、Follow 有…...
MyBatis实现多表映射、分页显示、逆向工程
目录 一、MyBatis实现多表映射 1.1 实体类设计 1.2 一对一关系实现案例 1.3 对多配置实现案例 1.4 设置自动映射与n张表关联映射 二、MyBatis实现分页功能 2.1 mybatis插件工作原理 2.2 引入插件与插件的使用 三、逆向工程插件 3.1 什么是逆向工程 3.2 MyBat…...
C++基础面试题
一、vector和list的区别 1.1 底层数据结构 vector 使用动态数组作为底层数据结构,元素在内存中是连续存储的; list 使用双向链表作为底层数据结构,元素在内存中通过节点相互连接。 1.2 插入和删除操作 vector 在尾部插入或删除元素效率高&…...
asp.net人事管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
一、源码特点 asp.net 人事管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net 人事管理系统1 应用技术…...
【Docker】Docker中 的AUFS、BTRFS、ZFS、存储池概念的详细讲解
前言 作者简介: 辭七七,目前大二,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&…...
华为云运维小结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、pandas是什么? 一、pandas是什么? HCIP学习笔记-华为云运维方案-9:https://blog.csdn.net/GoNewWay/article/details/13152…...
Firefox 119 正式发布
Firefox 119 已正式发布。新版本除了修复 Bug 之外,还增强了 Firefox View 功能、支持在 PDF 文档中插入图片,以及引入 Encrypted Client Hello (ECH) 以增强隐私保护等。 主要变化 改进 Firefox View:用户可以在该页面查看所有窗口打开的标…...
apachesolr启动带调试
这里solr.cmd报错,报错原因是java版本问题,后面发现这是因为多个java版本导致读取java_home失败, 那么我们修改solr.cmd中的JAVA_HOME为SOLR_JAVA_HOME IF DEFINED SOLR_JAVA_HOME set "JAVA_HOME%SOLR_JAVA_HOME%"环境变量将SOLR…...
【MATLAB】基于灰狼优化算法优化BP神经网络 (GWO-BP)的数据回归预测
文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 【MATLAB】基于灰狼优化算法优化BP神经网络 (GWO-BP)的数据回归预测 在MATLAB中,基于灰狼优化算法优化BP神经网络(GWO-BP)进行数据回归预测的步骤如下: 数据准备:首先,将用于回归预…...
雨水收集设施模块把雨水收集起来,经简单处理用于消防洗车冲厕等
雨水收集设施模块是一种利用雨水资源的环保设施,它可以将雨水收集起来,经过简单的处理后,用于消防、洗车、冲厕等用途。 雨水收集设施模块通常由多个雨水收集器组成,每个收集器都有一个集水口和一个小型储水池。当雨水流入集水口…...
Mac机RVM安装,手动下载安装,经过验证可以正常使用
1、正常方法(不容易成功),我自己就卡了两周(因为墙的问题一直搞不定) 中国境内访问 https://rvm.io 虽然可以访问,但是下载使用会被强,可能有一些翻越的方法,但是不容易搞 2、手…...
人工智能-深度学习之延后初始化
到目前为止,我们忽略了建立网络时需要做的以下这些事情: 我们定义了网络架构,但没有指定输入维度。 我们添加层时没有指定前一层的输出维度。 我们在初始化参数时,甚至没有足够的信息来确定模型应该包含多少参数。 有些读者可…...
Jupyter Notebook交互式开源笔记本工具
1、官网 http://jupyter.org/ 2、什么是Jupyter Notebook Jupyter Notebook一个交互式的开源笔记本工具,可以用于编写、运行、和共享代码、文本、图形等内容。 如下文本、代码、图形 支持多种编程语言,包括python、R和Julia等,可以走一个…...
基于晶体结构算法的无人机航迹规划-附代码
基于晶体结构算法的无人机航迹规划 文章目录 基于晶体结构算法的无人机航迹规划1.晶体结构搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用晶体结构算法来优化无人机航迹规划。 …...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
