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 09:09
下一篇 2016-10-24 09:09

相关推荐

  • 编译安装LAMP

    编译安装LAMP (1) 系统环境:CentOS 6, 7     CentOS 6:apr, apr-util的版本为1.3.9,不适用于httpd-2.4;     CentOS 7:apr, apr-util的版本为1.4+, (2) 开发环境…

    Linux干货 2016-11-03
  • linux挂载的基本使用

    挂载   挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,必须将文件所在的分区(已有文件系统)挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。 挂载条件 1、挂载点必须是一个目录。 2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将隐藏不可用。对于其他…

    Linux干货 2016-09-07
  • 搭建个人博客&论坛(LAMP):wordpress、discuz、phpMyAdmin

    搭建个人博客&论坛(LAMP):wordpress、discuz、phpMyAdmin 一、快速部署LAMP架构平台 1.CentOS 6系统部署 所需安装包:httpd, php, mysql-server, php-mysql ]# yum install -y  httpd php&n…

    Linux干货 2016-10-17
  • ipvsadm配置命令

    Ipvsadm配置   ipvsadm/ipvs: 集群和集群之上的各RS是分开管理的; 集群定义 RS定义 ipvs:内核基本都自动编译上了 ~]# grep -i -C 10 “ipvs” /boot/config-VERSION-RELEASE.x86_64     支持的协议:…

    Linux干货 2017-05-17
  • N21_第8周_网络

    N21_第8周_网络 作业题目: 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥:(Bridge)也称桥接器,是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系结构网络系统的连接。       &nbs…

    Linux干货 2016-10-09
  • Linux初识

    Linux 初识 计算机包含 CPU :运算器 、控制器、寄存器、缓存(加速) 存储器:内存,RAM(Random Access Memory) Input:下指令,提供数据 Output:输出数据加工的结果。 冯诺依曼体系 纸带打孔 磁带机 批处理 键盘、显示器 多任务Multi task 虚拟机软件 VMware workstation 12 PRO O…

    2017-07-13

评论列表(1条)

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

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