没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
《Unix Shell 实例精解》学习笔记 By turner
《Unix Shell 实例精解》学习笔记
By
Turner
1
《Unix Shell 实例精解》学习笔记 By turner
第一章 关于 UNIX Shell 的介绍
1. 定义
shell 是一种特殊的程序,被用作用户与内核(kernel)的 UNIX 操作系统核心
通讯。常见的 shell 有 C shell、B shell 和 Korn shell(B shell 的超集)。
2. shell 主要功能
解释交互运行时,在命令行提示下敲入的命令
制订用户环境,通常在 shell 初始化文件中作这种工作。例如:设置终
端键及窗口特征;设置搜索路径、权限、提示等
shell 可以用作解释编程语言。Shell 程序也叫命令表,由再文件中列出
的命令组成。
3. 主要 shell 命令:
who mv rm wc ls cat date at
lpr rsh more awk pwd bc vi finger w
pg find cc cp dd grep ksh sh
ps sed cal lp
2
《Unix Shell 实例精解》学习笔记 By turner
第 2 章 UNIX 工具箱
1.正则表达式
一个正则表达式就是用来在一次搜索中匹配相同字符的一个字符模式。在大
多数程序中,把一个正则表达式封装在正斜杠(/)里。
2.正则表达式元字符
元字符 功能 实例 解释
^ 行开头定位 /^love/ 与所有 love 开头的行匹配
$ 行末尾定位 /love$/ 与所有 love 结尾的行匹配
. 匹配单个字符 /l..e/
与包含一个 l,后跟两个字
符,然后跟一个 e 的行相匹
配
*
跟前驱的 0 个或多
个字符相匹配
/ *love/
跟 0 个或多个空格后面的
love 模式的行相匹配
[]
与其中的一个相匹
配
/[Ll]ove/
与包含 love 或者 Love 的行
匹配
[x-z]
与集中一个范围内
的一个字符相匹配
/[A-Z]ove/
与后面跟 ove 的从 A 到 Z 的
字相匹配
[^]
与不在集里的字符
匹配
/[^A-Z]ove/
不包括 A 到 Z,后面跟 ove
的字相匹配
\ 给一个元字符转移 /love\./
匹配行包括 love,跟一个句
点
许多用 RE 元字符的 UNIX 程序支持的附加元字符(vi 和 grep 支持)
\< 词开头定位 /\<love/
匹配行包含用 love 开头的
词
\> 词结尾定位 /love\>/ 匹配行包含 love 结尾的词
\(..\)
标志与以后用的字
符相匹配
/(love\)able\ler/
Able 可达 9 个标志,模式最
左边用第一个标志开始。例
如,模式 love 保存作标志
l,以后引用作\l;在这个例
子中,搜索模式包括后面跟
lover 的 lovable
x\{m\}
x\{m,\}
x\{m,n\}
字符x重复m次
至少m次
m到n次
O\{5,10\}
如果行包含 5—10 个连续的
o 则匹配
表(2.1)
3.举例
查找文件中的含有 love 的词:
% vi picnic
I had a lovely time on our little picnic. Lovers were all around
us, oh love
:/love/
4.组合正则表达式元字符
文件内容:(数字是行号,竖线标明行的左右边界,不属于文件内容。这个文
3
《Unix Shell 实例精解》学习笔记 By turner
件我写在 shell/exam/exam_2.9 中)
1 |Christian Scott lives here and will put on a Christmas party.|
2 |There are around 30 to 35 people invited.|
3 |They are: |
4 | Tom|
5 |Dan|
6 | Rhonda Savage|
7 |Nicky and Kimerly.|
8 |Steve, Suzanne, Ginger and Larry.|
组合举例:
/^[A-Z]..$/
搜索行以A至Z的一个字母开头,然后跟两个任意字母,然后跟一
个换行符的行。将找到第 5 行。
/^[A-Z][a-z]*3[0-5]/
搜索以一个大写字母开头,后跟 0 个或多个小写字母,再跟数字 3,
再跟 0—5 之间的一个数字。
/^ *[A-Z][a-z][a-z]$/
搜索以 0 个或多个空格开头,跟一个大写字母,两个小写字母和一
个换车符。将找到第 4 行的 TOM(整行匹配)和第 5 行。注意,*前
面有一个空格。
/^[A-Za-z]*[^,][A-Za-z]*$/
将查找以 0 个或多个大写或小写字母开头,不跟逗号,然后跟 0 个
或多个大写或小写字母,然后跟一个换车符。将找到第 5 行。书中
解释有误。
5.更多的正则表达式元字符
这里讨论的元字符不一定可以移植到所有的正则表达式中,但一般可以用在
vi、sed 和 grep 中。
% vi textfile
Patty won fourth place in the 50 yard dash square and fair.
Occurences like this are rare.
Haha, what you want is just fourth.
~
~
:/\<fourth\>/
将查找词 fourth
4
《Unix Shell 实例精解》学习笔记 By turner
第 3 章 grep 家族
1.grep 的含义是“全局搜索正则表达式(RE)并打印该行”
2.grep 支持的正则表达式
与在文件中搜索基本一样。可以参考表 2.1。
3.grep 的选项
选项 功能
-b 在各行之前放置它发现的块号。有时在根据上下文定位磁盘字块时有用
-c 显示匹配行数而不是内容
-h 不显示文件名
-I 在座比较时忽略字母大小写
-n 文件中每行之前给出它的相关行号
-s 无声操作。即除了错误消息外不做任何显示。用于检查退出状态
-v 把搜索翻转为只显示不匹配的行
-w 把表达式当作一个次来搜索,相当于用\<和\>括起来
表 3.1
4.grep 命令的退出状态
如果 grep 操作成功,则状态是 0,如果模式没找到,状态是 1,如果文件没
找到,状态是 2。如果操作被取消,则状态是 130。查看状态的方法:在 csh
中用 echo $status。在 sh 和 ksh 中用 echo $? 。例如
$ echo $?
0
5.带正则表达式的 grep 举例:
用于这些例子的文件叫 datafile,位于 chap03 目录。内容如下:
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
1) grep NW datafile
解释:打印 datafile 中包含 NW 的行
2) grep NW d*
解释:打印所有以 d 开头的文件中含有 NW 的文件。
3) grep '^n' datafile
解释:打印文件 datafile 中所有以字母 n 开头的行
4) grep TB Savage datafile
解释:在 Savage 和 datafile 文件中查找有 TB 的行
5) grep 'TB Savage' datafile
解释:在 datafile 文件中查找含有 TB Savage 的行并打印。这个例子在
5
剩余30页未读,继续阅读
资源评论
- ZJH11152014-07-25文不对题啊,我还以为是书呢,结果是学习笔记。。。
flexone
- 粉丝: 5
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功