我是靠谱客的博主 火星上发带,最近开发中收集的这篇文章主要介绍LINUX中的管道技术,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

管道的概念

管道的操纵符号 ‘|’ ,主要的作用连接左右两个命令,将左侧命令的标准输出作为右侧命令的标准输入
案例1
将/etc/passwd中的用户按UID 进行大小排序

从小到大
[root@localhost ~]# sort    -t   ":"   -k3  -n  /etc/passwd  

从大到小
[root@localhost ~]# sort    -t   ":"   -k3  -nr  /etc/passwd  

案例2:

统计当前/etc/passwd中用户使用的shell类型

[root@localhost ~]# awk  -F  ':' '{print  $NF}' /etc/passwd | sort | uniq -c |sort  -nr
     32 /bin/bash
     17 /sbin/nologin
      1 /sbin/shutdown
      1 /sbin/halt
      1 /bin/sync

案例3

打印主机的IP
例1:

[root@localhost ~]# grep  'IPADDR'  /etc/sysconfig/network-scripts/ifcfg-ens32 | awk  -F  '='  '{print $2}'
"10.0.0.98"

例2:

[root@localhost ~]# ifconfig  ens32  | grep 'inet ' |awk  '{print $2}'10.0.0.98

例3:

[root@localhost ~]# ifconfig   ens32  | sed  -n  '2p' | sed  -r  's#(^.*et)(.*)(net.*$)#2#g'
 10.0.0.98  

这就不再写其他的方法了需要的找博主

管道中的tee

tee就相当于我们在标准输出的时候我们可以利用tee管道技术将数据备份到文本中但是又不影响到下右侧命令的输入
在这里插入图片描述
案例:
例1:

[root@localhost ~]# ifconfig   ens32  | sed  -n  '2p' | tee  IPADDR.txt |  sed  -r  's#(^.*et)(.*)(net.*$)#2#g'
 10.0.0.98  
[root@localhost ~]# cat IPADDR.txt 
        inet 10.0.0.98  netmask 255.255.255.0  broadcast 10.0.0.255

例2:

[root@localhost ~]# ip addr  | grep  'inet ' | tee  IPADDR.txt  | awk  -F  '/'  '{print $1}' | awk  '{print $2}' | sed  -n '2p'  
10.0.0.98

管道中使用xargs技术

xargs参数传递,主要是让一些不支持管道的命令可以或者参数,能够使用管道技术
案例:
例1:
在这里插入图片描述
例2:

[root@localhost ~]# which  cat  | xargs  ls
/bin/cat

例3:

[root@localhost ~]# which   lsp  |  xargs  ls |  xargs  rm  -rf  |  ls  /bin/lsp
/bin/lsp
/usr/bin/which: no lsp in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

最后

以上就是火星上发带为你收集整理的LINUX中的管道技术的全部内容,希望文章能够帮你解决LINUX中的管道技术所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(102)

评论列表共有 0 条评论

立即
投稿
返回
顶部