概述

在 Linux 中输入设备指的是键盘,输出设备指的是显示器。
在 Linux 中,所有的内容都是文件,计算机硬件也是文件,标准输入设备(键盘)和标准输出设备(显示器)也是文件。这些设备的设备文件名如下表所示。

设 备 设备文件名 文件描述符 类 型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

Linux 是使用设备文件名来表示硬件的(比如 /dev/sda1 就代表第一块 SATA 硬盘的第一个主分区),使用"0"、"1"、"2"来分别代表标准输入、标准输出和标准错误输出。

输出重定向是指将命令的结果不再输出到屏幕上,而是输出到文件中;输入重定向则是指不再使用键盘作为输入设备,而是把文件的内容作为命令的输入。

输出重定向

输出重定向是指将命令的结果不再输出到屏幕上,而是输出到文件中。在输出重定向中,">"代表的是覆盖,">>"代表的是追加,Bash 中支持的输出重定向符号如表所示。

类 型 符 号 作 用
标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备中
命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备中
标准错误输出重定向 错误命令 2> 文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备中
错误命令 2>> 文件 以追加的方式,把命令的错误输出输出到指定的文件或设备中
正确输出和错误输出同时保存 命令 > 文件2>&1 以捜盖的方式,把正确输出和错误输出都保存到同一个文件中
命令 >> 文件2>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件中
命令&>文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件中
命令&>>文件 以追加的方式,把正确输出和错误输出都保存到同一个文件中
命令>>文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中

标准输出重定向

ls命令的输出并没有显示到屏幕上,而是输出到了out.log文件中,">" 表示以覆盖的方式输出文件中。

[root@localhost ~]# ls -l > out.log

把date命令的输出追加到outlog文件中,">>" 表示以追加的方式输出文件中。

[root@localhost ~]# date >> out.log 

标准错误输出重定向

错误输出重定向,错误输出没有输出到屏幕上,而是写入了err.log文件中。注意"2>>"一定不能有空格。

[root@localhost ~]# ls test >> err.log

正确输出和错误输出同时保存

在把正确输出和错误输出都保存下来的方法有两种:

[root@localhost ~]# ls >> out.log >&
[root@localhost ~]# ls test &>>out.log

把正确输出和错误输出分开保存到不同的文件中,正确输出会写入文件 list.log 中,而错误输出则会写入 err.log 文件中。命令如下:

[root@localhost ~]# ls >>list.log >>err.log

命令结果不输出到屏幕也不保存到文件中

命令结果不输出到屏幕也不保存到文件中,就可以把命令的所有执行结果放入 /dev/null 中。 命令如下:

[root@localhost ~]# ls &>/dev/null

输入重定向

输入重定向是改变输入的方向,不再使用键盘作为命令的输入,而是使用文件作为命令的输入。以 wc 命令为例,命令格式如下:

[root@localhost ~]#wc [选项] [文件名]

选项:

  • -c:统计字节数;
  • -w:统计单词数;
  • -l:统计行数;

wc 命令可以统计我们通过键盘输入的数据。如果使用输入重定向符"<",则可以统计文件的内容。命令如下:

[root@localhost ~]# wc < anaconda-ks.cfg

Linux Shell基础 Shell的输入重定向和输出重定向的更多相关文章

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

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

  2. Linux学习笔记(十)shell基础:历史命令、命令补全、输出重定向、输出重定向

    一.历史命令 history [选项] [历史命令保存文件] -c 清空历史命令 -w 吧缓存中的历史命令写入历史命令保存文件~/.bash_history中 系统会默认将上次注销登录(正确退出)之前 ...

  3. linux(02)基础shell命令

    Linux(02)之shell命令 一,Linux命令行的组成结构 在我们的linux启动,登陆成功之后会显示: 这就是linux的命令行的组成结构 二,常见命令 1,Linux系统命令操作语法格式 ...

  4. linux基础进阶命令详解(输出重定向(2>&1,1>&2,&>file)、输入重定向、管道符、通配符、三种引号、软连接、硬链接、根“/”、绝对路径vs相对路径)

    本章命令(共9个): 1 2 3 4 5 6 7 8 9 输出重定向 输入重定向 管道符 通配符 三种引号 软连接 硬链接 根"/" 绝对路径vs相对路径 1.输出重定向 作用:一 ...

  5. 【Linux学习】nohup后台运行程序以及输出重定向

    Linux有两种命令使程序后台运行 第一种:支持后台运行,但是关闭终端的话,程序也会停止 command & 第二种:支持后台运行,关闭终端后,程序也会继续运行 nohup command & ...

  6. linux shell数据重定向(输入重定向与输出重定向)详细分析

    linux shell下常用输入输出操作符是: 1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << : /dev/stdin -> /proc/self/fd/ ...

  7. Linux Shell基础 Shell基本知识

    概述 在 Linux 的脚本中,只要是基于 Bash语法写的Shell脚本第一行必须是"#!/bin/bash",用来声明此文件是一个脚本. 运行方式 Shell 脚本的运行主要有 ...

  8. shell基础--shell特殊变量

    一.变量列表 二.实验 系统:centos 7 1.特殊变量 [root@~_~ day2]# cat p.sh #!/bin/bashecho '$0:'$0echo '$*:'$*echo '$@ ...

  9. Mybatis框架基础入门(五)--输入映射和输出映射

    1.parameterType(输入类型) 1.1 传递简单类型 使用#{}占位符,或者${}进行sql拼接. <select id="caseCountByQueryCaseVo&q ...

随机推荐

  1. 【ASP.NET】——AdRotator控件

    AdRotator控件即广告控件. 广告,是站点不可缺少的一部分.也是站点获取收益的最主要途径,但最初制作广告非常麻烦.asp.net就将该方法封装成了一个控件.为我们节省了非常多时间.这也是ASP. ...

  2. Linux Linux程序练习四

    编写两个不同的可执行程序,名称分别为a和b,b为a的子进程. 在a程序中调用open函数打开a.txt文件. 在b程序不可以调用open或者fopen,只允许调用read函数来实现读取a.txt文件. ...

  3. Hibernate一对多映射列表实例(使用xml文件)

    如果持久化类具有包含实体引用的列表(List)对象,则需要使用一对多关联来映射列表元素. 在这里,我们使用论坛应用场景,在论坛中一个问题有多个答案. 在这种情况下,一个问题可以有多个答案,每个答案可能 ...

  4. SourceInsight 不断无响应的有关问题

    SourceInsight 不断无响应的问题 sourceinsight3使用过程中,如果是大工程,总是出现抽筋的现象,CPU使用.内存占用都很高,阅读android源码不断出现无响应.后发现主要是因 ...

  5. Android Otto框架浅析

    今天要介绍的是一个Android中使用得比較多的android 事件总线 EventBus模式的一个框架Otto. Otto 官网:http://square.github.io/otto/ 一.An ...

  6. asp.net 定时间点执行任务的简易解决办法

    这里的定时间点执行任务,指的是每天的某个时间执行一项任务. 比如每天凌晨七点的时候email发送一次报表. 这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容. ...

  7. 第一章----python简介

    1.python简介 定义:python是一种计算机程序设计语言,是一种相当高级的语言,是用来编写应用程序的高级编程语言: 特点:优势:简单易用:提供了非常完善的基础代码库:优雅,明确,简单.劣势 : ...

  8. R-ArcGIS探秘(1)安装以及Sample执行

    在今年的全球用户大会上,Esri官方发布了R-ArcGIS的官方演示样例,在ArcMap和ArcGIS pro中,直接通过Toolbox能够调用R的分析工具包,将R的分析能力直接作用在ArcGIS上面 ...

  9. javascript获取客户端默认打印机

    JS <script language="javascript"> function startRequest() { var oShell = new ActiveX ...

  10. Keywords Search(AC自动机模板)

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...