管道命令
选取命令:cut,grep
排序命令:sort,wc,uniq
双重数据量:tee
字符转换命令:tr,expand,col
切割命令:split
参数代换:xargs
管道命令与连续命令不同,连续命令中的各个命令不存在相关性只是顺序执行。
对于管道命令来说cmd1|cmd2.
cmd2需要cmd1产生的输出流作为cmd2的输入流,命令之间存在很强的依赖关系,并且管道命令只能处理正确的输出数据流
选取命令
cut
从某一行将一段信息切出来
语法:cut –d ‘分割字符’ -f field
cut –c 字符范围
选项与参数:
-d:后接分割字符与-f连用
-f:获取经-d分割后的第几个字段
-c:以字符的单位取出固定字符区间,适用于排列正确的信息
选取范围a-b 如果是从第a个字符到最后可写成a-
说明:cut可以进行单行与多行分割,对于多行每一行都看做单独的一行分割与获取field
举例1:单行分割
[root@localhost ~]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin [root@localhost ~]# echo $PATH |cut -d ':' -f 1 /usr/kerberos/sbin [root@localhost ~]# echo $PATH |cut -d ' /usr/kerberos/sbin:/usr/local/sbin
举例2:多行分割
[root@localhost ~]# last -5 root pts/1 :0.0 Wed Mar 5 09:41 still logged in root :0 Wed Mar 5 09:40 still logged in root :0 Wed Mar 5 09:40 - 09:40 (00:00) reboot system boot 2.6.18-371.el5 Wed Mar 5 09:20 (05:08) root pts/1 :0.0 Tue Mar 4 15:27 - crash (17:53) [root@localhost ~]# last -5|cut -d ' ' -f 1 root root root reboot root
举例3:范围选取
[root@localhost ~]# export declare -x COLORTERM="gnome- declare -x DBUS_SESSION_BUS_ declare -x DESKTOP_SESSION=" declare -x DESKTOP_STARTUP_I declare -x DISPLAY=":0.0" [root@localhost ~]# export|cut -c 12- COLORTERM="gnome-terminal" DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-OeMZpvhP93,guid=30f2d841bcc5b92980611600531680a3" DESKTOP_SESSION="default" DESKTOP_STARTUP_ID="" DISPLAY=":0.0"
grep
分析一行信息,若当中存在我们需要的信息,则将该行输出,grep后还可接正则表达式或通配符进行查询。
语法:grep [-acinv] [-A] [-B] [--color=auto] ‘查找字符串’ filename
选项与参数:
-a:将binary文件以text文件方式查找数据
-c:计算‘查找字符串’次数
-i:忽略大小写
-n:输出行号
-v:反向选择
-A:后面可跟数字,代表除了本行外,后续的n行也都列出来
-B: 后面可跟数字,代表除了本行外,前面的n行也都列出来
--color=auto: 关键字部分添加颜色
举例:
[root@localhost ~]# last -3|grep 'root' root pts/1 :0.0 Wed Mar 5 09:41 still logged in root :0 Wed Mar 5 09:40 still logged in root :0 Wed Mar 5 09:40 - 09:40 (00:00) [root@localhost ~]# last -5|grep -vn 'root' 4:reboot system boot 2.6.18-371.el5 Wed Mar 5 09:20 (05:33) 6: 7:wtmp begins Fri Feb 14 10:32:51 2014 [root@localhost ~]# last |grep -c 'root' 84 [root@localhost ~]# last -5|grep -n 'roo*' = >通配符查找 1:root pts/1 :0.0 Wed Mar 5 09:41 still logged in 2:root :0 Wed Mar 5 09:40 still logged in 3:root :0 Wed Mar 5 09:40 - 09:40 (00:00) 5:root pts/1 :0.0 Tue Mar 4 15:27 - crash (17:53)
排序命令
sort
sort可以按照不同的数据类型来排序,例如按数字或文字排序,排序结果也受语系编码的影响,例如有的语系字符是这么排序的AaBbCc….建议语系使用LANG=C
语法:sort [-fbMnrtuk]文件或输入流
选项与参数:
-f:忽略大小写
-b:忽略最前面的空格
-M:以月份(英文)来排序
-r:反向排序
-t:分隔符与-k连用
-u:就是uniq
-k:以那个field的进行排序
举例1:
[root@localhost ~]# cat /etc/passwd |sort - avahi:x:70:70:Avahi daemon:/:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin cimsrvr:x:100:500:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
举例2:用‘:’分割第三段进行排序
[root@localhost ~]# cat /etc/passwd |sort -t ':' -k 3 root:x:0:0:root:/root:/bin/bash cimsrvr:x:100:500:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin luci:x:101:101::/var/lib/luci:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
uniq
将重复的数据仅列出一列
语法:uniq [-ic]
选项与参数:
-i:忽略大小写
-c:进行计数
举例:
[root@localhost ~]# last|cut -d ' ' -f 1 |sort|uniq -c|sort -n 1 wtmp 3 tkf 26 reboot 84 root => last|cut -d ' ' -f 1 |sort 截取登录名并排序 => uniq -c删除重复列,并计数 =>sort –n 按照计数排序
wc
wc可以帮助我们统计文件字符信息
语法:wc [lwm]
选项与参数:
-i:仅列出行
-w:仅列初子
-m:字符数
举例:
[root@localhost ~]# wc /etc/man.config 141 722 4617 /etc/man.config [root@localhost ~]# cat /etc/man.config |wc 141 722 4617 =>分别代表行数,字数,字符数
双重数据流(tee)
前面提到输出数据流介质可以是设备或文件,但数据流只能被一个介质全部接收,那么如果希望数据可以被2个介质接收就需要使用双重数据流,简单的说,如果你既想将输出数据流保存到文件也想同时控制台也会显示,那你就需要使用这个了
语法:tee [-a] file
选项与参数:-a:以累加的方式进行添加
举例
[root@localhost ~]# export|tee export.list|cut -c 12- COLORTERM="gnome-terminal" DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-OeMZpvhP93,guid=30f2d841bcc5b92980611600531680a3" DESKTOP_SESSION="default" [root@localhost ~]# vim export.list declare -x COLORTERM="gnome-terminal" declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-OeMZpvhP93,guid=30f2d841bcc5b92980611600531680a3" declare -x DESKTOP_SESSION="default"
字符转换命令
tr
tr可以用来删除和替换一些文字信息
说明,tr只是改变输出内容,并不会真正去修改文件的内容
语法:tr –d ‘字符’
tr –s ‘原字符’‘替换字符’
选项与参数:
-d:删除
-s:替换
举例:
trfile文件内容 abcdefgh abcdefgh abcdefgh [root@localhost ~]# cat trfile |tr -s 'b' 'B' =>替换 aBcdefgh aBcdefgh aBcdefgh [root@localhost ~]# cat trfile |tr -d 'b' =>删除 acdefgh acdefgh acdefgh =>操作结束后trfile文件内容不会有任何改变
col
col主要将一些特殊字符进行转换
语法:col [-xb]
选项与参数:
-x:将tab键转成相应的空格
-b:在文字内有反斜杠,仅保留反斜杠后面接的那个字符
举例1:去掉反斜杠(^H)
[root@bogon ~]# man col > /root/col.man [root@bogon ~]# cat -A /root/col.man|more N^HNA^HAM^HME^HE$ c^Hco^Hol^Hl - filter reverse line feeds from input$ [root@bogon ~]# man col |col -b > /root/col.b.man [root@bogon ~]# cat -A /root/col.b.man|more col - filter reverse line feeds from input$
举例2:将TAB转换为空格 (^I)
[root@bogon ~]# cat -A /etc/man.config|more # MANPATH^I/opt/*/man$ # MANPATH^I/usr/lib/*/man$ # MANPATH^I/usr/share/*/man$ # MANPATH^I/usr/kerberos/man$ [root@bogon ~]# cat /etc/man.config |col -x > /root/man.tab.config [root@bogon ~]# cat -A /root/man.tab.config|more # MANBIN pathname$ # MANPATH manpath_element [corresponding_catdir]$ # MANPATH_MAP path_element manpath_element$
expand
将[tab]按键转为空格键
语法:expand [–t] file
选项与参数:
-t:[tab] 按键替换多少个空格字符
举例
[root@localhost ~]# grep '^MANPATH' /etc/man.config |head -n 3|cat -A MANPATH^I/usr/man$ MANPATH^I/usr/share/man$ MANPATH^I/usr/local/man$ [root@localhost ~]# grep '^MANPATH' /etc/man.config |head -n 3|expand -6|cat -A MANPATH /usr/man$ MANPATH /usr/share/man$ MANPATH /usr/local/man$
切割命令(split)
语法:split [-bl] file PREFIX
选项与参数:
-b:后面可接欲切割的文件大小
-1:以行数进行切割
PREFIX:切割后文件的前导符
举例1:切割文件
[root@localhost ~]# ll -h /etc/termcap -rw-r--r-- 1 root root 789K 2007-01-07 /etc/termcap [root@localhost ~]# split -b 300k /etc/termcap newter [root@localhost ~]# ll -h newter* -rw-r--r-- 1 root root 300K 03-06 09:56 newteraa -rw-r--r-- 1 root root 300K 03-06 09:56 newterab -rw-r--r-- 1 root root 189K 03-06 09:56 newterac
举例2 :合成文件
[root@localhost ~]# cat newter* >> termap-back [root@localhost ~]# ll -h termap-back -rw-r--r-- 1 root root 789K 03-06 10:02 termap-back
参数代换(xargs)
参数代换的作用:
1. 作为某些指令的参数。比如which, finger ,find ,whereis 等
2. 作为某些不支持管道命令的输入数据流
语法:xargs [-epn] command
选项与参数:
-e:就是EOF的意思,后面可接一个字符串,当分析到这个字符串时,就会停止继续工作
-p:在执行每个参数时,都会询问用户
-n:后面接次数,执行command的次数
举例1:指令参数
[root@localhost ~]# cat ./xargsfile cd ll grep [root@localhost ~]# cut -d ' ' -f 1 ./xargsfile|xargs whereis cd: /usr/share/man/man1p/cd.1p.gz /usr/share/man/man1/cd.1.gz ll: grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz
举例2:作为输入数据流
[root@localhost ~]# find /sbin/ -perm +7000|ls -l 总计 227644 -rw------- 1 root root 1377 02-14 10:29 anaconda-ks.cfg drwxr-xr-x 2 root root 4096 02-21 13:30 Desktop ……. =>ls 不支持管道命令,一次查询的结果是~/下的内容 [root@localhost ~]# find /sbin/ -perm +7000|xargs ls -l -rwsr-xr-x 1 root root 73108 10-02 05:10 /sbin/mount.nfs -rwsr-xr-x 1 root root 73112 10-02 05:10 /sbin/mount.nfs4 ….. =>将find查询到的内容作为输入数据流供ls使用
相关推荐
【linux学习笔记--17】POSIX IPC——消息队列.doc 【linux学习笔记--18】POSIX IPC——信号量.doc 【linux学习笔记--19】...【linux学习笔记-5】编写自己的ls命令.doc 【linux学习笔记-6】文件IO操作--读写、重定向等.
【linux学习笔记-5】编写自己的ls命令 【linux学习笔记-6】文件IO操作--读写、重定向等 【linux学习笔记-7】用户标识UID与有效用户标识EUID 【linux学习笔记-8】Linux进程相关系统调用(1) 【linux学习笔记-9】...
平时使用linux习惯了,管道命令是使用非常高频的,使用cmd也是想要,但是平时使用很少所以就忘记了,这里做个笔记。分享给大家。 Windows cmd 管道过滤命令findstr 学习文档 findstr命令类似于linux中的grep命令。 ...
Linux基本命令笔记 用户管理,管道和重定向,文件权限
主要教大家如何使用Linux命令写出Shell脚本。涉及Linux管道,常用的字符处理cat、grep、tail、echo等命令。同时介绍了环境、作用域、流程控制、Shell脚本的建立与执行等。并赋上了相关的案例。
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...
今天来写一篇关于学习Linux基础命令——重定向与管道符命令的文章,也实践了很多,总结给大家一起学习! 重定向 输入重定向是指把文件导入命令中; 输出重定向是指把原本输出到屏幕上的信息写入指定的文件中;(输出...
一、基本命令----------------------------------------------------------------------------------------- 1.显示文件名字 2.显示文本文件内容 3.删除文件 4.显示系统名字 5.关机或者重启-------------------...
linux 相关学习记录: ls -l 获得当前目录下的所有文件 2、cd 获得指定文件目录位置 3、pwd 获得当前目录位置 4、touch 在指定目录下生成一个空文件 5、cp 将某个文件复制到目标文件 mv 改变文件名或移动文件 rm ...
2.8 管道相关命令 2.8.1 grep 2.8.2 echo 2.8.3 &&和 || 2.8.4 软硬连接 2.8.5 cut命令 2.8.6 sort命令 2.8.7 wc命令 2.8.8 uniq命令 2.8.9 tee命令 2.8.10 tr命令 2.8.11 split命令 2.8.12 awk命令
这个是我在学习Linux的时候做的思维导图笔记,主要是Linux的一些基础知识。免费提供下载,学习分享。 该文档分为以下几个部分: 1.shell语法:包含格式化输入输出、数组定义、变量定义方法、运算方法、流程控制、...
Linux操作之输入输出重定向和管道 作者:佚名 出处:中国自学编程网收集整理 发布日期:2008-07-12 Unix下使用标准输入stdin和标准输出stdout,来表示每个命令的输入和输出,还使用一个标准错误输出stderr用于...
第1章 BashShell命令 6 1.1 Shell提示符 6 1.2 文件与目录Shell命令 7 1.2.1 更改目录命令(cd) 7 1.2.2 列表命令(ls) 7 1.2.3 操作文件命令 10 1.2.4 目录处理命令 14 1.2.5 查看文件内容命令 15 1.3 监控程序 20 ...
命令历史记录(Command history)和别名 重定向和管道 改变提示符 进程控制(Job control) 如何用户化配置你的bash shell 另外你还将看到一些最常用的bash命令和内存变量的用法,读完本文后你将能更快和更有效地...
11.1.2 假脱机程序“管道工程” 237 11.1.3 术语定义 240 11.2 打印机类型 242 11.3 连接类型 243 11.3.1 本地串行打印 244 11.3.2 本地USB打印 246 11.3.3 本地并行打印 249 11.3.4 远程打印 249 ...
命令行 68 6.1 BASH简介 68 6.1.1 作业控制 69 6.1.2 环境变量 69 6.1.3 管道 70 6.1.4 重定向 70 6.1.5 BASH的命令行快捷键 71 6.2 文档工具 72 6.2.1 man命令 72 6.2.2 texinfo系统 73...
第二部分 学习Linux操作系统的基本命令 第4学时 阅读与浏览命令 46 4.1 使用man命令获取帮助 46 4.2 浏览及搜索文件系统 48 4.2.1 使用cd命令进入不同的目录 48 4.2.2 使用pwd命令查看自己所在的位置 48 4.2.3 使用...