重定向即指:将数据传送输出到别的地方,如设备、文件等等。那就涉及到将什么数据传送到什么地方的问题。

在linux中命令执行的起源和结果说起,看下图:

Standard input和Standard error都会输出到屏幕上,这样会将屏幕搞的非常混乱,且又是输出内容过多也不易于阅读。甚至有时候的输出内容非常重要需要保存,这是该怎么办??

答案是:数据重定向,将输出内容导入到别的地方。

linux中数据重定向的特殊符号:

  • 标准输入:代码为0,使用<或者<<
  • 标准输出:代码为1,使用1>或者1>>,也可以使用默认表示>或者>>
  • 标准错误输出:代码为2,使用2>或者2>>

>和>>的区别在于,输出内容重导向目的地的方式不一样:

>:以覆盖目的地原有数据的方式重导向

>>:以追加的方式重导向

ls /etc > list

如以上的将列出etc目录下的文件将其写入list文件。

  1. 如果list文件不存在则创建
  2. 清除list文件内容
  3. 将ls的标准输出写入list中

如果不清空list,则以追加的方式写入,使用>>

1.只需要正确的数据

使用/dev/null垃圾桶

#将find的结果中错误的输出丢弃,只显示正确的结果。避免错误数据的干扰
find /home -name .bashrc 2> /dev/null

2.既需要正确的输出又需求错误的输出数据

find /home -name .bashrc > list 2>&1
find /home -name .bashrc &> list

以上将标准输出和标准错误都写入list

3.标准输入<和<<的使用

既然使用<,肯定需要输入的来源。 < file的方式,可以将file的内容作为标准输入。

cat > back <~/.bashrc

以上同时利用 > 和 <(输入和输出重导向)备份.bashrc文件。

cat > list

以上命令将会将屏幕输入(标准输入)作为输出重导向文件list,然后使用ctrl+d退出。但是可以如下写法:

cat > list << "eof"

这样只要屏幕上输入"eof"即可退出。<<代表结束输入。

Linux中的数据重定向的更多相关文章

  1. 每天学点Linux命令之Linux-Shell中的数据重定向与管道命令

    在Linux shell中, 数据重定向使用 > < 符号,管道命令使用 | 符号链接前后两个命令. 具体区别如下: 数据重定向 1.(>): 左侧应该有标准输出 > 右侧只能 ...

  2. Linux日常之数据重定向

    Linux在启动后,会默认打开3个文件操作符,分别是 (1)标准输入0,standard input (2)正确输出1,standard output (3)错误输出2,standard error ...

  3. linux中输入输出和重定向问题

    输入输出解释 当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件.但这些文件不容易记忆,所以shell给了相应的文件名: 0:输入文件-标准输入(它的命令是输 ...

  4. Linux中的输入重定向,变量

    1 :分号 格式:命令1:命令2;命令3 说明:命令之间用分号隔开是顺序执行,命令之间没有任何逻辑关系 2  &&  逻辑与 格式:命令1 && 命令2 说明:命令1正 ...

  5. Linux中的输出重定向

    标准输入输出: 键盘        /dev/stdin        0       标准输入 显示器    /dev/stdout      1       标准输出 显示器    /dev/st ...

  6. 关于 linux中TCP数据包(SKB)序列号的小笔记

    关于  SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq  一直没有找到seq 不清楚在那里初始化了,就 ...

  7. Linux中的错误重定向你真的懂吗

    在很多定时任务里.shell里我们往往能看到 "2>&1",却不知道这背后的原理. 举个例子: * 1 * * * test.sh > /dev/null 2& ...

  8. linux中nginx重定向方法总结

    linux中nginx 301重定向跳转方法总结 第一种情况:访问aaaaaaa站定向到bbbbbbbbbbb站 复制代码代码如下: server { server_naaaaaaame www.aa ...

  9. [转]linux shell数据重定向(输入重定向与输出重定向)详细分析

      在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件 ...

随机推荐

  1. ECharts学习指南

    1.了解ECharts ECharts简单说就是互联网开发程序过程中,后台数据库用以实现数据到图形的映射的一个插件. 具体来说一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在PC和 ...

  2. 大数据技术原理与应用【第五讲】NoSQL数据库:5.6 文档数据库MongoDB

    文档数据库介于关系数据库和NoSql之间: 是最像关系数据库的一款产品,也是当前最热门的一款产品. 1.MongoDB简介:   1)     2)文档类型BSON(Binary JSON),结构类似 ...

  3. PacMan 03——追踪玩家

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  4. 51nod 1594 Gcd and Phi(莫比乌斯反演)

    题目链接 传送门 思路 如果这题是这样的: \[ F(n)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\phi(gcd(i,j)) \] 那么我们可能会想到下 ...

  5. VUE-X 的传值使用

    1.导入vuex   vuex是基于vue 的 import Vuex from 'vuex' Vue.use(Vuex); 导入 2.创建store 实例 let store = new Vuex. ...

  6. Java多线程编程核心技术-第2章-对象及变量的并发访问-读书笔记

    第 2 章 对象及变量的并发访问 本章主要内容 synchronized 对象监视器为 Object 时的使用. synchronized 对象监视器为 Class 时的使用. 非线程安全是如何出现的 ...

  7. docker 搭建自己的仓库

    1.下载registry镜像 docker pull registry 2.查看端口信息 netstat -ntlp 3.启动registry镜像 docker run -d -p 5000:5000 ...

  8. 23-C#笔记-正则表达式

    等用的时候,可以现查. 参考: http://www.runoob.com/csharp/csharp-regular-expressions.html

  9. stm32的flash操作注意事项

    从STM32编程手册中,可以知道:在进行写或擦除操作时,不能进行代码或数据的读取操作. 比如:你在写Flash期间有接收串口数据,很有可能会丢串口数据. 因为比较耗时,所以,在写数据时,CPU不会执行 ...

  10. pointnet++论文的翻译

    参考: https://blog.csdn.net/weixin_40664094/article/details/83902950 https://blog.csdn.net/pikachu_777 ...