Linux 命令管道介绍

news2024/10/1 21:32:51

今天给伙伴们分享一下Linux 命令管道,希望看了有所收获。

我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!

如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。

一、进程管道技术

  • 管道操作符号 “|” 连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输入

图片

  • 格式: cmd1 | cmd2 […|cmdn]

1、匿名管道

[root@edenluo.com ~]# ll /dev/ | less
[root@edenluo.com ~]# ps aux | grep 'sshd'
[root@edenluo.com ~]# rpm -qa  | grep 'httpd'   //查询所有安装的软件包,过滤包含httpd的包
[root@edenluo.com ~]# yum list  | grep 'httpd'

2、命名管道(了解)

创建命名管道文件:
[root@edenluo.com ~]# mkfifo /tmp/tmpfifo
[root@edenluo.com ~]# file /tmp/tmpfifo
/tmp/tmpfifo: fifo (named pipe)

把指令结果放入管道先:
[root@edenluo.com ~]# rpm -qa > /tmp/tmpfifo 

新建一个终端从命名管道内拿内容:
[root@edenluo.com ~]# grep bash /tmp/tmpfifo 
bash-4.1.2-14.el6.x86_64

把指令结果放入管道先:
[root@edenluo.com ~]# cat /etc/passwd > /tmp/tmpfifo 

新建一个终端从命名管道内拿内容:
[root@edenluo.com ~]# grep root /tmp/tmpfifo 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

3、管道练习实例

1、案例1: 将/etc/passwd 中的用户按 UID 大小排序
[root@edenluo.com ~]# sort -t":" -k3 -n /etc/passwd 
[root@edenluo.com ~]# sort -t":" -k3 -n /etc/passwd -r 
[root@edenluo.com ~]# sort -t":" -k3 -n /etc/passwd |head

-t: 用来指定分隔符   -k  指定列数   -n  以数值的方式排序
2、案例2: 统计出最占CPU的5个进程
[root@edenluo.com ~]# ps aux --sort=-%cpu |head -6

-%cpu 是从大到小(倒序) +%cpu 从小到大(正序)
3、案例3:统计当前/etc/passwd中用户使用的shell类型(目前了解)
思路:取出第七列(shell) | 排序(把相同归类)| 去重
[root@edenluo.com ~]# awk -F: '{print $7}' /etc/passwd
[root@edenluo.com ~]# awk -F: '{print $7}' /etc/passwd |sort
[root@edenluo.com ~]# awk -F: '{print $7}' /etc/passwd |sort |uniq 
[root@edenluo.com ~]# awk -F: '{print $7}' /etc/passwd |sort |uniq -c
    131 	/bin/bash
      1 	/bin/sync
      1 	/sbin/halt
     63 	/sbin/nologin
      1 	/sbin/shutdown
-F: 	指定字段分隔符
$7 		第七个字段
4、案例4: 统计网站的访问情况 top 20(目前了解)
思路:打印所有访问的连接 | 过滤访问网站的连接 | 打印用户的IP | 排序 | 去重
[root@edenluo.com ~]# yum -y install httpd
[root@edenluo.com ~]# systemctl start httpd
[root@edenluo.com ~]# systemctl stop firewalld

[root@edenluo.com ~]# ss -an |grep :80 |awk -F":" '{print $8}' |sort |uniq -c
	4334 192.168.0.66
	1338 192.168.10.11
	1482 192.168.10.125
  44 	 192.168.10.183
  3035 192.168.10.213
  375  192.168.10.35
  362  192.168.10.39

[root@edenluo.com ~]# ss -an |grep :80 |awk -F":" '{print $8}' |sort |uniq -c |sort -k1 -rn |head -n 20 
5、案例5: 打印当前所有IP(目前了解)
[root@edenluo.com ~]# ip addr |grep 'inet ' |awk '{print $2}' |awk -F"/" '{print $1}'
127.0.0.1
192.168.2.115
6、案例6:打印根分区已用空间的百分比(仅打印数字)(目前了解)
[root@edenluo.com ~]# df -P |grep '/$' |awk '{print $5}' |awk -F"%" '{print $1}'

4、tee管道技术(了解)

图片

  • Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

  • tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

语法

[root@edenluo.com ~]# tee [-ai][--help][--version][文件...]

参数

  • -a或–append  附加到既有文件的后面,而非覆盖它.
  • -i或–ignore-interrupts  忽略中断信号。
  • –help  在线帮助。
  • –version  显示版本信息。

实例

[root@edenluo.com ~]# date > date.txt 
[root@edenluo.com ~]# date |tee date.txt

使用指令"tee"将用户输入的数据同时保存到文件"file1"和"file2"中,输入如下命令:

[root@edenluo.com ~]# tee file1 file2                   #在两个文件中同时输入内容内容 

以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示:

My Linux                        #提示用户输入数据  
My Linux                        #输出数据,进行输出反馈  

此时,可以分别打开文件"file1"和"file2",查看其内容是否均是"My Linux"即可判断指令"tee"是否执行成功。

5、参数传递xargs(了解)

  • 将参数列表转换成小块分段传递给其他命令
  • 读入stdin的数据转换为参数添加至命令后面
  • 让一些不支持管道的命令可以使用管道。
  • 管道命令符能让大家能进一步掌握命令之间的搭配使用方法,进一步提高命令输出值的处理效率。
  • xargs 是给命令传递参数的一个过滤器,可以将管道或标准输入的数据转换成参数,默认的命令是 echo
[root@edenluo.com ~]# grep "/sbin/nologin" /etc/passwd | wc -l
33
[root@edenluo.com ~]# head -5 /etc/passwd|tail -1
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
使用grep过滤输出信息
[root@edenluo.com ~]# ls -l /etc |grep pass
-rw-r--r--   1 root root   4653 Dec  2 15:54 passwd
-rw-r--r--.  1 root root   4606 Dec  2 15:54 passwd-
-rw-r--r--.  1 root root   1454 Sep 23  2014 passwd.OLD
//管道和标准输出以及标准错误输出, 使用普通用户执行如下命令
[root@edenluo.com ~]# find /etc/ -name "p*"|grep passwd
[root@edenluo.com ~]# find /etc/ -name "p*"|grep passwd > a
[root@edenluo.com ~]# find /etc/ -name "p*"|grep passwd > b
[root@edenluo.com ~]# find /etc/ -name "p*"|grep passwd &> ab

[root@edenluo.com ~]# find  .  -name wing.txt | xargs  -i cp {} /root/Desktop
加-i 参数直接用 {}就能代替管道之前的标准输出的内容

[root@edenluo.com ~]# find  .  -name wing.txt | xargs  -i cp {} /root/Desktop
防止被查找到的文件过多,导致内存溢出错误

i缺省使用{}作为占位符

[root@localhost ~]# echo "a b c d aa bb abc"|xargs -t touch 
[root@edenluo.com ~]# ls *a | xargs -i echo {}

通过-I指定占位符,自定义占位符

[root@edenluo.com ~]# ls *a | xargs -I % echo %
[root@localhost ~]# echo "file1 file2 file3"|xargs -t -I % sh -c 'touch %;ls -l %'

二、命令管道实战练习

1、简述输出/输入重定向的意义。

2、使用 > ,>> , 2>,2>> , <, 练习重定向的使用。

3、简述管道的作用。

4、举例练习管道 | 和xargs的使用。

5、破解centos7/8密码

grub界面--> e --> vmlinuz那行最后添加 init=/bin/sh --> ctrl+x --> # mount -o remount,rw / 

如果有版帮助,帮忙免费的关注一下**公众号「想吃西红柿」「云原生运维实战派」**后续会有更多实用的运维技术分享给伙伴们,您的关注就是我最大的成就。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065750.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考:软件设计师 — 15.数据结构及算法应用

十五. 数据结构及算法应用 数据结构及算法应用类题目是下午场考试中的第四道题目&#xff0c;分值 15 分&#xff0c;主要以 C 语言填空、算法策略判断和时间复杂度判断为考察形式&#xff0c;建议拿到 6 分以上。 1. 解题技巧 算法策略与时间复杂度部分详细内容可以参考文章…

测试干货 | 如何选择合适的半导体检测方法?看完这篇就明白了!

撰文排版&#xff1a;刘佳 审核指导&#xff1a;肖俊灵 本文较长&#xff0c;建议先收藏后随时查看&#xff01;以后我们将更新更多此类硬核科普&#xff0c;欢迎关注&#xff01; 半导体材料作为半导体产业链中的重要支撑&#xff0c;包括以硅、锗等为代表的元素半导体材料和以…

图与树的基本概念

目录 引言 图与树结构的重要性 图的基本概念 图的表示方式 图的遍历算法 树的基本概念 树的定义与性质 树的遍历 二叉树与多叉树的概念 图与树的高级应用 最短路径算法 最小生成树算法 总结与应用 综合实例分析 引言 在计算机科学的世界中&#xff0c;图和树是两…

商圈停车泊位实时查询与推荐系统 项目编号:17259(案例分享)

摘 要 在当今城市化进程加快的背景下&#xff0c;城市停车问题日益突出&#xff0c;给市民出行带来诸多不便。为解决停车难题&#xff0c;提高停车效率&#xff0c;基于Java开发语言和Spring Boot框架&#xff0c;结合MySQL数据库技术&#xff0c;开发了商圈停车泊位实时查询…

计算机Java项目|基于SpringBoot的网络海鲜市场系统的设计与实现

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…

牛客小白月赛96

牛客小白月赛96 A 最少胜利题数 链接&#xff1a;https://ac.nowcoder.com/acm/contest/84528/A 来源&#xff1a;牛客网 题目描述 本场小白月赛共 6 题&#xff0c;&#x1d435;&#x1d456;&#x1d45b;&#x1d454;&#x1d44f;&#x1d45c;&#x1d45b;&#x1d4…

【hot100篇-python刷题记录】【找到字符串中所有字母异位词】

R6-滑动窗口篇 印象题 核心&#xff1a; 使用collections方法的Counter计数&#xff0c;统计了某个子串中每个字母出现的次数。 判断子串相等&#xff1a;counter1counter2 &#xff08;注意&#xff1a;此时&#xff0c;counter1或者counter2都不能含有多余的项&#xff0…

JVM系列--初始JVM

根据《黑马程序员JVM虚拟机入门到实战全套视频教程》整理 1 什么是JVM JVM 全称是 Java Virtual Machine&#xff0c;中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 Java源代码执行流程如下&#xff1a; 分为三个步…

Mysql 集群技术

一、Mysql 在服务器中的部署方法 在企业中90%的服务器操作系统均为Linux在企业中对于Mysql的安装通常用源码编译的方式来进行官网&#xff1a;http://www.mysql.com 1.1 在Linux下部署mysql cmake \ -DCMAKE_INSTALL_PREFIX/usr/local/mysql \ #指定安装路径 -DMYSQL_DATADI…

【Unity变现】Unity 接入Unity ADS广告

说在前面的话&#xff0c;Unity ADS是Unity官方做的广告变现平台&#xff0c;但广告在我国大陆无法使用&#xff0c;开发时测试的话需要上代理才能看到请求的广告。 如果游戏不准备发布到海外市场&#xff0c;可以不考虑这个平台。 一、注册Unity ADS平台的准备 https://dash…

JavaEE 第17节 网络通信知识扫盲

文章目录 前言一、网络通信的概念二、局域网&广域网 局域网&#xff08;LAN&#xff0c;Local Area Network&#xff09; 广域网 三、IP地址与端口号 1、IP地址 2、端口号 四、网络协议 1、概念&作用 2、协议分层&#xff08;重要&#xff09; 前言 此篇博…

你是如何更精准地指引模型,激发其无尽的创造力?

随着大型语言模型日益凸显其重要性&#xff0c;发掘并充分利用它们的潜力&#xff0c;很大程度上依赖于我们如何巧妙构思和构造指令——即Prompt的精炼艺术。优化Prompt撰写技巧&#xff0c;将能够更好地引导大模型&#xff0c;为各类应用场景生成高质量的文本输出。分享出你的…

CTF杂项题:easy_nbt writeup

题目 题目如图&#xff0c;有一个附件&#xff1a;file.7z 解题思路 CTF的杂项题&#xff0c;对于刚接触的人员来说&#xff0c;很多时候是完全没有思路&#xff0c;解这类题&#xff0c;没有相关知识储备的时候&#xff0c;可以使用文件内容搜索工具搜索flag、ctf、key等关键…

【实现100个unity特效之25】Unity中实现二次元模型,基于光照的内置和URP管线卡通化渲染shader

最终效果 文章目录 最终效果默认效果简单粗暴&#xff0c;使用Unlit/Texture基于光照模型的卡通渲染UnityToonShader——仅支持内置渲染管线基于光照模型的二次元渲染UnityURPToonLitShaderExample——仅支持URP渲染管线 完结 默认效果 不然不做处理&#xff0c;我们的模型默认…

高并发eleme项目登录模块(thirty-three day)

一、配置一主二从mysql 1. mycat对mysql8不完全支持 2. mysql8主从问题不大get_pub_key1 3. gtids事务复制 4. 删除/etc/my.cnf 5. 同步data文件需要先停用mysql服务,删除data目录中的auto.cnf 6. gtid模式以及经典模式都需要锁表 flush tables with read lock; unlock …

怎么用电脑兼职赚钱,普通人可做的6个副业项目(非常详细)零基础入门到精通,收藏这篇就够了

现在的生活中&#xff0c;我们总是感觉所过的日子都很紧张&#xff0c;虽然我们尽可能地工作和努力&#xff0c;但是生活成本和社会压力仍然那么大。为了弥补自己的生活经验和财务困难&#xff0c;很多人开始寻找一种额外的收入来源。 其实这种额外的收入来源就被称之为&#…

google paly修改地区教程【2024自测可用】

【准备信息】 https://usfakename.com/ &#xff1a; 用来生成其他国家&#xff08;比如美国&#xff09;的地址 重要需要填写的内容&#xff1a; 卡号&#xff1a;4532 7875 1109 8437 City:Boulder State:Alabama postcode:35259 可以在美国邮政编码ZIP Code(转载) -…

学习yolo+Java+opencv简单案例(一)

目录 一、大概架构 二、编写pom.xml 1、yolo-study模块&#xff08;root&#xff09;&#xff1a; 2、CameraDetection模块 三、编写yml配置文件 四、编写controller 五&#xff0c;可能会出现的问题 1、修改VM启动参数&#xff1a; 2、修改启动类 六、测试 七&…

gradio如何实现修改代码后自动重载运行

使用自动重载加速开发 前提条件&#xff1a;本指南要求你了解 Blocks。在阅读本指南之前&#xff0c;请确保你已经阅读了Blocks指南。 本指南涵盖自动重载、在Python IDE中的重载&#xff0c;以及在Jupyter Notebooks中使用Gradio。 为什么需要自动重载&#xff1f; 当你使…

C#归并排序算法

前言 归并排序是一种常见的排序算法&#xff0c;它采用分治法的思想&#xff0c;在排序过程中不断将待排序序列分割成更小的子序列&#xff0c;直到每个子序列中只剩下一个元素&#xff0c;然后将这些子序列两两合并并排序&#xff0c;最终得到一个有序的序列。 归并排序实现原…