一、作业(练习)内容:
1、总结本此课程中所涉及命令的使用方法及相关示例展示;
修改文件权限:chmod,主要是操作三类用户的权限
(root用户都可操作,普通用户只能操作自己的属主文件权限)
三类:
u: owner
g: group
o: other
a: all
文件的三类权限一起修改:chmod [OPTION]... MODE[,MODE]... FILE...
chmod 八进制数字 文件
chmod 650 文件:修改文件的权限为650
chmod 650 目录:修改目录本身的权限为650(不修改目录下的文件和子目录的权限)
-R: recursive 递归修改, 一般不常用
如: chmod - R 650 目录:修改目录及目录下的文件、子目录的权限都为650
操作文件的指定类别用户权限: chmod [OPTION]... OCTAL-MODE FILE....
chmod u=rwx,g=-wx,o=r-x/ug=rx/go=r--/a=r-x 文件:修改文件属主、属组的权限
{u,g,o,a}={---,--x,-w-,-wx,r--,r-x,rw-,rwx }
{u,g,o,a}={ ,x,w,wx,r,rx,rw,rwx, }
( rw-=rw,r--=r,r-x=rx)
-R: recursive:目录的递归修改
操作文件的某类用户的某位或者某些位的权限
chmod u-r,g-w,o-x/a-x/a-r/ug-r/go-w 文件:修改文件属主、属组的某一项权限
chmod {u,g,o,a}+{r,w,x }:有某一项权限
chmod {u,g,o,a}-{r,w,x }:没有某一项权限
chmod {+,-}{r,w,x }=chamod a{+,-}{r,w,x }(a可省略)
-R: recursive
注意:在Centos7中,chmod +w 文件A:只能修改文件A属主有w的权限
引用性修改:修改目标文件权限与某一文件权限一致
chmod [OPTION]... --reference=RFILE FILE
chmod --reference=A B:将B文件的权限修改同A文件权限一致
-R: recursive :递归修改
chown:修改文件属主:只有管理员有权限操作
chown 用户A 文件B:将文件B的属主改为用户A
chown :组C 文件D:将文件D的属组改为组C
chown .组C 文件D:将文件D的属组改为组C
chown 用户A:组C 文件D:将文件D的属主改为A,属组改为组C
chown 用户A.组C 文件D:将文件D的属主改为A,属组改为组C
chown --reference=文件A 文件B 文件C :将文件B,文件C的属主、属组改为与文件A一致 -R: recursive:递归修改
chgrp:修改文件属组:只有管理员有权限操作
chgrp 组A 文件B:将文件B的属组改为组A
umask:遮罩码
用户创建目录或文件默认的权限为:
目录:777-umask
文件:666-umask
如果某一类用户的文件权限减得的结果有执行权限,此时会自动让其权限位加1;
umask:直接查看当前用户的umask码
umask UMASK:修改用户的umask码,仅对当前shell进程有效;
2、总结基本正则表达式及扩展正则表达式
基本正则表达式:
字符匹配:
·:匹配任意单个字符
[] :匹配指定范围内的任意单个字符
[^] :匹配指定范围外的任意单个字符
数字: [0-9],[[:digit:]],
小写字母: [a-z],[[:lower:]]
大写字母:[A-Z],[[:upper:]]
所有字母:[[:alpha:]]
所有字母数字:[[:alnum:]]
空白字符: [[:space:]]
标点符号: [[:punct:]]
[^0-9],[^[:digit:]]
[aA]b:ab或者Ab
次数匹配:在期望匹配字符后面提供一个控制符,用于表达匹配前面字符指定的次数
* :任意长度
\?: 匹配其前面的字符 0次或1次,
\+ :1次或者多次 ,至少一次
\{m\} :其左侧字符精确匹配m次,
\{m,n\}:至少m次,至多n次
\{m,\}:至少m次 多则不限
·* :任意长度任意字符 工作于贪婪模式
位置锚钉:
^: 行首锚定;用于模式的最左侧;
$:行尾锚定;用于模式的最右侧;
^ $:用模式来匹配整行内容
\<, \b: 词首锚定;用于表示单词的模式的左侧;
\>, \b:词尾锚定;用于表示单词的模式的右侧;
\<PARTTERN\> 匹配PARTERN 能匹配到的整个单词
^$ :匹配空白行
^[[:space:]]*$:包含空包字符的空白行
分组:\(\)
分组模式,在末次具体匹配过程中所匹配到的字符,可以被grep记忆(保存于内置的变量中,这些变量是\1,\2 ....),可使用变量引用前面的分组括号中的模式所匹配到的字符;
\(\) \1 匹配模式中自左而右,由第一个左括号以及之前对应的右括号中的模式所匹配到的内容
\(\) \2 匹配模式中自左而右,由第二个左括号以及之前对应的右括号中的模式所匹配到的内容
\· :表示标点符号·,不表示元字符
扩展正则表达式:
字符匹配:
·:任意长度 ,表示0次,1次或多次
[] :匹配指定范围内的任意单个字符
[^] :匹配指定范围外的任意单个字符
次数匹配:
*:任意次
?:匹配其前面的字符 0次或1次,可有可无
+:至少1次
{m}:m次
{m,}:至少m次
{0,n}:之多n次
·* :任意长度任意字符 工作于贪婪模式
位置锚钉:
^: 行首锚定;用于模式的最左侧;
$: 行尾锚定;用于模式的最右侧;
^ $:用模式来匹配整行内容
\<, \b: 词首锚定;用于表示单词的模式的左侧;
\>, \b:词尾锚定;用于表示单词的模式的右侧;
\<PARTTERN\> 匹配PARTERN 能匹配到的整个单词
^$ :匹配空白行
^[[:space:]]*$:包含空包字符的空白行
分组:()
可使用变量引用前面的分组括号中的模式所匹配到的字符;
( ) \1 匹配模式中自左而右,由第一个左括号以及之前对应的右括号中的模式所匹配到的内容
() \2 匹配模式中自左而右,由第二个左括号以及之前对应的右括号中的模式所匹配到的内容
或者:a|b
aC|catb: 表示aC或者catb
a(C|c)atb:表示aCatb或者acatb
\(\):表示符号(),不表示元字符
3、显示/etc/passwd文件中以bash结尾的行
4、显示/etc/passwd文件中的两位数或三位数
5、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
6、添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
7、显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
8、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
9、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
10、找出ifconfig命令执行结果中1-255之间的数字