您的位置:首页 > 运维架构 > Linux

8-27 linux 学习(权限管理,正则表达式)

2015-09-01 14:53 567 查看
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:只显示出现一次的行例子: 列出当前系统上所有已经登录的用户,多次出现的只显示一次:



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



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



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

alias设定命令别名:

取消命令别名:


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




修改slackware默认shell为/bin/tcsh




为其新增附加组admins:



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




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




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 new1.8:umask 遮罩码
umask遮罩码: 文件:666-umask 注意:如果减的结果存在执行权限(umask中存在x权限),则让对应用户权限+1 目录:777-umask umask NUMBER 设置遮罩码 只对当前shell有效

1.9:正则表达式与扩展正则表达式:
正则表达式:
字数匹配:
.任意单个字符
[]匹配范围内的任意一个字符
[^]匹配范围外的任意一个字符

次数匹配: *任意个*之前的字符
\{m,n\}:之前字符至少出现m次,至多出现n次
\?:出现0次或1次
\+:至少出现1次

位置锚定:
^行首锚定
$行尾锚定
\<单词词首锚定 \b也可以
\>单词词尾锚定 \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结尾的行


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


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


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




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




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


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





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




问题:

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




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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息