Linux系列之重定向操作
前言
I/O重定向允许我们将命令的输入和输出重定向到文件中,以及将多个命令连接到一起成为管道。本文就来介绍有关重定向的知识。
标准输入、输出、错误
输出包括两种类型:
- 程序的结果。被称为标准输出或者
stdout。 - 状态以及错误信息。被称为标准错误或者
stderr。
除此之外,一些程序从标准输入stdin中获取输入。默认情况下,标准输入与键盘相连接。
默认情况下,stdout和stderr 都被链接到屏幕上,而不是保存到文件中。重定向允许我们改变输出的去向和输入的来源。
重定向标准输出
为了重定向到其他文件而不是屏幕上,我们使用>重定向操作符,后面跟随文件的名称。
举例来说,我们可以使用重定向操作符来告诉shell,发送ls命令的输出到ls-output.txt文件中,而不是屏幕上。
ls -l /usr/bin > ls-output.txt
我们可以看到,ls命令的输出没有发送到屏幕上,而是发送ls-output.txt到文件中。
需要注意的是,使用>重定向操作符会覆盖目标文件。如果要追加内容,我们可以使用>>重定向操作符。
重定向标准错误
为了重定向stderr,我们必须引用其文件描述符。shell将stdout、stdin和stderr分别作为文件描述符0、1和2的内部引用。我们可以用这个符号重定向stderr。
ls -l /bin/usr 2> ls-error.txt
重定向到同一文件
重定向标准输出和标准错误到同一文件中,共有两种方式可以实现。首先让我们使用传统方法,它适用于老版本的shell :
ls -l /bin/usr > ls-output.txt 2>&1
首先,我们将stdout重定向到ls-output.txt文件,然后用2>&1的符号将文件描述符2 stderr重定向到文件描述符1 stdout 中。
需要注意重定向的顺序,重定向stderr必须总是在重定向stdout之后发生。
最近版本的bash提供了第二种方法,该方法让执行这种组合重定向更精简。
ls -l /bin/usr &> ls-output.txt
你仍然可以使用>>进行追加操作。
处理不需要的输出
系统提供了一种方法,可以将输出重定向到一个叫做/dev/null的特殊文件,该文件通常被称为比特桶(bit bucket)。它接受输入,但不做任何处理。
ls -l /bin/usr 2> /dev/null
重定向标准输入
还有< 重定向操作符,我们可以将stdin的来源从键盘改为文件。
cat < sample.txt
管道
使用管道操作符| ,一个命令的stout可以通过管道进入另一个命令的stdin,less就是一个例子:
ls -l /usr/bin | less
可以把几个命令放在一起,组成一个流水线。使用这种方式的命令被称为过滤器。过滤器接受输入,以某种方式改变它,然后输出它。
tee命令
tee命令读取stdin并将其复制到stdout和一个或多个文件中。
ls /usr/bin | tee ls.txt | grep zip
Linux系列之重定向操作的更多相关文章
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- 跟着鸟哥学Linux系列笔记2-第10章VIM学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...
- 跟着鸟哥学Linux系列笔记0-如何解决问题
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1. 在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...
- 跟着鸟哥学Linux系列笔记1
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...
- 学习Linux系列--安装Ubuntu
最近学习Linux,使用虚拟机太不方便,于是购买了阿里云最便宜的云主机作为学习设备. 本系列文章记录了个人学习过程的点点滴滴. 学习Linux系列--安装Ubuntu 学习Linux系列--安装软件环 ...
- kali linux 系列教程之metasploit 连接postgresql可能遇见的问题
kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂 目录 kali linux 下metasploit 连接postgresql可能遇见的问题. ...
- kali Linux系列教程之BeFF安装与集成Metasploit
kali Linux系列教程之BeFF安装与集成Metasploit 文/玄魂 kali Linux系列教程之BeFF安装与集成Metasploit 1.1 apt-get安装方式 1.2 启动 1. ...
- kali linux系列之启用vpn
kali linux系列之启用vpn 文/玄魂 默认情况下,kali linux的vpn选项是不可用的. 下面是安装openvpn的方法,同样的,可以安装其他类型的vpn. 打开终端输入命令: Apt ...
- Kali linux系列之 zmap 安装
Kali linux系列之 zmap 安装 官方文档地址:https://zmap.io/ 准备:保证有比较顺畅的更新源,可以更新系统,下载安装包. 安装 第一步:sudo apt-get insta ...
随机推荐
- 113_Power Pivot 销售订单之重复购买率及购买间隔天数相关
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 1.背景 在论坛中看到朋友在提复购率(重复购买率)等相关问题,今天把结果贴出来. 问题原贴:计算订单中的老顾客复购率 感谢 ...
- MongoDB启动报错:Unrecognized option: storage try 'mongod --help' for more information(已解决)
问题说明: 今天在使用配置文件方式启动MongoDB时,一直启动失败,报错显示:Unrecognized option: storage try 'mongod --help' for more in ...
- Golang可重入锁的实现
Golang可重入锁的实现 项目中遇到了可重入锁的需求和实现,具体记录下. 什么是可重入锁 我们平时说的分布式锁,一般指的是在不同服务器上的多个线程中,只有一个线程能抢到一个锁,从而执行一个任务.而我 ...
- Java开发学习(一)----初识Spring及其核心概念
一. Spring系统架构 1.1 系统架构图 Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基. Spring Framework的发展也经历了很多版本的变更,每 ...
- 《Mybatis 手撸专栏》第10章:使用策略模式,调用参数处理器
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你这代码写的,咋这么轴呢! 说到轴,让我想起初中上学时老师说的话:"你那脑 ...
- CA证书介绍与格式转换
CA证书介绍与格式转换 概念 PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Sec ...
- Spring Ioc源码分析系列--Bean实例化过程(二)
Spring Ioc源码分析系列--Bean实例化过程(二) 前言 上篇文章Spring Ioc源码分析系列--Bean实例化过程(一)简单分析了getBean()方法,还记得分析了什么吗?不记得了才 ...
- XSS防跨站脚本攻击-AntiSamy的基本使用
XSS:跨站脚本攻击(Cross Site Scripting),为不和 CSS混淆,故将跨站脚本攻击缩写为XSS.XSS是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页时,嵌入其 ...
- 【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate('oauth-bearer', {session: false})
问题描述 在前两篇博文中,对NodeJS Express应用 使用MSAL + AAD实现用户登录并获取用户信息,获取Authorization信息 ( ID Token, Access Token) ...
- VMware Workstation 虚拟机安装教程
一.介绍篇 VMware Workstation 16 Pro是VMware(威睿公司)于2021年最新发布的一代虚拟机软件,软件的中文名是"VMware 工作站 16 专业版". ...