N22+张zhangzhang+第5周练习作业

1、显示当前系统上root、fedora或user1用户的默认shell;

[root@zxn ~]# cat /etc/passwd | grep -E "^root\>" | cut -d: -f7
/bin/bash

2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();

cat /etc/rc.d/init.d/functions | grep -E "\<[[:alpha:]]+\>\(\)"
checkpid() {daemon() {killproc() {pidfileofproc() {pidofproc() {status() {success() {failure() {passed() {warning() {action() {strstr() {

3、使用echo命令输出一个绝对路径,使用grep取出其基名;扩展:取出其路径名

取基名

[root@zxn ~]# echo /etc/rc.d/init.d/functions | grep -E -o  "[^/]+/?$"
functions

取路径名:

[root@zxn ~]# echo /etc/rc.d/init.d/functions | grep -E -o  "^/.*/"
/etc/rc.d/init.d/

4、找出ifconfig命令结果中的1-255之间数字;

[root@zxn ~]# ifconfig | grep  -E  --color  "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"
        inet 192.168.1.15  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fec1:ddb3  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c1:dd:b3  txqueuelen 1000  (Ethernet)
        RX packets 30268  bytes 4171288 (3.9 MiB)
        TX packets 4401  bytes 1321341 (1.2 MiB)
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        RX packets 41  bytes 3960 (3.8 KiB)
        TX packets 41  bytes 3960 (3.8 KiB)

5、挑战题:写一个模式,能匹配合理的IP地址;

[root@zxn ~]#  ifconfig |grep -E --color "[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[1-9]{0,1}[0-9]{1,3}"
        inet 192.168.1.15  netmask 255.255.255.0  broadcast 192.168.1.255
        inet 127.0.0.1  netmask 255.0.0.0

6、挑战题:写一个模式,能匹配出所有的邮件地址

[root@zxn ~]# echo "zxn@ncist.edu.cn" | grep -E -o ".*@[[:alnum:]]+.(com|cn|edu.cn)$"
zxn@ncist.edu.cn

7、查找/var目录下属主为root,且属组为mail的所有文件或目录;

[root@zxn ~]# find /var/* -user root -group mail
/var/spool/mail
/var/spool/mail/root
[root@zxn ~]# ls -ld /var/spool/mail/root
-rw-------. 1 root mail 623 9月  10 18:40 /var/spool/mail/root

8、查找当前系统上没有属主或属组的文件;
     进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;

[root@zxn ~]# find  /  \( -nogroup -o -nouser \) -ls
102325563    0 -rw-rw----   1 1002     mail            0 8月 23 23:46 /var/spool/mail/user2102325565    0 -rw-rw----   1 1003     mail            0 8月 23 23:46 /var/spool/mail/user33050125    4 drwx------   5 hadoop   1001         4096 8月 24 00:54 /home/user139252847    0 drwxr-xr-x   4 hadoop   1001           37 8月 14 09:19 /home/user1/.mozilla
[root@zxn ~]# find / \( -nogroup -o -nouser \) -atime -3

9、查找/etc目录下所有用户都有写权限的文件;

[root@zxn ~]# find /etc -perm -222 -type f -ls

10、查找/etc目录下大于1M,且类型为普通文件的所有文件;

[root@zxn ~]# find /etc -size +1M -type f -ls
2287674 6228 -r--r--r--   1 root     root      6376691 8月 14 09:26 /etc/udev/hwdb.bin
102088141 3752 -rw-r--r--   1 root     root      3839718 3月  6  2015 /etc/selinux/targeted/policy/policy.29
101494228 1336 -rw-r--r--   1 root     root      1367395 3月  6  2015 /etc/brltty/zh-tw.ctb

11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;

[root@zxn ~]# find /etc/init.d -perm -113 -ls
33701805    0 lrwxrwxrwx   1 root     root   11 8月 14 09:20 /etc/init.d -> rc.d/init.d

12、查找/usr目录下不属于root、bin或hadoop的文件;

[root@zxn ~]# find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls
921800    4 drwx------   2 polkitd  root  4096 8月 14 09:27 /usr/share/polkit-1/rules.d
34446281   12 -rwsr-sr-x   1 abrt  abrt   11232 3月 24  2015 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache

13、查找/etc/目录下至少有一类用户没有写权限的文件;

[root@zxn ~]# find /etc/ -not -perm -222 -type f -ls
/smartd_warning.sh
36069630    4 -rw-r--r--   1 root     root            1 10月  7  2014 /etc/at.deny
35959044    4 -rw-r--r--   1 root     root         2872 6月 10  2014 /etc/pinforc
35958973    4 -rw-r-----   1 root     root         3181 3月  6  2015 /etc/sudo-ldap.conf

14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;

[root@zxn ~]# find /etc -mtime -7 -not \( -user root -o -user hadoop \)

原创文章,作者:N22-北京-张zhangzhang,如若转载,请注明出处:http://www.178linux.com/45106

(0)
N22-北京-张zhangzhangN22-北京-张zhangzhang
上一篇 2016-09-15 22:21
下一篇 2016-09-15 22:21

相关推荐

  • shell脚本编程之函数

      在编写脚本时经常会遇到某个任务需要重复使用的问题,需每次都要输入同样的代码是件挺烦人的事情,还好可以通过编写函数还简化这项工作。   函数其实就是给一段代码起个名字,在每次使用这段代码的时候可以直接使用函数名来调用就可以了。 一、创建函数   创建函数的格式有两种:   格式1:function 函数名{ &nbs…

    Linux干货 2016-01-05
  • 高阶函数&&装饰器

    Edit 高阶函数&&装饰器 高阶函数 first class object 函数在python中是一等公民 函数也是对象,可调用的对象 函数可以作为普通比变量、参数、返回值 高阶函数 数学概念:y = g(f(x)) 在数学和计算机科学中,高阶函数应当是至少满足下面一个条件的函数 接受一个或多个函数作为参数 输出一个函数,return 函数…

    Linux干货 2017-10-24
  • issue设置和定时关机练习

    /etc/issue内的代码意义 \l 显示第几个终端机接口(tty)\m 显示硬件的等级 (x86_64)\n 显示主机的网络名称 (zcl-domain)\r 操作系统的版本 (2.6.32-642.e16)\t 显示本地端时间的时间(20:22:12) \d显示本地端的日期 (2016-8-5)\s 操作系统的名称(linux)  练习 1,…

    Linux干货 2016-08-05
  • 磁盘管理之swap,移动设备及dd命令的使用

    首先我们来复习一下前一天的内容 CHS Sector(扇区) 512字节 track(磁道) 63个 2^6个扇区 1024个磁道,10个位存储磁道数 track=cylinder(柱面) cylinder=(容量)sector(512)track(63)head(256)=8M head(磁头) 256 8位存储 MBR的分区方式都是基于柱面为整…

    Linux干货 2016-09-07
  • vsftpd基于mysql进行虚拟用户管理

    概述:     FTP是我们日常工作中经常用到的一个服务,但是FTP对用户的管理却比较薄弱,默认状态下,FTP利用pam机制进行账号管理,默认情况下使用的是系统账号,如何提升FTP对用户管理的有效性,针对不同的用户设定不同的上传权限,这就要基于虚拟账号来管理了,本篇就介绍下在vsftpd利用pam机制,结合mysql实…

    Linux干货 2016-10-18
  • 磁盘管理之MBR与GPT分区

    磁盘管理之MBR与GPT分区 2016-08-26 zanghonglei%1 $ S 磁盘管理之MBR与GPT分区 linux下的文件分为常规文件和设备文件,常规文件一定在某一个设备上被存储,不论这个设备是真实的还是虚拟的,这里的设备是linux中vfs层中的设备,也就是设备文件中的设备,vfs层的设备分为字符设备和块设备,字符设备可以类比为一个…

    Linux干货 2016-08-29