Linux学习笔记之管道、重定向与正则表达式

管道:前一个命令的输出,作为后一个命令的输入

命令1 | 命令2 | 命令3| 命令4

#tee  即在显示器显示,又在文件在保存文件

例#echo “hello ,word” | tee /tmp/ hello.out

例#wc -l /etc/passwd | cut -d‘ ‘ -f1

I/O重定向

>     输出重定向 ,覆盖输出

> > 追加输出

#set
-C   禁止对已存在文件使用覆盖重定向,强制覆盖输出,则使用 >|

#set
+C   关闭上述功能

2> :重定向错误输出

2  >> :追加重定向错误输出

例:#ls /varr
> /tmp/var.out 2> /tmp/var.out ,正确输出和错误输出覆盖/tmp/var.out 文件

&>
:重定向标准输出或错误输出至同一文件

<    输入重定向 ,

例:# tr ‘a-z‘
‘A-Z‘ < /tmp

<<      追加输入

例1:#cat
>> /tmp/file.txt <<EOF  :把键盘输入保存到file.txt

例2:#cat <<EOF

d|D  Show delect

U|u   Show UID

EOF            : 把内容信息在脚本中显示出来

正则表达式:Regular Expression ,REGEXP

Basic REGEXP  :基本

Extended REGEXP :扩展

基本正则表达式:

元字符:

.  任意单个字符

示例 #grep ‘r..t’/etc/passwd

*  其前面字符匹配次数

.* 匹配任意长度的任意字符

\? 匹配其前面的字符1次或0次

\{m,n\}  表示其前面的字符至少出现m次,至多出现n次

位置锁定:

^  :锚定行首 ,此字符后面的任意内容必须出现在行首

示例:grep ‘^r..t’ /etc/passwd

$: :锚定行尾,此字符前面的任意内容必须出现在行尾

示例: grep ‘b$‘ /etc/passwd

^$   :空白行

示例:grep
‘[[:digit:]]‘ /etc/inittab

\< 或者\b:表示其后的任意字符必须作为单词首部出现

\> 或者\b : 表示其前面的任意字符必须作为单词的尾部出现

分组

\(\)      
\(ab\) 表示ab一个整体

\1 :表示第一个左括号及与之相对应的右括号之间的内容相匹配

例:#grep `.*\(l..e\) .*  \1’/tmp/

例# grep ‘\([0-9]\).*\1$‘
/etc/inittab

例:#grep ‘^1\([0-9]\):\1.*\1$‘ /etc/inittab

扩展正则表达式:

字符匹配

.  任意单个字符

[] 匹配指定范围内的任意单个字符

[^] 匹配指定范围以外的任意单个字符

次数匹配

*  其前面字符匹配次数

? 匹配其前面的字符1次或0次

+ 匹配其前面的字符至少一次

[m,n] 表示其前面的字符至少出现m次,至多出现n次

锚点字符

^ 锚定行首 ,此字符后面的任意内容必须出现在行首

$  锚定行尾,此字符前面的任意内容必须出现在行尾

\<  表示其后的任意字符必须作为单词首部出现

\>  表示其前面的任意字符必须作为单词的尾部出现

分组

()

\1  \2  
\3

或者

|    :b|a   左边字符或者右边字符

示例:   #grep -E --color
‘^[[:space:]]+ ‘ /boot/grub/grub.conf

时间: 2025-01-14 22:53:20

Linux学习笔记之管道、重定向与正则表达式的相关文章

Linux学习笔记10——管道和重定义

计算机的组成有:运算器,控制器,存储器,输入输出设备.于是就有了地址总线,数据总线,控制总线.事实上在机器里面总线是复用的,一个总线三种功能.地址总线:内存寻址数据总线:传输数据控制总结:控制指令 寄存器:CPU暂时存储器 程序在运行时要从输入设备获取指令,通过输出设备输出作为人机交互.那么系统在什么地方获取输入输出键盘鼠标硬盘还是哪里?那么系统就需要设定默认的输入输出. 系统设定 默认输出设备:标准输出,STDOUT, 1(1为描述符号) 默认输入设备:标准输入, STDIN, 0 标准错误输

Linux学习笔记 -- stdin/stdout 重定向

输入/输出重定向 Linux系统通常从一个叫标准输入的地方读取输入并且将一个命令的结果以写入到标准输出反馈给我们:默认情况下,这也是我们使用的终端(命令行).如果我们想改变输入和输出的方式,就需要使用重定向.通常重定向命令有如下几种方式: 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> file 将输出以追加的方式重定向到 file. n > file 将文件描述符为 n 的

Linux程序设计学习笔记----进程间通信——管道

转载请注明出处: http://blog.csdn.net/suool/article/details/38444149, 谢谢! 进程通信概述 在Linux系统中,进程是一个独立的资源管理单元,但是独立而不孤立,他们需要之间的通信,因此便需要一个进程间数据传递.异步.同步的机制,这个机制显然需要由OS来完成管理和维护.如下: 1.同一主机进程间数据交互机制:无名管道(PIPE),有名管道(FIFO),消息队列(Message Queue)和共享内存(Share Memory).无名管道多用于亲

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

Linux学习笔记033_8文本处理

less: 一次显示不完是可以向上(n),向下翻页(N),并且可以查找:/keyword,v进入编辑器 cat: 一次显示完文本内容 more: 回车向下翻一行,空格向下翻一页,但是不能向上翻页 nl: 显示行号的输出 head: 显示文件的前10行 head -n 15 a: 显示文件a的前15行 tail: 显示文件的最后10行 tail -n 15 a: 显示文件a的后15行 :查看日志的最后10行 :实时显示最后10行,如果没有-f则为静态 :提取11到20行保存在文件中 grep:(正

Redis学习笔记7--Redis管道(pipeline)

redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给client.基本的通信过程如下: Client: INCR X Server: 1 Client: INCR X Server: 2 Client: INCR X Server: 3 Client: INCR X Server: 4

linux学习笔记(3)-文件系统

三大类文件类型 普通文件:包括文本文件.数据文件.可执行的二进制程序文件 目录文件:linux系统把目录看成一种特殊的文件,利用它构成了文件系统的树形结构 设备文件:把设备也看成是一个文件,例如你的鼠标,你的硬盘,等在linux中表现的就是一个文件 文件类型的标识符 前面谈到linux有多种不同的文件类型,对不同的文件处理方式肯定不同,例如对普通文件和对目录文件处理方式肯定是不同的,那么系统有是怎么识别的呢?,在文件属性里分别用不同的编码给他们做标记就行 下面是 不同文件的不同编码 普通文件(-

Linux学习笔记(7)-系统资源查看

监控系统资源:vmstat #vmstat [采样时间] [ 采样次数] 如:#vmstat 3 2 每3秒采样一次,总共采样2次 输出信息各字段解释 r 表示运行队列,如果运行队列多大表示CPU很繁忙 b 表示阻塞的进程 swpd 虚拟内存已使用的大小,如果大于0,表示机器物理内存不足 free 空闲的物理内存大小 buff 缓冲 cache 缓存 si 每秒从磁盘读入虚拟内存的大小 so 每秒从虚拟内存写入磁盘的大小 bi 磁盘的写入速度 bo 磁盘的读速度 id cpu空闲资源所在百分比

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai