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.www58058.com/53724

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

相關推薦

  • Linux系統程序包管理之RPM

    rpm包概述 RPM 是 Red at Package Manager 的縮寫,本意是Red Hat 軟件包管理,顧名思義是Red Hat 貢獻出來的軟件包管理工具;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流發行版本,以及在這些版本基礎上二次開發出來的發行版采用。 RPM包里面都包含什么?里面包含可執行的二進制程序,…

    Linux干貨 2016-08-24
  • test

    test

    Linux干貨 2018-02-23
  • 對防火墻的初步認識

      防火墻,就是用于實現Linux下訪問控制的功能的,它分為硬件的或者軟件的防火墻兩種。無論是在哪個網絡中,防火墻工作的地方一定是在網絡的邊緣。而我們的任務就是需要去定義到底防火墻如何工作,這就是防火墻的策略,規則,以達到讓它對出入網絡的IP、數據進行檢測。    目前市面上比較常見的有3、4層的防火墻,叫網絡層的防火墻,還有7…

    Linux干貨 2017-06-15
  • 將兩個局域網用openvpn連接起來

    考慮到我們做集群的時候需要用到可能有20臺機器,可能我的要求跟別人的不一樣的,我需要做20臺左右的集群,不僅僅是會,而且需要非常熟練的搭建,最后通過腳步一鍵自動化部署安裝。 目前我有兩臺電腦,一臺可以運行7臺,另一臺可以運行12臺左右,剛好可以滿足的我的要求,但是我兩臺電腦都是設置的nat模式的網絡,為什么我非要配置nat模式呢,根據集群架構思想,為了保證架…

    Linux干貨 2017-05-01
  • Liunx 磁盤管理

    我們先來了解一下在Linux中磁盤的命名方式 命名:/dev/DEV_FILE    Sd :表示SCSI硬盤    Sda:表示SCSI硬盤中第一塊硬盤,b表示第二塊,以此類推 在Linux上次磁盤主要有兩種分區方式MBR和GPT MBR分區格式最多有4個分區,可以是4個主分區,或者3個主分區和1個擴展分區,第一個邏…

    2017-08-21
  • N25-第6周

    vim:    模式化的編輯器        基本模式:            編輯模式,命令模式,            輸入模式       &n…

    Linux干貨 2017-02-13

評論列表(1條)

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

    第二個問題請要注意題目要求

欧美性久久久久