linux tee 重定向_快乐的linux命令行-重定向
整理自《快乐的linux命令行一书》。
linux系统版本: Ubuntu 17.04
本章,我们将介绍命令行最酷的特性,叫做I/O重定向,通过这个工具,可以重定向命令的输入输出,命令的输入来自文件,而输出也存到文。也可以把多个命令连接起来组成一个强大而命令管道。我们将介绍以下命令:
cat:连接文件
sort : 排序文本行
uniq : 报到或省略重复行
grep : 打印匹配行
wc : 打印文件中的换行符,字和字节个数
head : 输出文件第一部分
tail : 输出文件最后一部分
1、标准输入、输出和错误
程序,比方说ls,实际上把他们的运行结果输送到一个叫做标准输出(stdout)的特殊文件,而他们的状态信息则送到另一个叫做标准错误的文件(stderr)。默认情况下,标准输出和标准错误都连接到屏幕,而不是保存到磁盘文件。除此之外,许多程序从一个叫做标准输入(stdin)的设备得到输入,默认情况下,标准输入连接到键盘。
2、重定向标准输出
重定向标准输出到另一个文件除了屏幕,我们使用“>”重定向符,其后跟文件名,例如:
重定向输出.png
我们将ls的输出重定向到ls-output.txt文件中。现在 ,我们把目录换成一个不存在的目录:
重定向2.png
可以看到,我们输出了一个错误信息,这条错误信息没有重定向到文件中而是输出到了屏幕上,因为“>”只是重定向了标准输出,而没有重定向标准错误,所以错误出现在了屏幕上,但此时我们的文件已经变了:
重定向3.png
可以发现文件大小变为了0.因为使用“>”重定向符重定向输出结果时,目标文件总是从开头被重写。所以导致文件内容删除,那么我们怎么能把重定向结果追加到文件内容后面呢,使用“>>”重定向符:
重定向4.png
可以看到,即使出现错误,我们的文件大小仍然没有变为0.
3、重定向标准错误
我们使用如下的方式重定向标准错误:
重定向错误.png
可以看到,我们的错误被写入了文件:
重定向错误.png
4、重定向标准输出和错误到同一个文件
如果说2代表标准错误,那么我们可以用1代表标准输出,比如:
重定向5.png
如果我们希望捕捉一个命令的所有输出到一个文件,即同时重定向标准输出和标准错误,有两种方法来完成任务,首先是传统的方法:
重定向5.png
我们在最后添加了2>&1参数,根据大小文件大小可以看出,输出和错误都被重定向到ls-output.txt文件中了。
第二种方法更加精简:
重定向输出和错误2.png
5、处理不需要的输出
有时候我们不想要一个命令的输出结果,我们只想把它扔掉,我们只需要重定向输出结果到一个特殊的叫做“dev/null”的文件。这个文件是系统设备,叫做位存储桶,它可以接受输入,并且对输入不做任何处理:
处理不需要的输出.png
6、cat --连接文件
cat命令读取一个或多个文件,然后复制他们到标准输出:
cat命令1.png
cat还可以用来连接文件,比如我们下载了一个大型文件,这个文件被分为好多部分,我们想把他们连接起来,用如下的命令:
cat连接文件.png
如果cat命令没有接受任何参数,它会从标准输入读入数据,而标准输入默认是键盘,所以它会等待我们输入数据:
cat命令2.png
使用快捷键ctrl+d结束我们的输入,由于没有重定向输出,所以它会将原话输出到屏幕上,如下图:
cat输出.png
我们也可以将cat接受的输入重定向到文件中,并用cat查看:
cat输出2.png
7、管道线
命令可以从标准输入读取数据,然后再把数据送到标准输出,命令的这种能力被一个shell特性所利用,这个特性叫做管道线,一个命令的标准输出可以管道到另一个命令的标准输入:
command1 | command2
比如我们将ls的的输出结果当做标准输入输送到less命令:
管道线1.png
8、过滤器
管道线经常用来对数据完成复杂的操作,有可能会把几个命令放在一起组成管道线。通常,以这种方式使用的命令称为过滤器。过滤器接受输入,以某种方式改变它,然后输出它。比如sort过滤器,把目录/bin和/usr/bin中的可执行程序联合在一起,再把它们排序:
过滤器.png
另一个过滤器是uniq,可以报道或者忽略重复行,默认情况下,从数据列表中删除任何重复行,如果我们想得到重复的数据列,在uniq命令上加上“-d ”选项:
uniq.png
9、wc--打印行、字和字节数
wc命令用来显示文件所包含的行,字和字节数:
wc命令1.png
10、打印匹配行
grep是个很强大的程序,用来找到文件中的匹配文本。这样使用grep命令:
grep pattern [file...]
这里的pattern指匹配模式,grep能够匹配的模式很复杂, 可以是正则表达式,不过这里只展示一个基本的文本匹配,找到文件名中包含zip的所有文件:
grep.png
11、head/tail 打印文件的开头结尾
head命令默认打印文件的前10行,也可以用-n指定打印的行数
而tail命令默认打印文件的后10行,也可以用-n指定打印的行数
head-tail.png
12、tee命令
linux提供了一个tee命令,允许我们保存管道线中的中间结果,并且使数据继续顺着管道线流动:
tee.png
上面的命令使我们在进行grep匹配之前,首先将中间结果,即ls的结果保存到ls.txt中。
如果你喜欢我写的文章,可以帮忙给小编点个赞或者加个关注,我一定会互粉的!
如果大家对linux感兴趣,欢迎跟小编进行交流,小编微信为sxw2251,加我要写好备注哟!
我的微信
linux tee 重定向_快乐的linux命令行-重定向相关推荐
- linux 垃圾桶命令,linux下的一些好用的命令行
linux下的一些好用的命令行 添加环境变量 Linux 中需要将 libjakaAPI.so 和 jkrc.so 放在同一个文件夹下,并添加当前文件夹路径到环境变量, 使用命令 export LD_ ...
- linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...
Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...
- Linux 下五个顶级的开源命令行 Shell
这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...
- 快乐的shell命令行
快乐的shell命令行 PART1--基础 1.权限 #超级用户权限 $普通用户 2.复制粘贴 复制:鼠标左键沿着文本拖动高亮的文本被复制到X管理的缓冲区(或者双击一个单词) 粘贴:鼠标中键 3.简单 ...
- Linux学习记录-----《快乐的Linux命令行》.
之前自学python的时候一直用的Win7,没想过,也有点怕使用Linux,可能人对未知的东西都有点恐惧,但是,但是,学了4个多月,退无可退了,不管是网站的部署,还是基于后端工作的需求,Linux的学 ...
- linux apache设置web访问重定向_从零开始学Linux运维|30.Linux的目录结构
1.tree命令 linux下目录结构跟一个倒过来的树一样的,最顶层就是根目录 / tree这个命令就很形象 它够很方便的查看目录结构 使用"yum install tree -y" ...
- linux tee 日志输出_25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?...
众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的.这样不但操作起来效率比较高,而且界面也比较炫酷.下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器. 1. exa ...
- linux混合命令_十多个命令行混合
这是"口语UNIX"系列的第十三期:我想这是一个不祥的数字,直到我在Internet上扫描了该数字的危害性来源. 事实证明,十三个方面的"好"和"坏& ...
- linux npm安装_怎样在Linux上开发vue项目
怎样在Linux上开发vue项目 一.开发环境搭建:安装node.js环境以及vue cli工具 (1)安装node.js 从官网下载对应的二进制压缩包,如下图: 解压到程序安装目录 xz -d no ...
最新文章
- opencv4 c++ 提取图片中的白色区域_修正!【从零学习OpenCV 4】分割图像——分水岭法...
- linux线程堆分配,如何在Linux中的相同进程下为线程分配堆栈或内存
- 常考数据结构与算法:实现二叉树先序,中序和后序遍历
- linux 路径名长度限制,linux下 如何修改命令行提示符路径提示符路径长度
- 计算机换用户无法启动软件,Windows无法启动. 原因可能是最近更改了硬件或软件故障的处理方法...
- php loading效果,利用CSS3打造十种Loading效果
- leetcode刷题之树(1)
- Codeforces Round FF(Div. 2)
- JavaScript-基础入门.0014.JavaScript内置对象
- js:插入节点appendChild insertBefore使用方法
- 【java】Java内省Introspector
- 风控贷中环节应该监控哪些风险指标
- php面试题 mysql 主从_php面试题之五——MySQL数据库(基础部分)
- 第十五章 第十五章 异步A3C(Asynchronous Advantage Actor-Critic,A3C)-强化学习理论学习与代码实现(强化学习导论第二版)
- 七年级上册数学计算机教学视频,人教版初中数学七年级上册
- C++:vector的初始化(5种)
- 古龙奇侠传java6_华人最著名的20位武侠小说家,梁羽生排不进前6,古龙屈居第5...
- 等保2.0:这些等保测评要求,你都知道吗?
- Linux预处理功能,ZABBIX4.2预处理新功能---数据节流THROTTLING
- 教你如何用Python部署QQ频道机器人
热门文章
- oracle 自动表分析,Oracle自动分析索引,表
- java替换list中元素,Java 实例 - List 元素替换
- CSS3 pointer-events的应用
- macbook不能进系统 备份数据_不基于备份和表,生产系统数据误删就能完全恢复?!...
- cat命令详解_好程序员Python培训之详解eval好与坏
- can通讯bdc_宝马总线K-CAN3和K-CAN4常见案例
- hssfcolor 不建议使用_不建议使用微信双开的真正原因!
- linux新的API signalfd、timerfd、eventfd使用说明——eventfd
- html中怎么写jq,用jQuery替换HTML页面中的文本
- Mapgis图转换为可导入软件的shp