iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统中管道命令是什么
  • 758
分享到

Linux系统中管道命令是什么

2023-06-28 12:06:58 758人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关linux系统中管道命令是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。管道命令是指处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作

这篇文章给大家分享的是有关linux系统中管道命令是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

管道命令是指处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入。

Linux系统中管道命令是什么

管道命令

管道是一种通信机制,通常用于进程间的通信(也可通过Socket进行网络通信),它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。

管道命令使用|作为界定符号,管道命令与上面说的连续执行命令不一样。

  • 管道命令仅能处理standard output,对于standard error output会予以忽略。 less,more,head,tail...都是可以接受standard input的命令,所以他们是管道命令 ls,cp,mv并不会接受standard input的命令,所以他们就不是管道命令了。

  • 管道命令必须要能够接受来自前一个命令的数据成为standard input继续处理才行。

第一个管道命令

 $ ls -al /etc | less

通过管道将ls -al的输出作为 下一个命令less的输入,方便浏览。

Linux系统中管道命令是什么

管道命令的处理图

选取命令:cut.grep
  • cut:从某一行信息中取出某部分我们想要的信息。

 cut -d '分隔字符' -f field // 用于分隔字符` `cut -c 字符范围` `[参数说明]` `-d : 后面接分隔字符,通常与 -f 一起使用` `-f : 根据-d 将信息分隔成数段,-f 后接数字 表示取出第几段` `-c : 以字符为单位取出固定字符区间的信息
 栗子1: 打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和家目录 [root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | cut -d ':' -f 1,6 root:/root bin:/bin daemon:/sbin adm:/var/adm lp:/var/spool/lpd ... 栗子2: 打印/etc/passwd文件中每一行的前10个字符: [root@izuf6i29flb2df231kt91hz /]# cat /etc/passwd | cut -c 1-10 root:x:0:0 bin:x:1:1: daemon:x:2 adm:x:3:4: lp:x:4:7:l ...

*ps:cut在处理多空格相连的数据时,比较吃力。*

  • grep:分析一行信息,如果其中有我们需要的信息,就将该行拿出来

 grep [-acinv] [--color=auto] '查找字符串' filename` `[参数]` `-a : 将binary文件以text文件的方式查找数据` `-c : 计算找到 '查找字符串'的次数` `-i : 忽略大小写的不同` `-n : 输出行号` `-v : 反向选择,显示没有查找内容的行` `--color=auto : 将找到的关键字部分加上颜色显示
 栗子3: 取出含有 fanco 的/etc/passwd文件的行 [root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | grep -n -c 'fanco' 1 [root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | grep -n 'fanco' 23:fanco:x:1001:1001::/home/fanco:/bin/bash [root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | grep -n -v 'fanco' 1:root:x:0:0:root:/root:/bin/bash 2:bin:x:1:1:bin:/bin:/sbin/nologin 3:daemon:x:2:2:daemon:/sbin:/sbin/nologin 4:adm:x:3:4:adm:/var/adm:/sbin/nologin 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ...

Linux系统中管道命令是什么

加上–color参数,好像不加默认也有颜色

排序命令:sort,wc,uniq

sort

 sort [-fbMnrtuk] [file or stdin]` `[参数]` `-f :忽略大小写的差异,例如A 与a 视为编码相同` `-b :忽略最前面的空格部分` `-M :以月份的名字来排序,例如JAN, DEC 等等的排序方法` `-n :使用『纯数字』进行排序默认是以文字型态来排序的)` `-r :反向排序` `-u :就是uniq ,相同的资料中,仅出现一行代表` `-t :分隔符号,预设是用[tab] 键来分隔` `-k :以那个区间(field) 来进行排序的意思
 栗子4: 对/etc/passwd的账号进行排序 [root@izuf6i29flb2df231kt91hz /]# cat /etc/passwd | sort adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin ... 通过/etc/passwd 第5列来进行排序 [root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | sort -t ':' -k 3 root:x:0:0:root:/root:/bin/bash fanco:x:1001:1001::/home/fanco:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 这里排序还是按照文字进行排序的,切换成数字排序 [root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | sort -t ':' -k 3 -n root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • uniq

 uniq [-ic]` `[参数]` `-i :忽略大小写的不同` `-c :进行计数
 栗子5 使用 last 取出历史登录信息的账号,排序,去重 [root@izuf6i29flb2df231kt91hz /]# last | cut -d ' ' -f 1 | sort | uniq -c       1       7 reboot      19 root       1 wtmp
  • wc

 wc [-lwm]` `[参数]` `-l :仅列出行` `-w :仅列出多少字(英文单字)` `-m :多少字符
 栗子6 查看etc/passwd中有多少账号 [root@izuf6i29flb2df231kt91hz /]# cat /etc/passwd | wc -l 23 计算最近登录系统的人次 [root@izuf6i29flb2df231kt91hz /]# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l 2 查看某个文件的行数 字数 字符数 [root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | wc      23      32     997
双向重定向命令:tee
  • tee:

    在数据流的处理过程中将某段信息保存下来,使其既能输出到屏幕又能保存到某一个文件中。

    Linux系统中管道命令是什么

    tee的工作流程.png

 tee [-a] file` `[参数]` `-a : 以累加的方式,将数据加入file中
 栗子7 查询最近用户登录情况,并将其保存到文件中 [root@izuf6i29flb2df231kt91hz /]# last | tee info | cut -d ' ' -f 1 root ... [root@izuf6i29flb2df231kt91hz /]# less info root     pts/0        112.28.181.159   Sun Jul  1 14:28   still logged in   root     pts/0        112.28.181.159   Sun Jul  1 14:24 - 14:27  (00:03)     root     pts/0        112.28.181.159   Sun Jul  1 13:19 - 14:24  (01:04)     root     tty1                          Sun Jul  1 12:46   still logged in

如果tee后接的文件已存在,内容会被覆盖掉,加上 -a参数则会累加

字符转换命令:tr,col,join,paste,expand
  • tr:用来删除一段信息当中的文字,或者进行文字信息得替换

 tr [-ds] set` `[参数]` `-d : 删除信息当中的set1这个字符串` `-s : 替换掉重复的字符
 栗子8 将上一步生成的info 文件删除掉所有的 root 删除前 [root@izuf6i29flb2df231kt91hz /]# cat info root     pts/0        112.28.180.86    Thu May 10 18:01 - 18:12  (00:11)     reboot   system boot  3.10.0-693.2.2.e Fri May 11 02:00 - 16:31 (51+14:30)    删除后 [root@izuf6i29flb2df231kt91hz /]# cat info | tr -d 'root'        ps/0        112.28.180.86    Thu May 10 18:01 - 18:12  (00:11)     eb   sysem b  3.10.0-693.2.2.e Fi May 11 02:00 - 16:31 (51+14:30)    删除时并不是只删除连续的字符,reboot也被删除掉了root部分 除去dos文件留下来的^M符号 $ cat /root/passwd | tr -d '\r' > /root/passwd.linux ^M可以用\r替代
  • col

 col [-xb]` `[参数]` `-x : 将tab键换成对等的空格键` `-b : 在文字内有反斜杠(/)时,仅保留反斜杠最后接的那个字符

Linux系统中管道命令是什么

 栗子9 将上图中的^I换成空格键 [root@izuf6i29flb2df231kt91hz /]# cat info | col -x | cat -A | more         root     pts/0        112.28.181.159   Sun Jul  1 14:28   still logged in$

col经常被用于将man page转存为纯文本文件

  • join:主要讲两个文件有相同数据的一行,相同字段放在前面

 join [-ti12] file1 file2` `[参数]` `-t : join 默认以空格符分隔数据,并且对比第一个字段的数据 ,如果两个文件相同,则将两条数据连成一行` `-i : 忽略大小写的差异` `-1 : 说明第一个文件通过那个字段来进行分析` `-2 : 说明第二个文件通过那个字段来分析
 栗子10 将/etc/passwd 与  /etc/shadow 相关数据整合成一列 [root@izuf6i29flb2df231kt91hz /]# head -3 /etc/passwd /etc/shadow ==> /etc/passwd  /etc/shadow
  • paste:直接将两个文件两行贴在一起,中间以[tab]键隔开

 paste [-d] file1 file2` `[ 参数]` `-d : 后面可以接分隔字符,默认以[tab]来分隔的` `- : 如果file部分写成-,表示接受standard input数据的意思
 栗子11 [root@izuf6i29flb2df231kt91hz /]# paste info info2     root     pts/0        112.28.181.159   Sun Jul  1 14:28   still logged in       root     pts/0        112.28.181.159   Sun Jul  1 14:28   still logged in   root     pts/0        112.28.181.159   Sun Jul  1 14:24 - 14:27  (00:03)        root     pts/0        112.28.181.159   Sun Jul  1 14:24 - 14:27  (00:03)     root     pts/0        112.28.181.159   Sun Jul  1 13:19 - 14:24  (01:04)        root     pts/0        112.28.181.159   Sun Jul  1 13:19 - 14:24  (01:04)
  • *expand:把tab键转为空格键

expand [-t] file [参数] “ -t : 后面接数字,一般,一个tab可以用8个空格代替,可以自行定义代表几个空格

 栗子12 [root@izuf6i29flb2df231kt91hz /]# cat info | expand -3 info    root     pts/0        112.28.181.159   Sun Jul  1 14:28   still logged in   root     pts/0        112.28.181.159   Sun Jul  1 14:24 - 14:27  (00:03)     root     pts/0        112.28.181.159   Sun Jul  1 13:19 - 14:24  (01:04)     root     tty1                          Sun Jul  1 12:46   still logged in
切割命令:split

split:顾名思义,讲一个大文件依据文件大小或行数切割成为小文件

 split [-bl] file prefix` `[参数]` `-b : 后面可接欲切割文件的大小,可加单位,例如b,k,m等` `-l : 以行数来进行切割` `PREFIX : 代表前导符,可作为切割文件的前导文字
 栗子 $ split -b 300K /etc/passwd 将ls -al输出文件  按10行分成一个新的文件 [root@izuf6i29flb2df231kt91hz /]# ls -al / | split -l 10 - lsrrot [root@izuf6i29flb2df231kt91hz /]# ls b    boot  dev  home  info2  lib64       lsrrotaa  lsrrotac  mnt  opt   root  sbin  sys  usr bin  c     etc  info  lib    lost+found  lsrrotab  media     n    proc  run   srv   tmp  var [root@izuf6i29flb2df231kt91hz /]# cd / [root@izuf6i29flb2df231kt91hz /]# ls b    boot  dev  home  info2  lib64       lsrrotaa  lsrrotac  mnt  opt   root  sbin  sys  usr bin  c     etc  info  lib    lost+found  lsrrotab  media     n    proc  run   srv   tmp  var [root@izuf6i29flb2df231kt91hz /]# wc -l lsrrot*   10 lsrrotaa   10 lsrrotab    9 lsrrotac   29 total

感谢各位的阅读!关于“Linux系统中管道命令是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Linux系统中管道命令是什么

本文链接: https://www.lsjlt.com/news/319271.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统中管道命令是什么
    这篇文章给大家分享的是有关Linux系统中管道命令是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。管道命令是指处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作...
    99+
    2023-06-28
  • Linux系统中mount命令是什么
    这篇文章给大家介绍Linux系统中mount命令是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。挂接命令(mount)首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们...
    99+
    2023-06-28
  • Linux系统中chmod命令是什么呢
    小编今天带大家了解Linux系统中chmod命令是什么呢,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统中chmod命令...
    99+
    2023-06-28
  • Linux系统中的pidof命令是什么
    今天给大家介绍一下Linux系统中的pidof命令是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。在Linux系统中pidof适用于查找正在运行进程的进程...
    99+
    2023-06-28
  • Linux系统rpm命令是什么
    这篇文章主要为大家分析了Linux系统rpm命令是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统rpm命令是什么”的知识吧。rpm用于管理...
    99+
    2023-06-28
  • Linux系统grep命令是什么
    这篇文章的内容主要围绕Linux系统grep命令是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Linux grep命令用于查找文件里符合条件的...
    99+
    2023-06-28
  • Linux系统iptables命令是什么
    这篇文章跟大家分析一下“Linux系统iptables命令是什么”。内容详细易懂,对“Linux系统iptables命令是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Lin...
    99+
    2023-06-28
  • Linux管道命令有什么作用
    这篇文章主要讲解了“Linux管道命令有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux管道命令有什么作用”吧! ...
    99+
    2023-02-06
    linux
  • Linux系统中实用的命令是什么
    本篇内容介绍了“Linux系统中实用的命令是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sudo !!以 root 帐户执行上一条命令...
    99+
    2023-06-28
  • Linux系统中有什么命令
    这篇文章主要介绍了Linux系统中有什么命令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。系统# uname -a     ...
    99+
    2023-06-16
  • Linux系统查询命令是什么
    本篇文章为大家展示了Linux系统查询命令是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Linux系统查询文件命令可以使用which、whereis、locate、find等方法。1...
    99+
    2023-06-28
  • Linux系统关闭命令是什么
    这篇文章主要为大家展示了“Linux系统关闭命令是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统关闭命令是什么”这篇文章吧。Linux系统关机命令:shutdown、halt ...
    99+
    2023-06-28
  • linux系统清屏命令是什么
    linux系统中清屏命令是“cLear”命令,它可将屏幕刷新清除,也可以使用快捷键【ctrl+l】快速清屏;还能够使用“history -c”命令将历史命令记录清除达到清屏效果。具体内容分析:linux清屏命令有以下两种cLear,快捷键【...
    99+
    2024-04-02
  • Linux管道命令怎么用
    这篇文章将为大家详细讲解有关Linux管道命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。管道命令能够将前一个命令的输出作为后一个命令的输入,只保留我们需要的信息,管道命令只能处理通过前一个命令传...
    99+
    2023-06-28
  • Linux系统中的pbcopy和pbpaste命令是什么
    Linux系统中的pbcopy和pbpaste命令是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。pbcopy:命令的主要功能是可将信息copy到剪切板中,上图中将pwd显...
    99+
    2023-06-28
  • linux系统中su命令的作用是什么
    linux系统中su命令的作用是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。当我们以root执行su时,su命令会以当前shell进程为父进程来创建一个新的shell进程...
    99+
    2023-06-07
  • Linux系统中安装Git的命令是什么
    Git是一款开源的分布式版本控制系统,用于管理代码的变更。它可以在多个开发者之间协作,并且可以追踪代码库的变更历史。对于使用Linux系统的开发者来说,Git是一个非常重要的工具。本文将介绍Linux系统中安装Git的命令。在Ubuntu和...
    99+
    2023-10-22
  • Linux系统的常用命令是什么
    小编给大家分享一下Linux系统的常用命令是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!系统信息 arch 显示机器的处理器架构unam...
    99+
    2023-06-27
  • Linux系统查看log命令是什么
    这篇文章主要为大家展示了Linux系统查看log命令是什么,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Linux系统查看log命令是什么”这篇文章吧。1 printk()打印内核消息。 sock...
    99+
    2023-06-28
  • Linux系统的关机命令是什么
    本篇文章给大家分享的是有关Linux系统的关机命令是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux系统中关机命令有shutdown、reboot、poweroff...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作