linux 迭代修改文件权限,8-27 linux 学习(权限管理,正则表达式)

8-27 Study

1.  学习命令总结:(word写的,格式可能上传时出了点问题)

1.1cut:针对字符串切片操作    sort:排序操作      uniq:去重操作

cut命令:

格式:cutOPTION... [FILE]...

-b:只查找位

-c:只查找字节

-d:设定间隔符

-f:设定选择显示文件项

单文件#;

游离多文件#,#

连续多文件#-#

-n: 不分割复合字符串

sort命令:

格式:sort[OPTION]... [FILE]...

-b:忽略空白行

-d:只排列字符串空白行

-f:忽略大小写

-g:根据文件值来排序

-i:只排序字符串,不包括空白行

-n:根据字符串数值大小比较

-R:根据hash值排序

-r:逆序

uniq命令:

格式:uniq[OPTION]... [INPUT [OUTPUT]]

-c:统计行数

-d:只打印输出重复行,每行只输出一次

-D:

-i:忽略大小写

-s:跳过多少字符进行比较

-u:只显示出现一次的行

例子:

列出当前系统上所有已经登录的用户,多次出现的只显示一次:

9af28e140ed944d57e73914f76f26ebf.png

取出当前shell中被使用最多的shell,并显示取用次数:

2c3f2c4d2469dfff43f32c5b6a14ef54.png

将/etc/passwd中第三个字符段中数值最大的后10个用户信息全部改为大写后保存至/tmp/test/newpasswd中:

38745931885ea7bef0f96357685acbbb.png

1.2alias命令别名:

由于易用性考虑命令执行最好默认带上一些参数,alias可设置命令别名实现此功能,alias查看全部命令别名,unalias 取消命令别名:

截图如下:

alias显示全部命令别名:

c3e8d2e31c73eb871fae0a29d0cbe436.png

alias设定命令别名:

4e886dc6fe4788b26add08796d2b4ff6.png

取消命令别名:

006a220a74a784a45bd3e1e444ae2bfb.png

1.3bash支持三种引用模式:

强引用:’’     强引用中出现的字符只会原意出现

弱引用:”” “”           弱引用中出现变量名会引用其实际值

命令引用:`COMMAND`   $(COMMAND) 调用命令产生结果

1.4:文件通配符:

?:表示任意一个字符

*:表示任意数量任意字符

[]表示范围

[^]:表示范围取反

[:upper:]全部大写字符  [:lower:]全部小写字符  [:digit:]全部数字字符

[:alpha:]全部字母字符  [:alnum:]数字字母字符  [:punct:]符号字符

[:space:]空白字符

查找目录一定要加ls –d /tmp/x*

1.5     文件权限

文件权限主要分为rwx三种,对文件和目录而言三种权限作用不同

对文件而言:

r:读取文件信息

w:更改文件内容

x:将文件提交内核执行权限

对目录而言:

r:读取目录下的文件及子目录信息,不可以使用ls -l

w:创建删除此目录中的文件信息

x:能否进入该目录的权限及ls–l该目录的权限

1.6:用户权限,组权限及其他权限

useradd  用户添加命令   groupadd 用户添加命令   usermod用户属性修改命令

groupmod  组权限修改命令 userdel 用户删除命令   groupdel 组删除命令

useradd 用户添加命令:

格式:  useradd [options] LOGIN

-u  指明uid

-g      指明gid  需事先存在

-G  修改附加组,-a –G为追加附加组

-D     设定默认添加用户设定

-m    强制创建家目录

-M    强制不让创建家目录

-r      指明添加用户为系统用户

groupadd组添加命令:

格式:   groupadd [options] group

-g   指明gid

-h      显示帮组

-p      设定组密码

-r      创建系统组

usermod  用户属性修改命令:

格式:   usermod [options] LOGIN

-a–G  追加附加组

-c        修改注释信息

-s        修改用户指定shell

-d        修改用户指定家目录

-g        修改用户从属组

-G       修改用户附加组

-u        修改用户UID

-L        锁定用户

-U       解锁用户

-l         修改登录名

groupmod  用户组信息修改命令:

格式:   groupmod [options] GROUP

-g      修改GID

-h      显示帮助

-p      设定组密码

-n  修改组名字

userdel–r  删除用户时强制删除其家目录

groupdel   有用户从属于该组则不可以删除

id可查看用户信息

Id    –u仅显示UID

-g仅显示GID

-G显示groups

-n 显示名字而非id

例子:创建用户slackware,其id为2002,基本组为distro,附加组为peguin

4bdac86e596db87f35c547b3400b2171.png

修改slackware默认shell为/bin/tcsh

0048f27525512eeb1f57b3aa83036734.png

为其新增附加组admins:

4c6b20b65cbf5cab544a5f5644732711.png

为slackware添加密码,密码最短使用时间3天,最长180天,警告时间为3天

524a4de1295c22c32dde3378a3940163.png

使用非交互式命令添加用户openstack并添加密码

b540872ade49e50cf607d2dce5da9cac.png

1.7:chown  修改用户权限命令

chown主要用于修改文件rwx权限

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

-R     迭代修改

--reference设定文件权限参考

chown [-R][--reference] [USER][:GROUP] FILE

更改[属主]属组

:GROUP只改属组

用chown修改权限注意不要让文件拥有x权限,这是一件为危险的事

chmod--reference=/tmp/test/new /tmp/test/fstab

参考项           按参考项修改属性

[root@localhost test]# chmod u=rwx,go=rw fstab

[root@localhost test]# ll -d fstab

-rwxrw-rw-. 1 root root 501 Aug 10 06:30 fstab

[root@localhost test]# chmod u-w,g-w,o-w fstab

[root@localhost test]# ll -d fstab

-r-xr--r--. 1 root root 501 Aug 10 06:30 fstab

[root@localhost test]# chmod a+w fstab

[root@localhost test]# ll -d fstab

-rwxrw-rw-. 1 root root 501 Aug 10 06:30 fstab

[root@localhost test]# chmod -x fstab

[root@localhost test]# ll -d fstab

-rw-rw-rw-. 1 root root 501 Aug 10 06:30 fstab

[root@localhost test]# ls -l

total 8

-rw-rw-rw-. 1 root root 501 Aug 10 06:30 fstab

-rw-r--r--. 1 root root 501 Aug 10 06:40 new      ///显示原文件属性信息

[root@localhosttest]# chmod --reference=/tmp/test/new /tmp/test/fstab  //按参考文件修改属性

[root@localhost test]# ls -l

total 8

-rw-r--r--. 1 root root 501 Aug 10 06:30 fstab

-rw-r--r--. 1 root root 501 Aug 10 06:40 new

1.8:umask 遮罩码

umask遮罩码:

文件:666-umask

注意:如果减的结果存在执行权限(umask中存在x权限),则让对应用户权限+1

目录:777-umask

umask NUMBER  设置遮罩码  只对当前shell有效

1.9:正则表达式与扩展正则表达式:

正则表达式:

字数匹配:

.任意单个字符

[]匹配范围内的任意一个字符

[^]匹配范围外的任意一个字符

次数匹配:

*任意个*之前的字符

\{m,n\}:之前字符至少出现m次,至多出现n次

\?:出现0次或1次

\+:至少出现1次

位置锚定:

^行首锚定

$行尾锚定

\

\>单词词尾锚定     \b也可以

\(\)分组:

分组模式中匹配到的具体字符可以被grep记忆,(保存于内置变量中,可以被/1,/2,/3引用)

例: grep “\(a.b\).*\1”:可以查找amb helloamb  不能查找amb hello anb

扩展正则表达式:

扩张正则表达式与正则表达式不同点:

次数匹配:

?表0或1次

+表1或多次

{m}精确匹配m次  即扩张正则表达式不需要转义了

分组()也不需要转义

支持或者  a|b abc|Cba  abc或者Cba

2.作业:

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

54232552861f035c0c7805efff7fb4ba.png

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

92bbafcfeff91b8712136c9aba7d4922.png

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

028f973e751a3fd25d313f735c18883a.png

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

5cb67e82da53b79937a53ad729f9edc4.png

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

101c7ef29ccae951b283028e04980dd7.png

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

1b025bf4a62646819222ba856e2477e6.png

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

4fe33bf231c7c91ae5de6938096d782b.png

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

5f79c13ecde100bc94b7d227022bee23.png

问题:

找出ifconfig命令执行结果中1-255之间的数字,采取如下方式为什么取不出127.192等三位数

a75fea1b13e4e43be911b20ff32ab344.png

使用echo输出一个路径,取出其路径名:未完成,还得理下思路

ce4190cc14b158d742ac9d1fac5bf8bf.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值