Linux Shell基础 Shell的输入重定向和输出重定向
概述
在 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的输入重定向和输出重定向的更多相关文章
- [转]linux shell数据重定向(输入重定向与输出重定向)详细分析
在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件 ...
- Linux学习笔记(十)shell基础:历史命令、命令补全、输出重定向、输出重定向
一.历史命令 history [选项] [历史命令保存文件] -c 清空历史命令 -w 吧缓存中的历史命令写入历史命令保存文件~/.bash_history中 系统会默认将上次注销登录(正确退出)之前 ...
- linux(02)基础shell命令
Linux(02)之shell命令 一,Linux命令行的组成结构 在我们的linux启动,登陆成功之后会显示: 这就是linux的命令行的组成结构 二,常见命令 1,Linux系统命令操作语法格式 ...
- linux基础进阶命令详解(输出重定向(2>&1,1>&2,&>file)、输入重定向、管道符、通配符、三种引号、软连接、硬链接、根“/”、绝对路径vs相对路径)
本章命令(共9个): 1 2 3 4 5 6 7 8 9 输出重定向 输入重定向 管道符 通配符 三种引号 软连接 硬链接 根"/" 绝对路径vs相对路径 1.输出重定向 作用:一 ...
- 【Linux学习】nohup后台运行程序以及输出重定向
Linux有两种命令使程序后台运行 第一种:支持后台运行,但是关闭终端的话,程序也会停止 command & 第二种:支持后台运行,关闭终端后,程序也会继续运行 nohup command & ...
- linux shell数据重定向(输入重定向与输出重定向)详细分析
linux shell下常用输入输出操作符是: 1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << : /dev/stdin -> /proc/self/fd/ ...
- Linux Shell基础 Shell基本知识
概述 在 Linux 的脚本中,只要是基于 Bash语法写的Shell脚本第一行必须是"#!/bin/bash",用来声明此文件是一个脚本. 运行方式 Shell 脚本的运行主要有 ...
- shell基础--shell特殊变量
一.变量列表 二.实验 系统:centos 7 1.特殊变量 [root@~_~ day2]# cat p.sh #!/bin/bashecho '$0:'$0echo '$*:'$*echo '$@ ...
- Mybatis框架基础入门(五)--输入映射和输出映射
1.parameterType(输入类型) 1.1 传递简单类型 使用#{}占位符,或者${}进行sql拼接. <select id="caseCountByQueryCaseVo&q ...
随机推荐
- uboot下tftp传输文件
uboot下通过tftp工具传输文件,tftp与ftp是完全不同的工具或协议. 1) 下载并安装程序 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是 ...
- Elasticsearch5.X IN Windows 10 系列文章(4)
ElasticSearch版本: 5.5.1 (最新稳定版为5.5.2),由于用到IK中文分词插件,最新版本没有5.5.2 ,所以使用5.5.1 日期:2017-08-30 第四章:安装 Search ...
- 依赖Spring的情况下,Java Web项目如何在启动时加载数据库中的数据?
原文:https://blog.csdn.net/u012345283/article/details/39558537 原文:https://blog.csdn.net/wandrong/artic ...
- makefile编写---单个子目录编译自动变量模板ok
1.自动化变量通配符http://blog.sina.com.cn/s/blog_7c95e5850101b38l.html 2.wildcard 使用http://blog.csdn.net/lia ...
- tomcat访问日志分析
常使用web服务器的朋友大都了解,一般的web server有两部分日志: 一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,它记录的访问的时间,IP,访问的资 ...
- 合并子目录(hash)
题目2 : 合并子目录 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的电脑的文件系统中一共有N个文件,例如: /hihocoder/offer22/soluti ...
- SharePoint服务器端对象模型 之 访问文件和文件夹(Part 2)
4.添加文件夹 文件夹的创建方法在文档库和普通列表中稍有不同. 在文档库中,与一般的集合操作相同,直接使用SPFolderCollection的Add(string name)方法即可添加文件夹,例如 ...
- DataTable数据导出到Excel,并发送到客户端进行下载
本代码实现思路是:页面显示和导出分开,导出的数据和用于页面显示的是同一查询数据方式,所以也是同样的数据,只是在导出数据时从数据库重新捞了一次数据.此导出数据方式会先将数据保存到Excel中,然后将创建 ...
- PSSH 批量管理服务器
pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问. 1. ...
- SSL逐渐演变到TLS
w https://zh.wikipedia.org/wiki/超文本传输安全协议