8.27练习题

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

文件权限管理

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])\>‘

时间: 2024-11-07 20:23:22

8.27练习题的相关文章

10.27练习题 [POI2008]Blockade

10.27练习题 [POI2008]Blockade KONO题面哒! 问题描述 某地区有n个城镇,一些城镇之间由无向边连接.每两个城镇之间至多只有一条直接连接的道路.人们可以从任意一个城镇直接或间接到达另一个城镇.每个城镇都有一个镇长.该地区正在进行镇长互访活动,每个镇长都要拜访其他所有镇长一次. 所以,计划会安排有一共n(n-1)次访问活动. 不幸的是,一个程序员总罢工正在进行中.作为抗议行动,程序员们计划封锁一些城镇,阻止人们进入,离开或者路过那里.他们正在讨论选择哪些城镇会导致最严重的后

【JS学习】慕课网2-7 练习题:制作新按钮,“新窗口打开网站” ,点击打开新窗口。

要求: 1.新窗口打开时弹出确认框,是否打开 提示: 使用 if 判断确认框是否点击了确定,如点击弹出输入对话框,否则没有任何操作. 2.通过输入对话框,确定打开的网址,默认为 http://www.imooc.com/ 3.打开的窗口要求,宽400像素,高500像素,无菜单栏.无工具栏. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title> new document </title> 5 <meta

C#编辑基础笔记

目录 1.     .NET .NET Framework是一种多语言的平台,一种技术. 而c#是基于其上面的一种语言.    1 2.     Winform 桌面应用程序[从.net平台上面开发的]    1 ASP.NET Internet应用程序    1 3.两种架构:    1 4. Visual Studio 也叫Visual Studio.net 简称<VS>    4 5.    解决方案可以有多个项目,    4 6. 快捷键: Ctrl +shift +n 新建项目   

拓展训练

    ◆ 练习题①:            ● 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.    ◆ 习题解答:            ● [email protected] ~]# who            ● root pts/0 2018-03-21 13:35 (10.10.10.1)            ● root :0 2018-03-21 17:12 (:0)            ● root pts/1 2018-03-21

吉萨法律时间浪费拉丝粉;阿里山

http://www.ebay.com/cln/tmotshu/book/157890749018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890755018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890757018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890775018/20

【27】Python100例基础练习题6

例27:题目:用递归的方法将输入的字符,以相反的方式打印出来.程序分析:了解递归特性1.必须有一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧.由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出) 1.递归方法 def bar(s): if len(s)>0: #大于0 print

JAVA 基础编程练习题27 【程序 27 求素数】

27 [程序 27 求素数] 题目:求 100 之内的素数 package cskaoyan; public class cskaoyan27 { @org.junit.Test public void prime() { int mix = 1; int max = 100; for (int i = mix; i <= max; i++) { if (isPrime(i)) { System.out.println(i); } } } private boolean isPrime(int

2015年8月27日--培训作业是几个练习题

今天的天气凉爽,马哥上课讲的也比较多,课后留了几个练习,做下,截图: 1.显示/etc/passwd文件中以bash结尾的行: 2.显示/etc/passwd文件中的两位数或三位数: 3.显示'netstat -tan'命令结果中以'LISTEN'后跟0个.1个或多个空白字符结尾的行:

[Lab4-1]抓路由练习题

[Lab4-1]抓路由练习题 问题1: 用ACL抓取172.18.0.0/16----172.29.0.0/16的路由 答案: 172.16.0.0 0.15.255.255,看上去很完美,但实际上框的范围有些大. R1(f0/0)-(f0/0)R2 R1上的接口地址: R1#sh ip int b Interface IP-Address OK? Method Status Protocol FastEthernet0/0 12.1.1.1 YES NVRAM up up Loopback0