---
author: Nenad Latinović
category: 技术
comments_data: []
count:
  commentnum: 0
  favtimes: 2
  likes: 0
  sharetimes: 0
  viewnum: 4928
date: '2014-08-05 08:00:00'
editorchoice: false
excerpt: 不管怎样，让我们继续我们今天的日程吧：输入/输出重定向。 我们已经用过的大多数命令，都把他们的结果张贴到了终端显示中。然而，我们也可以让这些命令的显示放进一个文件、设备中，或者作为其它命令的输入，一切都在重定向。
  标准输出 那么，命令行程序主要是怎么工作的呢？它们会将命令的结果丢给一个叫做标准输出的设备，然后，标准输出会将这些结果发送到你的显示设备上，这样你就可以畅快地阅读这些信息了。然而，你也可以让命令的结果显示到一个文本文件中，像这样，用字符（我的例子）：
  man zypper  man.txt  这儿我所干的是，
fromurl: https://news.opensuse.org/2014/07/30/command-line-somedays-part-six/
id: 3522
islctt: true
largepic: /images/p/201408/03/100718ttvutwqwsuezotlq.png
permalink: /article-3522-1.html
pic: /images/p/201408/03/100718ttvutwqwsuezotlq.png.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: 不管怎样，让我们继续我们今天的日程吧：输入/输出重定向。 我们已经用过的大多数命令，都把他们的结果张贴到了终端显示中。然而，我们也可以让这些命令的显示放进一个文件、设备中，或者作为其它命令的输入，一切都在重定向。
  标准输出 那么，命令行程序主要是怎么工作的呢？它们会将命令的结果丢给一个叫做标准输出的设备，然后，标准输出会将这些结果发送到你的显示设备上，这样你就可以畅快地阅读这些信息了。然而，你也可以让命令的结果显示到一个文本文件中，像这样，用字符（我的例子）：
  man zypper  man.txt  这儿我所干的是，
tags:
- 命令行星期二
- 命令行
thumb: false
title: 命令行星期二——第六部分
titlepic: false
translator: GOLinux
updated: '2014-08-05 08:00:00'
---

不管怎样，让我们继续我们今天的日程吧：输入/输出重定向。


我们已经用过的大多数命令，都把他们的结果张贴到了终端显示中。然而，我们也可以让这些命令的显示放进一个文件、设备中，或者作为其它命令的输入，一切都在**重定向**。


### 标准输出


那么，命令行程序主要是怎么工作的呢？它们会将命令的结果丢给一个叫做标准输出的设备，然后，标准输出会将这些结果发送到你的显示设备上，这样你就可以畅快地阅读这些信息了。然而，你也可以让命令的结果显示到一个文本文件中，像这样，用“>”字符（我的例子）：



```
man zypper > man.txt

```

这儿我所干的是， 我想要获得zypper的一个帮助页。但是，我想要把它放到一个文本文件中去，因而我可以在我需要他们的时候（例如，在论坛、IRC寻求帮助时）很方便地读取这些结果。所以，这个命令做的是，保存man zypper输出结果到我的家目录中的man.txt，这样你可以看到，我可以用gedit来打开它：


![](/images/p/201408/03/100718ttvutwqwsuezotlq.png)


如果我重复了该命令，或者使用不同的命令重定向到了同名文件，那么它就会被一次又一次地覆盖。所以，在那种情况下，如果我想要把输出结果重定向并附加到现存文件中，我唯一能做的事情就是下一次使用“>>”来替换“>”。


### 标准输入


许多命令也可以接受来自称之为标准输入的设备的输入。默认情况下，输入来自键盘，然而也可以来自一个文件。要重定向它，使用跟前面相反的字符：‘**<**’。


请看下面的例子：



```
sort < man.txt

```

### 管道


要想把多个命令连接到一起，你可以使用管道。管道所要做的是，将一个命令的标准输出注入到另一个命令的标准输入。肖茨先生的最爱：



```
ls – l | less

```

通过使用‘| less’这个小把戏，你可以让任何命令滚动输出。 过滤器


### 过滤器


过滤器是管道中常用的程序。过滤器获取标准输入，对它进行操作，然后把结果发送到标准输出。它们可以以一种相当强大的方式处理信息。这儿提供了一个程序列表，大多数都是用作过滤器的。它们可以用于执行、查询，或者将帮助页重定向到它们，然后再重定向到一个文件！


过滤器：sort, uniq, grep （我们发现这一个东西遍布论坛，因此我建议大家深入研究一下）, fmt, pr, head, tail, tr, sed, awk。


### 结束


我们只剩下几个课程来阐述CLI的基本用法了，到成熟期的时候，我希望大家都会对CLI兴趣会增多一点了，也希望大家在萧条期也进行一些探索！而在你们动手干的时候，我希望你们…… **玩得不亦乐乎！**




---


via: <https://news.opensuse.org/2014/07/30/command-line-somedays-part-six/>


作者：[Nenad Latinović](https://news.opensuse.org/author/holden87/) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出