一、作业(练习)内容:

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

chmod:修改文件权限

示例:

chmod go=rwx /usr/local/nginx/conf/nginx.conf

chmod a-x /usr/local/nginx/conf/nginx.conf

chmod 777 /usr/local/nginx/conf/nginx.conf


chown:修改文件属主、属组

示例:

chown centos:centos /usr/local/nginx/conf/nginx.conf

chgrp:修改文件属组(chown可以满足修改要求)

umask:遮罩码

新建目录权限为777-umask

新建文件权限为666-umask(若某个用户创建的文件通过算法得出的结果有执行权限,此时会自动让权限+1,默认创建的文件无执行权限)

查看umask码,直接使用umask,root默认umask为0022

linux文本处理三剑客:

grep:文本过滤

sed:文本编辑器(行)

awk:文本报告生成器


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

正则表达式分为基本正则表达式和扩展正则表达式,使用过程中大部分是一样的

元字符:字符不代表其字面意义,而用于表达通配或控制功能。正则表达式在匹配过程中采用的是贪婪模式,即尽可能多的匹配内容

基本正则表达式

常用元字符:

.:匹配任意单个字符

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

[^]:匹配指定范围内的任意字符

.* :任意长度的任意字符

次数匹配:

用于尧指定其次数的字符的后面

* :任意次数

\? :0或1次

\+ :1或多次

\{m\} :精确限制为m次

\{m,n\} :m≤次数≤n

\{0,n\} : 次数≤n

\{m,\} :m≤次数

位置锚定:

^ :行首锚定,用于模式的最左侧

$ :行尾锚定,用于模式的最右侧

\< 或 \b :词首锚定,用于单词的模式左侧

\> 或 \b :词尾锚定,用于单词的模式右侧

^$ :空白行


分组:

分组的小括号中的模式匹配到的内容,会在执行过程中被正则表达式引擎记录下来,并保存内置变量中,这些变量分别是\1 \2 ……

后向引用:

使用变量引用前面的分组括号中的模式所匹配的字符


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

# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
centos:x:500:500::/home/centos:/bin/bash
redhat:x:501:501::/home/redhat:/bin/bash

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

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

20150827-Y1506401-19+benz2015+正则表达式_正则表达式

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

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

20150827-Y1506401-19+benz2015+正则表达式_正则表达式_02

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

grep '^\b\([[:alnum:]].*\)\b.*\1$' /etc/passwd

20150827-Y1506401-19+benz2015+正则表达式_正则表达式_03

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

cat /etc/passwd | grep '^\(\broot\b\|\bcentos\b\|\buser1\b\)'| cut -d: -f1,3,7

20150827-Y1506401-19+benz2015+正则表达式_正则表达式_04

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

cat /etc/rc.d/init.d/functions | grep '[[:alpha:]]\+\>()'

20150827-Y1506401-19+benz2015+正则表达式_正则表达式_05

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

echo /usr/local/tomcat/conf/server.xml | egrep -o '[^/]+/?$'

echo /usr/local/tomcat/conf/server.xml | egrep -o '.*/'

20150827-Y1506401-19+benz2015+正则表达式_正则表达式_06

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

暂无