`

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看看是不是刚才的输入成功的保存了。怎么样,同样的命令,使用不同的管道符号,即可以显示文件内容,也可以用来创建文件,这就是管道符号的强大。

分享到:
评论

相关推荐

    Windows cmd 管道过滤命令findstr 学习文档

    平时使用linux习惯了,管道命令是使用非常高频的,使用cmd也是想要,但是平时使用很少所以就忘记了,这里做个笔记。分享给大家。 Windows cmd 管道过滤命令findstr 学习文档 findstr命令类似于linux中的grep命令。 ...

    LINUX处理文本命令

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

    Linux中grep命令参数及用法详解---linux管道命令grep

    介绍linux下的grep关键查询的命令用法

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

    主要介绍了linux使用管道命令执行ps获取cpu与内存占用率的示例,需要的朋友可以参考下

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

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

    常用 Linux 命令的基本使用.docx

    02. 常用 Linux 命令的基本使用 03. 自动补全 Linux 终端命令格式 01. 终端命令格式 02. 查阅命令帮助信息(知道) 2.1 --help 2.2 man 文件和目录常用命令 目标 01. 查看目录内容 1.1 终端实用技巧 1.2 ...

    Linux常见命令与shell脚本

    1.17 管道与命令替换 9 1.18 umask文件/目录创建掩码 9 1.19 chmod 修改文件权限 9 1.20 chgrp改变文件/目录所属的组 11 1.21 chown更改某个文件/目录的所有者和属组 11 1.22 find文件查找 11 1.23 locate快速文件...

    vim编辑器中掌握输入输出重定向与管道命令的应用

    掌握输入输出重定向与管道命令的应用 1.使用重定向 重定向就是不使用系统的标准输入端口、标准输出端口或标准错误端口,而进行重新的指定,所以重定向分为输入重定向、输出重定向和错误重定向。通常情况下,重定向到...

    linux下模拟实现命令解释器shell

    linux下模拟实现命令解释器shell并附有报告书 基本shell命令功能的实现,如cd、ls、echo、help、管道、重定向等

    第二章 Linux 常用命令训练 答案

    第二章 Linux 常用命令训练 答案 学习本章要达到的目标: ...5.掌握 Linux 中变量、流、管道操作的命令。 6.掌握 Linux 中进程操作的命令。 7.掌握 Linux 中网络操作的命令。 8.了解 Linux 中其它常用操作的命令。

    Linux基础命令

    Linux 1.目录介绍 2.远程连接 3.常用命令 1)磁盘管理 2)文件管理 3)grep和管道 4)压缩、解压命令 5)系统命令 6)其他命令

    Linux 下xargs命令详解及xargs与管道的区别

    特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别,本文通过实例给大家详解,需要的的朋友参考下

    Linux下的管道编程技术

    整理的Linux下的管道编程技术文档。包含管道技术模型,信号和消息的区别 ,管道和命名管道的区别 ,管道编程技术,进程间通信管道编程,与管道相关的系统命令等内容;

    Linux操作系统实验报告

    实验一 熟悉Linux常用命令 实验二 Linux下程序设计基础 实验三 Linux下进程间管道通信 实验四 IPC进程间共享内存通信 实验五 IPC信号量使用 实验六 Linux内存基本原理 实验八 设备驱动程序 实验九 Linux下socket网络...

    linux shell 管道命令(pipe)使用及与shell重定向区别

    看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些...管道命令使用说明: 先看下下面图: command1正确输出,作为command2的输入 然后comand2的输出作为,comand3的输入 ,coma

    linux命令手册

    Linux简介及安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linux管道 Linux软件包管理 vim使用 用户及用户组管理 文件权限管理

    Linux中重定向命令行的总结

    Linux中重定向命令行的总结和管道命令的使用详解

    命令解释器(linux)

    一个简单的命令解释器 功能比较多样 代码齐全 有管道 重定向等功能

    cmd操作命令和linux命令大全收集

    CMD命令:开始-&gt;运行-&gt;键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...

Global site tag (gtag.js) - Google Analytics