Linux管道命令怎么使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"Linux管道命令怎么使用",内容详细,步骤清晰,细节处理妥当,希望这篇"Linux管道命令怎么使用"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。管
千家信息网最后更新 2026年11月01日Linux管道命令怎么使用img img img
本文小编为大家详细介绍"Linux管道命令怎么使用",内容详细,步骤清晰,细节处理妥当,希望这篇"Linux管道命令怎么使用"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。
管道命令
管道命令使用|作为界定符号,管道命令与上面说的连续执行命令不一样。
管道命令仅能处理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的输入,方便浏览。
管道命令的处理图
选取命令: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,6root:/rootbin:/bindaemon:/sbinadm:/var/admlp:/var/spool/lpd...栗子2:打印/etc/passwd文件中每一行的前10个字符:[root@izuf6i29flb2df231kt91hz /]# cat /etc/passwd | cut -c 1-10root:x:0:0bin:x:1:1:daemon:x:2adm: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/bash2:bin:x:1:1:bin:/bin:/sbin/nologin3:daemon:x:2:2:daemon:/sbin:/sbin/nologin4:adm:x:3:4:adm:/var/adm:/sbin/nologin5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin...
加上–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 | sortadm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologinchrony:x:998:996::/var/lib/chrony:/sbin/nologin...通过/etc/passwd 第5列来进行排序[root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | sort -t ':' -k 3root:x:0:0:root:/root:/bin/bashfanco:x:1001:1001::/home/fanco:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologin这里排序还是按照文字进行排序的,切换成数字排序[root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | sort -t ':' -k 3 -nroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp: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 -l23计算最近登录系统的人次[root@izuf6i29flb2df231kt91hz /]# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l2查看某个文件的行数 字数 字符数[root@izuf6i29flb2df231kt91hz /]# cat etc/passwd | wc 23 32 997
双向重定向命令:tee
tee:
在数据流的处理过程中将某段信息保存下来,使其既能输出到屏幕又能保存到某一个文件中。
img tee的工作流程.png
❝
tee [-a] file``[参数]``-a : 以累加的方式,将数据加入file中
栗子7查询最近用户登录情况,并将其保存到文件中[root@izuf6i29flb2df231kt91hz /]# last | tee info | cut -d ' ' -f 1root...[root@izuf6i29flb2df231kt91hz /]# less inforoot 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 inforoot 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 : 在文字内有反斜杠(/)时,仅保留反斜杠最后接的那个字符
栗子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 $6$RNGEziM7$2e/EJd3hThS8TMqHSgDIfeDf7dJUG1dbJ0ik1goybGYmLGZL.sHNv1Ltb4.1HUksxTI0Cs3PJw5g/YirSImKg1:17643:0:99999:7:::bin:*:17110:0:99999:7:::daemon:*:17110:0:99999:7:::[root@izuf6i29flb2df231kt91hz /]# join -t ':' /etc/passwd /etc/shadowroot:x:0:0:root:/root:/bin/bash:$6$RNGEziM7$2e/EJd3hThS8TMqHSgDIfeDf7dJUG1dbJ0ik1goybGYmLGZL.sHNv1Ltb4.1HUksxTI0Cs3PJw5g/YirSImKg1:17643:0:99999:7:::bin:x:1:1:bin:/bin:/sbin/nologin:*:17110:0:99999:7:::daemon:x:2:2:daemon:/sbin:/sbin/nologin:*:17110:0:99999:7:::将etc/passwd 按:分隔的第4个字段 与 etc/group的第3个字段 比较,如果相同,则将他两同行数据放在一起[root@izuf6i29flb2df231kt91hz /]# join -t ':' -1 4 /etc/passwd -2 3 /etc/group0:root:x:0:root:/root:/bin/bash:root:x:1:bin:x:1:bin:/bin:/sbin/nologin:bin:x:2:daemon:x:2:daemon:/sbin:/sbin/nologin:daemon:x:4:adm:x:3:adm:/var/adm:/sbin/nologin:adm:x:join: /etc/passwd:6: is not sorted: sync:x:5:0:sync:/sbin:/bin/sync7:lp:x:4:lp:/var/spool/lpd:/sbin/nologin:lp:x:
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 /]# lsb boot dev home info2 lib64 lsrrotaa lsrrotac mnt opt root sbin sys usrbin c etc info lib lost+found lsrrotab media n proc run srv tmp var[root@izuf6i29flb2df231kt91hz /]# cd /[root@izuf6i29flb2df231kt91hz /]# lsb boot dev home info2 lib64 lsrrotaa lsrrotac mnt opt root sbin sys usrbin 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管道命令怎么使用"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
文件
命令
字符
管道
参数
数据
栗子
排序
信息
字段
空格
相同
一行
大小
文字
处理
部分
内容
数字
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会毛军
互联网核心科技是什么
科技信息互联网
金融科技 互联网金融
唐信互联网科技
壕鑫互联网络科技
深圳国际航运科技和互联网
福州新华互联网科技学校 知乎
中化能源互联网科技招聘
崇明区互联网教育科技诚信经营
互联网科技扶贫时间
沐思想互联网科技有限公司
萌小萌互联网科技河南有限公司
保山互联网科技靠谱吗
互联网的科技体现在哪里
互联网科技博主张洲
10位科技互联网大佬
上海互联网科技园景观
互联网高科技绘画
互联网 科技节活动 微视频大赛
互联网科技公司经营范围
互联网下的科技发展
云电互联网科技
互联网 科技服务平台
互联网公司会议桌创意科技软装饰
恒银科技与互联网金融
江阴互联网智能科技产品进口
移动互联网年度科技创新
高科技互联网套路
互联网科技股为什么大涨