`

Linux下管道命令的使用

阅读更多

Linux 中,管道连接着一个命令的标准输出和另一个命令的标准输入

我们应该知道我们有的时候会用到类似于“>”,“<”之类的重定位的SHELL语言完成特定的工作

而管道是进程中类似于重定位用法的一种进程之间的通信过程

让我们考虑一下非常常见的 ls 命令。 ls 有许多可用的选项,但是如果目录的内容卷动速度快得你无法查看时该怎么办呢? 比如/etc目录的文件就不是一屏可以显示完的
当然ls可能有适当的参数来完成我们需要的功能-------分屏显示

但是,如果我们使用管道命令的话更方便也更直观

使用以下命令来查看 /etc 目录的内容:

ls -al /etc
你怎么样才能在输出卷过屏幕之前仔细查看它们呢?

方法之一是把输出用管道导入到一个叫做 less 的程序工具。 less 是一个分页显示文件的工具工具,它允许你一页一页(或一个屏幕一个屏幕)地查看信息。

使用竖线( | )来把输出用管道导入到命令中。

ls -al /etc | less

现在,你就可以一个屏幕一个屏幕地查看 /etc 目录的内容了。要向前移动一个屏幕,按 [Space] 键;要向后移动一个屏幕,按 键;要退出,按 [q] 键。使用 less 命令时,你还可以使用箭头键来前后移动。

要使用 less 来搜索文本文件的输出,按 [/] ,然后键入你想在文件内搜索的内容。譬如:

/Linux

推举另一个应用
要更仔细地阅读启动消息,在 shell 提示下,键入 dmesg | less 。你将能够一个屏幕一个屏幕地阅读该文件。使用箭头键来前后翻阅文件。要搜索文件输出,按 [/] 并键入搜索内容。

管道还可以用来只打印一个文件中的某些行。键入:

grep coffee sneakers.txt | lpr
这将会打印 sneakers.txt 文件中提到“coffee”这个词的每一行.

 

     下面,我们遇到一个新的问题,我们不仅仅想要看看/dev目录下面有哪些文件,我们还希望用一个文件来纪录刚才ls的命令显示的所有结果,难道需要用手工输入?不需要,我们介绍两个管道符号:“>;”“>;>;”,也就是大于符号啦。

  ls /dev >; filenames.txt

  还有一个管道符号是由两个大于号组成的“>;>;”,它和刚才“>;”的区别在于一个大于符号的管道是用来创建一个新的文件filenames.txt,如果已经有了同名的文件就复盖掉以前的内容;而两个大于符号的管道是用来在已经存在的文件后面追加新的内容,如果没有这个文件就创建它。

  现在我们vi filenames.txt看看一共有多少行,是不是1000多行啊?我们运行

  ls /dev >;>; filenames.txt

  再来vi filenames.txt看看,是不是一共2000多行啦?

  其实这两个管道符号很容易记忆,向左边的箭头意思就是把前面命令的内容输入到后面的文件中去,刚才那个“|”管道符号是用来把前面命令的输出结果当作后面一个命令的输入数据。下面我们看一个和刚才“>;>;”刚刚相反的管道符号“<<”:

  cat >;>; friends << "EOF"
  >; a
  >; b
  >; c
  >; EOF

  运行第一行以后,意思就是把我们接下来的输入内容保存到friends文件里面,当我们输入“EOF”的时候结束。“<<”的意思就是向前面的命令传送一个数据。

  中间我象征性的输入了a b c三行,每一行前面的“>;”是系统自动产生的提示符号。第四行输入“EOF”系统就保存刚才输入的a b c三行到一个叫做friends的文件里面去。

  现在我们cat friends看看是不是刚才的输入成功的保存了。怎么样,同样的命令,使用不同的管道符号,即可以显示文件内容,也可以用来创建文件,这就是管道符号的强大。

分享到:
评论

相关推荐

    Linux命名管道示例

    在Linux中,命名管道以特殊文件的形式存在于文件系统中,可以用`mkfifo`命令来创建。例如,创建一个名为`my_pipe`的命名管道: ```bash mkfifo my_pipe ``` 创建成功后,`my_pipe`将在当前目录下作为一个文件出现...

    linux 用法 │的用法 管道,将一个程序命令的输出作为另一个程序名称的输入

    ### Linux管道符号“|”的使用详解 在Linux操作系统中,管道符号“|”是一种非常重要的功能特性,它能够将一个命令的输出直接作为下一个命令的输入,从而实现高效的命令组合与数据处理流程。这种机制极大地提升了...

    Linux下常用命令pdf版

    在shell命令中,还可以对命令的输入和输出进行重定向,使用管道等技术将一个命令的输出作为另一个命令的输入,从而实现更为复杂的数据处理流程。 6. 命令的帮助信息 大多数Linux命令都提供了一个“--help”选项,...

    LINUX处理文本命令

    LINUX处理文本命令 处理文本和文本文件的命令 一. sort 文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的字符位置, 对文件行进行排序. 使用-m选项, 它将会合并预排序的输入文件. 想...

    linux使用管道命令执行ps获取cpu与内存占用率

    ### Linux使用管道命令执行ps获取CPU与内存占用率 在Linux环境下,经常需要对系统资源进行监控,尤其是CPU和内存的使用情况。本文档将详细介绍如何利用Linux的管道命令配合`ps`命令来获取当前进程的CPU和内存占用率...

    Linux基本命令.ppt

    管道操作 `|` 和重定向 `&gt;`、`&gt;&gt;`、`、`是Linux命令的精髓。管道允许一个命令的输出作为另一个命令的输入,重定向则可以改变命令的默认输入和输出。 `shell` 是Linux用户与系统交互的核心,它是命令解释器,负责...

    Linux学习资料(基本命令、使用技巧、基础教程、高级技巧集)

    "Linux使用技巧集"可能包含了提高效率的各种小窍门,比如如何使用管道(|)和重定向(&gt;、&lt;)操作来组合命令,如何利用tab键自动补全命令和路径,以及如何通过alias命令创建自定义快捷方式。此外,可能还涵盖了文件...

    Linux 命令速查手册

    本书不仅全面覆盖了Linux系统的核心命令,而且还提供了每个命令的具体使用方法和示例,让读者能够快速掌握和应用。在基础知识部分,作者可能会从Linux系统的安装和启动讲起,然后逐步深入到用户权限管理、文件系统...

    linux下的特殊命令

    以下是关于"linux下的特殊命令"的详细知识点: 1. **Shell脚本调试方法**: - `set -x`:开启命令追踪,打印出执行的每一条命令。 - `set -v`:开启命令行提示符的打印,显示每一行脚本被解析的情况。 - `set -n...

    LINUX管道通信实验报告

    **Linux管道通信实验报告** 在Linux操作系统中,管道是一种简单而有效的进程间通信(IPC,Inter-Process Communication)机制,它允许一个进程的输出成为另一个进程的输入,从而实现数据的传递。本实验旨在深入理解...

    dos命令与linux的命令

    此外,Linux Shell支持管道(pipe)和重定向(redirect),这使得命令组合和数据流处理更加灵活。例如,`ls -l | grep .txt`会列出所有.txt文件的详细信息。 总的来说,虽然DOS和Linux的命令在概念上有一定的相似性...

    linuxc常用命令

    Linux操作系统采用命令行界面(CLI),因此掌握常用Linux命令对于使用Linux系统来说是基础且至关重要的。下面详细解释一些常见的Linux命令及其用法: 1. 目录结构相关命令: - /:Linux文件系统的根目录,所有目录...

    Linux常用命令汇总

    当需要查询已安装的OpenJDK版本时,可以通过`rpm -qa | grep java`命令结合管道命令`|`进行筛选,`rpm -qa`命令用于列出所有已安装的rpm包。如果需要卸载已安装的OpenJDK版本,可以采用`rpm -qa | grep java | xargs...

    linux基础命令总结pdf版本

    掌握这些基础命令对于使用Linux系统至关重要。以下是根据提供的文件内容总结出的一些Linux基础命令知识点: 一、文件和目录权限 - Linux通过权限位来区分文件类型,常见的文件类型有普通文件(-)、目录(d)、链接...

    Linux命令学习+Linux标准文本处理命令

    通过学习这些基本的Linux命令和Shell操作,初学者可以更快地熟悉Linux环境,并能有效地管理和操作Linux系统。此外,掌握这些技能还有助于提升在开发、运维以及其他与Linux相关的领域的专业能力。

    linux命令速查手册.pdf

    本手册主要介绍了 Linux 命令的使用方法,包括查看命令行历史、使用 alias 命令、history 命令等。下面我们将详细介绍这些命令的使用方法和应用场景。 11.1 查看命令行历史 在 Linux 中,每当我们在 shell 中输入...

    unix(linux)常用命令课程

    【课程介绍】 Unix 和 Linux 操作系统是计算机科学领域中不可或缺的部分,尤其在服务器管理和软件开发中占据...通过实例演示和实践操作,学员将能够熟练应用这些命令解决实际问题,提升在Unix/Linux环境下的工作效率。

Global site tag (gtag.js) - Google Analytics