一、作业(练习)内容:
1、总结本此课程中所涉及命令的使用方法及相关示例展示;
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
修改123.txt文件属性为777:
1.命令解释:
改变文件的所有者
2.命令参数:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
3.使用实例:
修改/tmp/123.txt文件的属主,属组为hzm组为hzm
chown hzm:hzm /tmp/123.txt
1.命令解释;
改变文件的所属用户组
2.命令语
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
3.使用实例:
将123.txt文件的属组改回root组:
chgrp root 123.txt
目录:777-umask
文件:666-umask
如果某一类用户的权限减得的结果有执行权限,此时会自动让其权限位加1;
umask UMASK
设定:仅对当前shell进程有效;
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
\<PARTTERN\> 匹配PARTERN 能匹配到的整个单词
分组:\(\)
\(\) \1 匹配模式中自左而右,由第一个左括号以及之前对应的右括号中的模式所匹配到的内容
\(\) \2 匹配模式中自左而右,由第二个左括号以及之前对应的右括号中的模式所匹配到的内容
注意:分组模式,在末次具体匹配过程中所匹配到的字符,可以被grep记忆(保存于内置的变量中,这些变量是\1,\2 ....),因此,还可以被引用
扩展正则表达式:
字符匹配:
.任意长度 ,表示0次,1次或多次
.* 任意长度任意字符 工作于贪婪模式
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
次数匹配:
* 任意次
? 匹配其前面的字符 0次或1次,可有可无
+
{m}
{m,}
{0,n}
位置锚钉:
^
$
\< \>, \b
分组:
()\1
或者
a|b|c a或者b或者c
或者两侧所有内容
3、显示/etc/passwd文件中以bash结尾的行
egrep bash$ /etc/passwd
4、显示/etc/passwd文件中的两位数或三位数
egrep --color=auto ‘\<[0-9]{2,3}\>‘ /etc/passwd
5、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行.
netstat -tan | egrep --color ‘LISTEN[[:space:]]+$‘
6、添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行.
egrep "\<([[:alnum:]]+\>).*\1$" /etc/passwd | cut -d: -f 1,7
7、显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
egrep "\<root|centos|user1\>" /etc/passwd | cut -d: -f 3,7
8、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
egrep --color=auto ‘\<[[:alnum:]]+\>\(\)‘ /etc/rc.d/init.d/functions
9、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
echo /etc/passwd/ | egrep -o "[[:alnum:]]+\/?$" --color
echo /etc/init.d/iptables/ | egrep -o "^\/.*\/"
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
原文地址:http://houzhimeng.blog.51cto.com/3938990/1689572