码迷,mamicode.com
首页 > 其他好文 > 详细

8.27练习题

时间:2015-08-30 01:12:08      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:练习题

文件全系管理&正则表达式

文件权限管理

r读4

w写2

x执行1

权限修改命令  chmod

u   user

ggroup

oowner

aall

1、可以使用=来直接指定文件权限

2、可以使用+、来修改文件权限

3、可以使用数字的方法修改权限

技术分享

技术分享

技术分享

技术分享


拥有着权限修改  chown,chgrp

技术分享

技术分享

技术分享

Chown可以同时对属主、属组进行修改,可以替代chgrp


文件遮罩码  umask

目录777-umask

文件666-umask(若减得的结果致使文件有执行权限,则权限自动加1)

修改后仅在当前shell进程生效


基本正则表达式

字符匹配:

.    任意单个字符

[]    中括号中,给出范围的单个字符

[^]   取反,中括号中范围之外的单个字符

[:upper:]    大写字母    A-Z

[:lower:]    小写字母    a-z

[:alpha:]    大、小写字母  a-zA-Z

[:digit:]      数字    0-9

[:alnum:]    数字和大、小写字母    0-9a-zA-Z

[:punct:]    各种标点符号        如‘"!?$等

[:space:]    空白字符,包括tab


次数匹配

*    匹配前面字符任意长度

.*    贪婪匹配,匹配任意长度的任意字符

\?    前面字符可有可无,出现0次或者1次

\+    前面字符出现1次或者多次(至少1次)

\{n\}    前面字符出现n次

\{n,m\}    前面字符出现n-m次,至少n次至多m次

\{n,\}      前面字符出现至少n次,多则不限

\{0,m\}      前面字符出现最多m次,少则不限


位置锚定

^ 锚定行首  ^pattern

$  锚定行尾  pattern$

^$   空白行        ^[[:space:]]*$ 空白行,含空白字符、tab

\<    锚定词首    \<pattern

\>    锚定词尾    pattern\>

     \<pattern\> 锚定整个单词    \<[0-9]\{2\}\> 意思是:整个2位数字的单词(单词不是指自然语言中的单词,而是一连串的字符,不含其他符号)


分组&后向引用

\(\)    把括号中的字符串当作一个整体看待


后向引用,是引用前面括号中的字符,而不是模式

\1  引用从左面数第一个"\("和与之对应的"\)"之间模式所匹配到的值

\2  引用从左面数第二个"\("和与之对应的"\)"之间模式所匹配到的值

……    以此类推

如:amb  test  anb   使用: \(a.b\).*\1  则不能匹配,虽然a.b包括amb和anb,但是前面括号中匹配到的值为amb,所以后面\1引用过来的是amb,而不是a.b这个模式


\  脱意字符

 把一些有特殊含义的符号前加上"\",则把它看作一个普通的字符处理,而失去它原本的特殊含义和作用




扩展正则表达式

字符匹配跟基本正则表达式一样:

.        任意单个字符

[]        中括号中,给出范围的单个字符

[^]      取反,中括号中范围之外的单个字符

[:upper:]        大写字母       A-Z

[:lower:]        小写字母       a-z

[:alpha:]        大、小写字母   a-zA-Z

[:digit:]          数字       0-9

[:alnum:]        数字和大、小写字母       0-9a-zA-Z

[:punct:]        各种标点符号              如‘"!?$等

[:space:]        空白字符,包括tab

 

次数匹配,跟基本正则表达式略有不同,没有了“\”

*        匹配前面字符任意长度

.*        贪婪匹配,匹配任意长度的任意字符

?        前面字符可有可无,出现0次或者1次

+        前面字符出现1次或者多次(至少1次)

{n}        前面字符出现n次

{n,m}        前面字符出现n-m次,至少n次至多m次

{n,}           前面字符出现至少n次

{0,m}           前面字符出现最多m次

 

位置锚定,跟基本正则表达式一样

^  锚定行首   ^pattern

$   锚定行尾    pattern$

^$      空白行              ^[[:space:]]*$  空白行,含空白字符、tab

\<       锚定词首       \<pattern

\>        锚定词尾       pattern\>

 

分组&后向引用,跟正则表达式略有不同,没有了"\"

()       把括号中的字符串当作一个整体看待

 

后向引用,是引用前面括号中的字符,而不是模式

\1    引用从左面数第一个“(”和与之对应的“)”之间模式所匹配到的值

\2    引用从左面数第二个“(”和与之对应的“)”之间模式所匹配到的值

……        以此类推

 

\    脱意字符,与基本正则表达式中相同

    把一些有特殊含义的符号前加上“\”,则把它看作一个普通的字符处理,而失去它原本的特殊含义和作用



|   或者,基本正则表达式中没有的

A|B    A或者B               |整个左侧内容或者|右侧内容的意思

abc|Cba      是abc或者Cba的意思

ab(c|C)ba    是abcba或者abCba的意思


练习一

1、显示/etc/passwd文件中以bash结尾的行

                            grep‘bash$‘ /etc/passwd

2、显示/etc/passwd文件中的两位数或三位数;

                            grep‘\<[[:digit:]]\{2,3\}\>‘ /etc/passwd

3、显示‘netstat -tan‘命令结果中以‘LISTEN’后跟0个、1个或多个空白字符结尾的行;

                            netstat-tan | grep ‘LISTEN[[:space:]]*$‘

4、添加用户bash,testbash,basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名同shell名的行;

                            grep‘^\(\<[[:alnum:]]\+\>\).*\1$‘ /etc/passwd

练习二

1、显示当前系统上root、centos或user1用户的默认的shell和UID;

                            egrep‘^(root|nologin|test)‘ /etc/passwd |cut -d: -f3,7

2、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行;

                     egrep‘\<[[:alnum:]]+_?[[:alnum:]]+\>\(\)‘ /etc/rc.d/

3、使用echo输出一个路径,而后egrep找出其路径基名;进一步地:使用egrep取出其目录名;

基名:    echo/etc/rc.d/init.d/functions/ | egrep ‘[[:alnum:]]+/?$‘ -o |cut -d/ -f1

路径名: ?

 

4、找出ifconfig命令执行结果中1-255之间的数字;

ifconfig | egrep‘\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>‘

 

 

8.27练习题

标签:练习题

原文地址:http://wangkunpeng.blog.51cto.com/1538469/1689632

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!