首页 > 代码库 > 马哥运维学习作业(五)
马哥运维学习作业(五)
1、显示当前系统上root、fedora或user1用户的默认shell;
[root@C7-1 ~]# useradd fedora #新建用户fedora [root@C7-1 ~]# useradd user1 #新建用户user1 [root@C7-1 ~]# egrep ‘^(root|fedora|user1)\>‘ /etc/passwd | cut -d: -f1,7 #由于(root|fedora|user1)是扩展表达式,所以要使用egrep或grep -E root:/bin/bash fedora:/bin/bash user1:/bin/bash
注:^(root|fedora|user1)\>表示以这三个用户开头的行。cut -d: -f1,7表示以:为分隔符,取第1和第7字段,这二个字段是用户名和shell的。
图示:
2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
[root@C7-1 ~]# egrep -o "^[_[:alpha:]]+\(\)" /etc/rc.d/init.d/functions checkpid() __pids_var_run() ....略
注:根据题目要求,文件中__pids_var_run()也是符合要求的,^[_[:alpha:]]+中,_不能省掉,代表以_或大小写字母开头,+表示前面字符可以出现一次或多次,\(\)是使用转义符来代表小括号()
图示:
3、使用echo命令输出一个绝对路径,使用grep取出其基名;
扩展:取出其路径名
[root@cat ~]# echo "/mnt/sdc" | grep -E "[^/]+$" #行尾的字符串[^/]除了/斜线的任意内容,+代表这个/至少出现1次 /mnt/sdc [root@cat ~]# echo "/mnt/sdc/" | grep -E "[^/]+/?$" #如果sdc后还带一个/,就用/?表示可以出现1次或不出现 /mnt/sdc/ [root@cat ~]# echo "/mnt/sdc" | grep -E -o "[^/]+/?$" | cut -d"/" -f1 #-o只显示匹配的,以/作为分隔符,取第1字段,取出sdc sdc [root@cat ~]# echo "/mnt/sdc/test" | grep -o "/.*/" #取出路径名,"/.*/"表示以/开头后面可出现任意长度任意字符,以/结尾,这样就符合路径名的规则。 /mnt/sdc/
图示:
本文出自 “赵东伟的博客” 博客,请务必保留此出处http://zhaodongwei.blog.51cto.com/4233742/1845603
马哥运维学习作业(五)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。