【Linux Shell】11. 输入/输出 重定向

文章目录

  • 【 1. 重定向简介 】
  • 【 2. 输出重定向 】
  • 【 3. 输入重定向 】
  • 【 4. Here Document 】
  • 【 5. /dev/null 文件 】

【 1. 重定向简介 】

  • 大多数 UNIX 系统命令从终端接受输入并将所产生的输出发送回​​到原来输入的终端。一个命令通常从标准输入的地方读取输入,默认情况下,这恰好是你的终端,同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
  • 重定向命令列表如下:
命令作用
command > file默认情况下,将 stdout输出 重定向到 file。
command < file默认情况下,将 stdin输入 重定向到 file。
command >> file将输出以追加的方式重定向到 file。
n > file将文件描述符为 n 的文件重定向到 file。
n >> file将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m将输出文件 m 和 n 合并。
n <& m将输入文件 m 和 n 合并。
<< tag将开始标记 tag 和结束标记 tag 之间的内容作为输入。
  • 文件描述符 为 0 通常是标准输入(STDIN),为1 是标准输出(STDOUT),为2 是标准错误输出(STDERR)。一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
    • 标准输入文件(stdin):stdin的文件描述符为0,程序默认从stdin读取数据。
    • 标准输出文件(stdout):stdout 的文件描述符为1,程序默认向stdout输出数据。
    • 标准错误文件(stderr):stderr的文件描述符为2,程序会向stderr流中写入错误信息。
作用语法
stderr 重定向到 filecommand 2>file
这里的 2 和 > 之间不可以有空格,2> 是一体的时候才表示错误输出。
stderr 追加到 file 文件末尾bashcommand 2>>file
将 stdout 和 stderr 合并后重定向到 filebashcommand > file 2>&1
或者
bashcommand >> file 2>&1
对 stdin 和 stdout 都重定向
(command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2)
bashcommand < file1 >file2

【 2. 输出重定向 】

  • 输出重定向的符号 是 大于号>,重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示:
# 执行 command1 然后将输出的内容存入file1,任何 file1内的已经存在的内容将被新内容替代。
# 如果要将新内容添加在文件末尾,需要使用>>操作符。
command1 > file1
  • 实例1:执行 who 命令(显示当前登陆的用户信息),将命令的完整的输出重定向在用户文件中(users)。
who > users

执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件。可以直接打开 test.sh 查看:
在这里插入图片描述
也可以使用 cat 命令查看文件内容:

cat users

在这里插入图片描述

  • 实例2:如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾:。
echo "Promethus" >> test.sh

在这里插入图片描述

【 3. 输入重定向 】

  • 和输出重定向一样,也可以从文件获取输入,这样,本来需要从键盘获取输入的命令会转移到文件读取内容。 输入重定向的符号是小于号< 。语法为:
command1 < file1
  • 同时替换输入和输出,执行command1,从文件infile读取内容,然后将输出写入到outfile中。语法为:
command1 < infile > outfile
  • 实例1:
    wl 命令统计 users 文件的行数,
wc -l test.sh

在这里插入图片描述
      将输入重定向到 test.sh 文件:

wc -l < test.sh

在这里插入图片描述
      第一个会输出文件名;第二个不会,因为它仅仅知道从标准输入读取内容。

【 4. Here Document 】

  • Here Document 是 Shell 中的一种特殊的重定向方式,用来 将输入重定向到一个交互式 Shell 脚本或程序
  • 基本的语法如下:
    • 它的作用是 将两个 delimiter 之间的内容 document 作为输入传递给 command
    • 开始的 delimiter 前后的空格会被忽略掉。结尾的 delimiter 一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 缩进
command << delimiterdocument
delimiter
  • 实例1:通过 wc -l 命令计算 Here Document 的行数。
wc -l << EOF你好!Promethus
EOF

在这里插入图片描述

  • 实例2:将 Here Document 用在脚本中。
#!/bin/bashcat << EOF
你好!
Promethus
EOF

在这里插入图片描述

【 5. /dev/null 文件 】

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/606508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信号的互相关计算及时延估计

1. 信号的互相关计算 互相关反映向量x和移位&#xff08;滞后&#xff09;向量y之间的相似性。 最直观的解释是&#xff1a;互相关的作用是为了找到信号在哪一时刻与另一信号最像&#xff08;另一信号为本身时就是自相关&#xff09;&#xff01; 滑动求互相关&#xff08;图…

海康威视摄像头+服务器+录像机配置校园围墙安全侦测区域入侵侦测+越界侦测

一、适用场景 1、校园内&#xff0c;防止课外时间翻越围墙到校外、从校外翻越围墙到校内&#xff1b; 2、通过服务器摄像头的侦测功能及时抓图保存&#xff0c;为不安全因素提供数字化依据&#xff1b; 3、网络录像机保存监控视频&#xff0c;服务器保存抓拍到的入侵与越界&am…

【React】02-如何理解React通过对DOM的模拟,最大限度地减少与DOM的交互

如何理解React通过对DOM的模拟&#xff0c;最大限度地减少与DOM的交互 背景分析关于虚拟DOM 背景 在学习React的过程中&#xff0c;发现很多文档上关于React的高效都有这么一句话的描述——React通过对DOM的模拟&#xff0c;最大限度地减少与DOM的交互&#xff0c;对于我这种前…

mysql服务多实例运行

1、官网下载mysql安装包 https://downloads.mysql.com/archives/community/ 2、解压安装包 tar -zxvf mysql-8.1.0-linux-glibc2.28-aarch64.tar.xz -C /usr/localmv /usr/local/mysql-8.1.0-linux-glibc2.28-aarch64 /usr/local/mysql 3、创建mysql用户组 groupadd…

Java面试汇总——redis篇

1、什么是缓存穿透 ? 怎么解决 ? 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存就形同虚设&#xff08;只有数据库查到了&#xff0c;才会让redis缓存&#xff0c;但现在的问题是查不到&#xff09;&#xff0c;会频繁的去访问数据库。 解决…

这款Web剪藏工具绝了,支持10+平台内容剪辑同步!

前言 Web Clipper 是一个开源项目&#xff0c;旨在帮助用户轻松地保存和组织网页内容。它可以作为浏览器插件安装到常见的浏览器中&#xff0c;如Chrome、Firefox 等&#xff0c;用户可以使用它来保存网页、截取文章、添加标签和注释等操作&#xff0c;从而方便地管理和分享自…

任务调度中心

可以服务器配置和权限&#xff0c;分配任务执行。当服务器下线后&#xff0c;任务会被在线服务器接管&#xff0c;当重新上线后会在次执行任务。接管任务的服务器会释放任务。调度过程的实现&#xff0c;可以二次开发。基于 netty tcp 通信开发。 下载地址&#xff1a; http:/…

4.4 TILING FOR REDUCED MEMORY TRAFFIC

我们在CUDA中使用设备内存方面有一个内在的权衡&#xff1a;全局内存大但速度慢&#xff0c;而共享内存小但速度快。一个常见的策略是将数据划分为称为tile的子集&#xff0c;以便每个tile都适合共享内存。tile一词”借鉴了一个类比&#xff0c;即大墙&#xff08;即全局内存数…

VSCode搭建 .netcore 开发环境

一、MacOS 笔者笔记本电脑上安装的是macOS High Sierra(10.13)&#xff0c;想要尝试一下新版本的.netcore&#xff0c;之前系统是10.12时&#xff0c;.netcore 3.1刚出来时安装过3.1版本&#xff0c;很久没更新了&#xff0c;最近.net8出来了&#xff0c;想试一下&#xff0c;…

多模态推荐系统综述:四、模型优化

四、模型优化 由于多模态信息的存在&#xff0c;当多模态编码器和推荐模型一起训练时&#xff0c;模型训练的计算要求大大增加。因此&#xff0c;多模态推荐模型在训练过程中可以分为两类&#xff1a;端到端训练和两步训练。 端到端训练可以利用反向传播获得的每个梯度来更新模…

【算法设计与分析】网络流

目录 max-flow 和 min-cut流网络 Flow network最小割 Min-cut最大流 Max-flow Greedy algorithmFord–Fulkerson algorithm剩余网络 Residual networkFord–Fulkerson algorithm算法流程 最大流最小割理论 max-flow min-cut theorem容量扩展算法 capacity-scaling algorithm时间…

【读书笔记】《我的天才女友》

这套书一共有四本&#xff0c;这个是第一本&#xff0c;作者意大利人埃莱娜费兰特&#xff0c;这个只是她的笔名&#xff0c;至今还不知道这位作者是谁&#xff0c;她以每年一本书的速度出了“那不勒斯四部曲”&#xff0c;这四本书以两个女主人公莉拉和莱农的友情为主线。 莉拉…

ElasticSearch 集群搭建与状态监控cerebro

单机的elasticsearch做数据存储&#xff0c;必然面临两个问题:海量数据存储问题、单点故障问题。为了解决存储能力上上限问题就可以用到集群部署。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard)&#xff0c;存储到多个节点单点故障问题:将分片数据在不同节点备份 (r…

力扣题:高精度运算-1.3

力扣题-1.3 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;43. 字符串相乘 解题思想&#xff1a;类似计算时采用的竖式乘法。首先取得num2的低位&#xff0c;并补齐对应的0&#xff0c;然后与num1进行相乘&#xff0c;然后进行字符串的相加操作。…

腾讯云com域名注册1元条件说明

腾讯云com域名注册优惠价格1元首年&#xff0c;条件是企业新用户&#xff0c;个人新用户注册com域名是33元首年&#xff0c;第二年续费价格85元一年。活动 txybk.com/go/domain-sales 活动打开如下图&#xff1a; 腾讯云com域名注册优惠价格 腾讯云com域名注册原价是85元一年&a…

数据结构—图(下)

文章目录 12.图(下)(4).生成树和最小生成树#1.什么是生成树和最小生成树&#xff1f;i.生成树ii.最小生成树 #2.Prim算法i.算法思想ii.看看例子iii.代码实现 #3.Kruskal算法i.算法思想ii.看看例子iii.代码实现 #4.次小生成树 (5).最短路径问题#1.加权有向图的最短路径问题#2.单…

【QML COOK】- 002-添加一个图片

1. 编辑main.qml import QtQuickWindow {width: 800height: 800visible: truetitle: qsTr("Hello World")Image {anchors.fill: parentsource: "qrc:/Resources/Images/arrow.png"} }将Window的width和height都改成800&#xff0c;因为我们要添加的图片大…

x-cmd pkg | you-get - web 媒体内容下载工具

目录 简介首次用户功能特点竞品和相关作品进一步阅读 简介 You-Get 是一个开源的命令行小型下载工具&#xff0c;用于从各种网站下载视频、音频和其他媒体文件。 它可以解析和下载嵌套在网页中的媒体&#xff0c;能从 YouTube、优酷、Niconico 、bilibili 等热门网站下载视频、…

用RASP五步轻松保护云端无服务器架构

近年来无服务器架构发展势头正猛&#xff0c;预计未来十年将增长近25%。据称&#xff0c;2022年无服务器架构市场的规模超过了90亿美元&#xff0c;年复合增长率预计将增加。到2032年&#xff0c;市场规模可能超过900亿美元。 这表明&#xff0c;在组织日益采用DevOps的影响下&…

Nvidia Jetson AGX Orin使用CAN与底盘通信(ROS C++ 驱动)

文章目录 一、Nvidia Jetson AGX Orin使用CAN通信1.1 CAN使能配置修改GPIO口功能1.2 can收发测试 二、通过CAN协议编写CAN的SocketCan ROS1驱动程序2.1 通讯协议2.2 接收数据节点2.3 发送数据节点2.4 功能包配置 三、ROS2驱动程序 一、Nvidia Jetson AGX Orin使用CAN通信 参考…