一、作业(练习)内容:

1、总结本此课程中所涉及命令的使用方法及相关示例展示;

chmod

1.命令解释:

改变文件权限

语法结构:

chmod [OPTION]... MODE[,MODE]... FILE...

       chmod [OPTION]... OCTAL-MODE FILE...

       chmod [OPTION]... --reference=RFILE FILE...

命令选项:  
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

三类:

u: owner

g: group

o: other

a: all

操作指定类别用户的权限:-

u-,g-,o-

ug=,a=

操作某类用户的某些位权限:+|-

u+,g+,o+

u-,g-,o-

使用实例:

修改123.txt文件属组有执行权限:

chmod g+x /tmp/123.txt

20150827 课后训练作业_第1张图片

修改123.txt文件属性为777:

wpsE338.tmp

wpsE339.tmp

chown

1.命令解释:

改变文件的所有者

2.命令参数:

    chown [OPTION]... [OWNER][:[GROUP]] FILE...

    chown [OPTION]... --reference=RFILE FILE...

3.使用实例:

修改/tmp/123.txt文件的属主,属组为hzm组为hzm

chown hzm:hzm /tmp/123.txt

wpsE34A.tmp

wpsE34B.tmp

chgrp

1.命令解释;

改变文件的所属用户组

2.命令语

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

3.使用实例:

将123.txt文件的属组改回root组:

chgrp root 123.txt

wpsE34C.tmp

wpsE34D.tmp

umask

目录:777-umask

文件:666-umask

如果某一类用户的权限减得的结果有执行权限,此时会自动让其权限位加1;

umask UMASK

设定:仅对当前shell进程有效;

wpsE34D.tmp

 

2、总结基本正则表达式及扩展正则表达式

正则表达式:grep: Global search REgular expression and Print out the line.

作用:文本搜索工具,根据用户指定的“模式(pattern)”逐行去搜索目标文本,打印匹配到的行;

模式:由正则表达式的元字符及文本字符所编写的过滤条件;

元字符:字符不表示其字面意义,而用于表示通配或控制功能;

分两类:

基本正则表达式:

   字符匹配:

          . 匹配任意单个字符

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

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

              [0-9],[[:digit:]],[^0-9],[^[:digit:]]

              [a-z],[[:lower:]]

              [A-Z],[[:upper:]]

              [[:space:]]

              [[:punct:]]

              [0-9a-zA-Z],[[:alnum:]]

              [a-zA-Z],[[:alpha:]]

次数匹配:在期望匹配字符后面提供一个控制符,用于表达匹配前面字符指定的次数

     * 任意长度 ,表示0次,1次或多次

     .* 任意长度任意字符 工作于贪婪模式

     \? 匹配其前面的字符 0次或1次,可有可无

     \+ 1次或者多次 意思是前面的字符不能没有,或者多次

     \{m\} 其左侧字符精确匹配m次

     \{m,n\}至少m次,至多n次

     \{m,\} 至少m次 多则不限

   位置锚钉:

     ^ 锚定行首

     $ 锚定行尾

     ^..$ 用模式来匹配整行内容

     ^$ 匹配空白行

    单词锚定:  

      \< 锚钉词首 \b

      \> 锚定词尾 \b

      \  匹配PARTERN 能匹配到的整个单词

  分组:\(\)

        \(\) \1 匹配模式中自左而右,由第一个左括号以及之前对应的右括号中的模式所匹配到的内容

        \(\) \2 匹配模式中自左而右,由第二个左括号以及之前对应的右括号中的模式所匹配到的内容

       注意:分组模式,在末次具体匹配过程中所匹配到的字符,可以被grep记忆(保存于内置的变量中,这些变量是\1,\2 ....),因此,还可以被引用

扩展正则表达式:

      字符匹配:

          .任意长度 ,表示0次,1次或多次

           .* 任意长度任意字符 工作于贪婪模式        

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

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

       次数匹配:

           * 任意次

           ? 匹配其前面的字符 0次或1次,可有可无

           +

           {m}

           {m,}

           {0,n}

        位置锚钉:

            ^

            $

            \<  \>, \b

        分组:

          ()\1      

        或者 

         a|b|c a或者b或者c

               或者两侧所有内容

wpsE34E.tmp

 

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

egrep bash$ /etc/passwd

wpsE34F.tmp

 

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

egrep --color=auto '\<[0-9]{2,3}\>' /etc/passwd

20150827 课后训练作业_第2张图片

 

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

netstat -tan | egrep --color 'LISTEN[[:space:]]+$'    
     
wpsE361.tmp

 

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

egrep "\<([[:alnum:]]+\>).*\1$" /etc/passwd | cut -d: -f 1,7

20150827 课后训练作业_第3张图片

7、显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)

egrep "\" /etc/passwd | cut -d: -f 3,7

wpsE363.tmp

 

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

egrep --color=auto '\<[[:alnum:]]+\>\(\)' /etc/rc.d/init.d/functions

egrep --color=auto '\<[[:alnum:]].*\>\(\)' /etc/rc.d/init.d/functions

egrep --color=auto "\<[[:alnum:]]_?[[:alnum:]].*\>\(\)" /etc/rc.d/init.d/functions


20150827 课后训练作业_第4张图片


20150827 课后训练作业_第5张图片


20150827 课后训练作业_第6张图片


 

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

echo /etc/passwd/ | egrep -o "[[:alnum:]]+\/?$" --color

echo /etc/sysconfig/network-scripts/ifcfg-eth0 | egrep -o "[[:alnum:]]+-[[:alnum:]]+\/?$"


wpsE374.tmp

echo /etc/init.d/iptables/ | egrep -o  "^\/.*\/" | cut -d/ -f 3

wpsE375.tmp

 

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

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

20150827 课后训练作业_第7张图片