Linux中正则表达式及find指令的使用

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

[root@centos6 ~]# grep -E "^\<(root|fedora|user1)\>" /etc/passwd
root:x:0:0:root:/root:/bin/bash
fedora:x:501:501::/users/fedora:/bin/bash

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

[root@centos6 ~]# grep -E "\<[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions 
checkpid() {
daemon() {
killproc() {
pidfileofproc() {
pidofproc() {
status() {
success() {
failure() {
passed() {
warning() {
action() {
strstr() {
confirm() {

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

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

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

[root@centos6 ~]# ifconfig | grep -oE "([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
29
85
5
192
168
153
137
192
168
153
255
255
...

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

[root@centos6 ~]# ifconfig | grep -oE "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>\.(\<([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>\.){2}\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\>"
192.168.153.137
127.0.0.1

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

[root@centos6 ~]# grep -E "\<[[:alnum:]][[:alnum:]_]+[[:alnum:]]\>@[[:alnum:]]+(\.[[:alpha:]]+)+" /tmp/mail.txt 
lucklyme@163.com
liubin3@snpec.com.cn
313124417@qq.com

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

[root@centos6 ~]# find /var -user root -group mail -ls
3015344    4 drwxrwxr-x   2 root     mail         4096 Oct 24 02:41 /var/spool/mail

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

[root@centos6 ~]# find / \( -nouser -o -nogroup \) -atime -3
find: `/proc/4412/task/4412/fd/5': No such file or directory
find: `/proc/4412/task/4412/fdinfo/5': No such file or directory
find: `/proc/4412/fd/5': No such file or directory
find: `/proc/4412/fdinfo/5': No such file or directory
/etc/a

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

[root@centos6 ~]# find /etc -perm -222  -ls
1311360    0 lrwxrwxrwx   1 root     root            7 Sep 29 17:51 /etc/rc -> rc.d/rc
1310814    0 lrwxrwxrwx   1 root     root           10 Sep 29 17:51 /etc/rc6.d -> rc.d/rc6.d
1311391    0 lrwxrwxrwx   1 root     root           20 Sep 29 17:51 /etc/sysconfig/network-scripts/ifdown -> ../../../sbin/ifdown
1311408    0 lrwxrwxrwx   1 root     root            9 Sep 29 17:51 /etc/sysconfig/network-scripts/ifup-isdn -> ifup-ippp
1311402    0 lrwxrwxrwx   1 root     root           18 Sep 29 17:51 /etc/sysconfig/network-scripts/ifup -> ../../../sbin/ifup
1311396    0 lrwxrwxrwx   1 root     root           11 Sep 29 17:51 /etc/sysconfig/network-scripts/ifdown-isdn -> ifdown-ippp
...

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

[root@centos6 ~]# find /etc -size +1M -type f -exec ls -lh {} \;
-rw-r--r--. 1 root root 7.0M Sep 29 17:52 /etc/selinux/targeted/policy/policy.24
-rw-r--r--. 1 root root 7.0M Sep 29 17:52 /etc/selinux/targeted/modules/active/policy.kern
-rw-r--r--. 1 root root 1.3M Oct 21 18:34 /etc/b

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

[root@centos6 ~]# find /etc/init.d/ -perm -113 -ls
1312308    0 -rwxr-x-wx   1 root     root            0 Oct 24 04:28 /etc/init.d/test

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

[root@centos6 ~]# find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls
1445596   12 -rwsr-xr-x   1 abrt     abrt         9904 Nov 23  2013 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
[root@centos6 ~]# find /usr ! -user root -a ! -user bin -a ! -user hadoop -ls
1445596   12 -rwsr-xr-x   1 abrt     abrt         9904 Nov 23  2013 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache

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

[root@centos6 ~]# find /etc -not -perm -222 -ls
1310937    8 -rw-r--r--   1 root     root         5139 Oct 17  2013 /etc/DIR_COLORS.256color
1310799    4 drwxr-xr-x   2 root     root         4096 Sep 23  2013 /etc/chkconfig.d
1311268    4 -rw-r--r--   1 root     root          216 Nov 23  2013 /etc/sestatus.conf
1310927    4 -rw-r--r--   1 root     root         1962 Feb 17  2012 /etc/vimrc
1310757    8 -rw-r--r--   1 root     root         6455 Jan 12  2010 /etc/protocols
1311037    4 -rw-r--r--   1 root     root           45 Mar 18  2013 /etc/Trolltech.conf
1312344   12 -rw-r--r--   1 root     root        10814 Feb 21  2006 /etc/ltrace.conf
1311206    4 drwxr-xr-x   3 root     root         4096 Sep 29 17:51 /etc/pango
...

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

[root@centos6 ~]# find /etc -mtime -7 -a ! \( -user root -o -user hadoop \) -ls
1312411    0 -rw-r--r--   1 500      500             0 Oct 24 04:15 /etc/a

原创文章,作者:lucklyme,如若转载,请注明出处:http://www.178linux.com/53724

(1)
lucklymelucklyme
上一篇 2016-10-24
下一篇 2016-10-24

相关推荐

  • 关于 shell脚本编程第一篇

                                                   shell脚本编程(1) …

    系统运维 2016-08-15
  • 第二周相关习题。

    习题 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。 [root@localhost /]# ls -d /var/l*[0-9]*[[:lower:]] 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。 [root@localhost&n…

    Linux干货 2016-11-05
  • Linux启动过程及系统初始化

    一、前言     服务器在正常的运行过程中,很少有重启的机会。在正常的情况下,也很少有出现启动异常的情况,但是在遭到了人为或者误操作的情况后,可能会出现启动异常的情况。为了加深学习系统启动流程,能够更加深入理解Linux系统的启动流程。总结了这篇文字。 二、简述启动流程     …

    Linux干货 2016-11-23
  • DHCP服务

    一、DHCP概述     DHCP全称为Dynamic Host Configuration Protocol,即动态主机配置协议,其主要作用是使用网内的主机可以自动获取到网络相关参数信息,以达到高效管理主机的目的。     DHCP采用C/S架构,即Server/Client。…

    Linux干货 2015-05-11
  • bash代码注入的安全漏洞

           很多人或许对上半年发生的安全问题“心脏流血”(Heartbleed Bug)事件记忆颇深,这两天,又出现了另外一个“毁灭级”的漏洞——Bash软件安全漏洞。这个漏洞由法国GNU/Linux爱好者Stéphane Chazelas所发现。随后,美国电脑紧急应变中心(US-CERT)、红帽以及多家从事安全的公…

    Linux干货 2015-03-30
  • N26-博客作业-week9

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i nologin_num=0,login_num=0 for i in $(cut -d: -f7 /etc/passwd); do if …

    Linux干货 2017-04-01

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-27 13:04

    第二个问题请要注意题目要求