自己总结的Linux Shell 脚本讲解+示例 精典版

上传人:ali****an 文档编号:119238002 上传时间:2020-01-09 格式:PDF 页数:35 大小:964.23KB
返回 下载 相关 举报
自己总结的Linux Shell 脚本讲解+示例 精典版_第1页
第1页 / 共35页
自己总结的Linux Shell 脚本讲解+示例 精典版_第2页
第2页 / 共35页
自己总结的Linux Shell 脚本讲解+示例 精典版_第3页
第3页 / 共35页
自己总结的Linux Shell 脚本讲解+示例 精典版_第4页
第4页 / 共35页
自己总结的Linux Shell 脚本讲解+示例 精典版_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《自己总结的Linux Shell 脚本讲解+示例 精典版》由会员分享,可在线阅读,更多相关《自己总结的Linux Shell 脚本讲解+示例 精典版(35页珍藏版)》请在金锄头文库上搜索。

1、Linux Shell 脚本讲解脚本讲解+示例示例 精华版精华版 1Vi 编辑器编辑器 向下查找:在 Normal 模式下, “/”+Keyword,如:/tcp 向上查找:在 Normal 模式下, “?”+Keyword,如:?tcp 替换:在 Normal 模式下, “:s”+“/”+Sourceword+“/”+“Destword” ,如: :s/abc/bcd 全部替换:在 Normal 模式下, “:s”+“/”+Sourceword+“/”+“Destword”+“/g” , 如: :s/ad/bc/g 指定范围替换:在“: ”与“s”间加入范围,如“:n1,n5s/abc/dd

2、as/g”替换 1 至 5 行, “:1,$s/abc/ddas/g”替换全部 2Gedit 编辑器编辑器 图形界面编辑器,在命令行输入 Gedit+文件名即可弹出编辑器并打开文件。优点:语法 高亮,操作方便。缺点:要在图形界面下操作,远程连接比较慢。 3罗列文件罗列文件的详细信息的详细信息:ls -l 如:ls -l *.txt 可以列出所有以 txt 为后缀的文件的详细信息 4正则表达式正则表达式 符号 意义 *0 个或多个在* 字符之前那个普通字符 . 匹配任意字符 匹配行首,或后面字符的非 $ 匹配行尾 匹配字符集合 转义符,屏蔽一个元字符的特殊意义 精确匹配符号 n匹配前面字符出现

3、n 次 n,匹配前面字符至少出现 n 次 n,m匹配前面字符出现 n 次与 m 次之间 *符号用于匹配前面一个普通字符的 0 次或多次重复 hel*o: *符号前面的普通字符是 l, *字符就表示匹配 l 字符 0 次或多次, 如字符串 helo、 hello、hellllllo 都可以由 hel*o 来表示 .符号用于匹配任意一个字符 73.表示前面三个字符为任意字符,第 4 和第 5 个字符是 7 和 3,最后一个字符为任 意字符,如 xcb738、4J973U 都能匹配上述字符串 符号用于匹配行首,表示行首的字符是字符后面的那个字符 cloud 表示匹配以 cloud 开头的行 $符号匹

4、配行尾,$符号放在匹配字符之后 a、b、1、2 等字符属于普通字符,普通字符 可以按照字面意思理解,如:a 只能理解为英文的小写字母 a,没有其他隐藏含义。 micky$表示匹配以 micky 结尾的所有行 $ 表示空白行 匹配字符集合,该符号支持穷举方法列出字符集合的所有元素 0123456789、0-9 A-Za-z A-Za-z* 匹配所有英文单词 符号是转义符,用于屏蔽一个元字符的特殊意义 . $ 符号是精确匹配符号,该符号利用符号屏蔽符号 精确匹配单词 the,them, they 等不匹配 系列符号表示前一个字符的重复 n:匹配前面字符出现 n 次 ,如 JO3B 匹配 JOOOB

5、 n,:匹配前面字符至少出现 n 次,如 JO3,B 匹配 JOOOB、JOOOOB、JOOOOOB 等 字符串 n,m:匹配前面字符出现 n 次与 m 次之间,如 JO3,6B 匹配 JOOOB、JOOOOOOB 等字符串 a-z 5: 匹配 5 个小写英文字母,比如 hello、house 等 awk 和 Perl 等 Linux 工具还支持正则表达式扩展出来的一些元字符,这些元字符如下表 所示 符号 意义 ?匹配 0 个或 1 个在其之前的那个普通字符 +匹配 1 个或多个在其之前的那个普通字符 ()表示一个字符集合或用在 expr 中 |表示“或” 意义,匹配一组可选的字符 通配(gl

6、obbing)是把一个包含通配符的非具体文件名扩展到存储在计算机、服务器或 者网络上的一批具体文件名的过程 最常用的通配符包括正则表达式元字符:?、*、等,通配符与元字符意义不完 全相同: *符号不再表示其前面字符的重复,而是表示任意位的任意字符 ?字符表示一位的任意字符 符号在通配中不代表行首,而是代表取反意义 5grep 工具工具 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印 出来,grep 也是 Linux 中最广泛使用的命令之一。 grep 选项 模式 文件,模式可以是字符串,也可以是变量,还可以是正则表达 式,无论模式是何种形式,只要模式中包含空格

7、,就需要使用双引号将模式括起来。模 式代表要搜索的内容。如果没有选项,命令的结果是包含目标内容的行的内容。 选项 意义 -c 只输出匹配行的数量 -i 搜索时忽略大小写 -h 查询多文件时不显示文件名 -l 只列出符合匹配的文件名,而不列出具体匹配行 -n 列出所有匹配行,并显示行号 -s 不显示不存在或无匹配文本的错误信息 -v 显示不包含匹配文本的所有行 -w 匹配整词 -r 递归搜索,不仅搜索当前工作目录,而且搜索子目录 -E 支持扩展的正则表达式 -F 不支持正则表达式,按照字符串的字面意思进行匹配 6POSIX 字符类字符类 为了保持不同国家的字符编码的一致性,POSIX(Porta

8、ble Operating System Interface) 增加了特殊的字符类,以:classname的格式给出,grep 命令支持 POSIX 字符类 类名 意义 :upper: 表示大写字母A-Z :lower: 表示大写字母a-z :digit: 表示阿拉伯数字0-9 :alnum: 表示大小写字母和阿拉伯数字0-9a-zA-Z :space: 表示空格或 Tab 键 :alpha: 表示大小写字母a-zA-Z :cntrl: 表示 Ctrl 键 :graph:或:print: 表示 ASCII 码 33-126 之间的字符 :xdigit: 表示 16 进制数字0-9A-Fa-f

9、Linux 系统支持三种形式的 grep命令, 通常将这三种形式的 grep命令称为 grep命令族, 这三种形式具体为: grep:标准 grep 命令,支持基本正则表达式 egrep:扩展 grep 命令,支持基本和扩展正则表达式,等价于 grep E fgrep:快速 grep 命令,不支持正则表达式,按照字符串的字面意思进行匹配,等价于 grep -F 7sed 工具工具 sed 是流编辑器,可对文本文件和标准输入进行编辑。sed 只是对缓冲区中原始文件的 副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,可以选择使用下面两种 方法:重定向,w 编辑命令。 1命令行中的使用方法:

10、 sed 选项 sed 命令 输入文件 2脚本文件,通过 sed 命令调用的方法:sed 选项 -f sed 脚本文件 输入文件, 该方法脚本文件的首行不以#!/bin/sed -f 开头 3将 sed 命令插入脚本文件后,直接执行该脚本: ./sed 脚本文件 输入文件,该方法 脚本文件的首行是#!/bin/sed f eg: sed -n -e /tcp/p -e /tcp/= type.txt 打印出包含“tcp”所在的行以及其行号,且不打印文件整个文件本身。这个等同于 sed -n -e /tcp/p,= type.txt 选项 意义 -n 不打印所有行到标准输出 -e 表示将下一个字

11、符串解析为 sed 编辑命令,如果只传递一个编 辑命令给 sed,-e 选项可以省略 -f表示正在调用 sed 脚本文件 8sed 命令命令 sed 经常和正则表达式结合使用 选项 意义 p 打印匹配行 = 打印文件行号 a 在定位行号之后追加文本信息 i 在定位行号之前插入文本信息 d 删除定位行 c 用新文本替换定位文本 s 使用替换模式替换相应模式 r 从另一个文件中读文本 w 将文本写入到一个文件 y 变换字符 q 第一个模式匹配完成后退出 l显示与八进制 ASCII 代码等价的控制字符 在定位行执行的命令组 n 读取下一个输入行,用下一个命令处理新的行 h 将模式缓冲区文本拷贝到保持

12、缓冲区 H 将模式缓冲区文本追加到保持缓冲区 x 互换模式缓冲区和保持缓冲区内容 g 将保持缓冲区内容拷贝到模式缓冲区 G 将保持缓冲区内容追加到模式缓冲区 eg: sed -n $p type.txt 打印出 type.txt 文件的最后一行”$”是正则表达式,代表最后 一行。 sed -n 2,10!p type.txt 打印出除第二行到第十行外的所有行。 sed -n /tcp/,$p type.txt 打印出除包含“tcp”的第一行到整个文件的最后一行。 9sed 定位定位文本文本 选项 意义 x x 为指定行号 x,y 指定从 x 到 y 的行号范围 /pattern/ 查询包含模式

13、的行 /pattern/pattern/ 查询包含两个模式的行 /pattern/,x 从与 pattern 的匹配行到 x 号行之间的行 x,/pattern/ 从 x 号行到与 pattern 的匹配行之间的行 x,y! 查询不包括 x 和 y 行号的行 10sed 插入插入/追加文本追加文本 在匹配行前/后面追加文件,一般通过文件完成 eg: 脚本文件 insert.sh 内容如下: #!/bin/sed -f /file:/i We insert a new line 调用命令:./insert.sh type.txt 结果: 在 type.txt 中包含 “file:” 的行的上面加

14、入一行 “We insert a new line” 。 把”/file:/i” 改成“/file:/a”则可以在目标行后追加文本“We insert a new line” 11sed 修改方本修改方本 只需要将上例中的i改成c即可将目标行用脚本里的文本代替 12sed 删除文本删除文本 eg: sed -n /tcp/d type.txt 将 type.txt 文件中包含 tcp 的行删除 13sed 替换文本替换文本 替换用来替换目标字符串,而修改是替换目标字符串所在的行,替换文本的格式为: s/被替换的字符串/新字符串/替换选项 选项 意义 g 表示替换文本中所有出现被替换字符串之处

15、p 与-n 选项结合,只打印替换行 w 文件名 表示将输出定向到一个文件 eg: sed -n s/被替换的字符串/新字符串/p 目标文件。这个与 sed -n y/被替换 的字符串/新字符串/ 目标文件功能类似, 不过 y 命令要求被替换的字符串和新字符串 长度相同,否则报错,而 s 命令无此限制 eg: sed -n s/tcp/udp/w newtype.txt type.txt 将 type.txt 中的 tcp 用 udp 替换, 并 将替换后的行输出到 newtype.txt 文件中 eg: sed -n 1,5 w output.txt input.txt 将 input.txt 文件中的第一行到第五行输 出到 output.txt 文件中 eg: sed -n /tcpdump/ r newtype.txt type.txt 将 newtype.txt 中的内容插入到包 含 tcpdump 的行的后面 14

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号