Linux基礎知識(五)-文件查找命令find

1、顯示當前系統上root、fedora或user1用戶的默認shell;

[root@localhost ~]# cat /etc/passwd | grep -E "^(root|fedora|user1)"
root:x:0:0:root:/root:/bin/bash
user1:x:1007:1007::/home/user1:/bin/bash
fedora:x:1013:1013::/home/fedora:/bin/bash
[root@localhost ~]# cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d: -f1,7 
root:/bin/bash
user1:/bin/bash
fedora:/bin/bash

2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello();

[root@localhost ~]# cat /etc/rc.d/init.d/functions | grep -E -o "\<.*\>\(\)"

## 或者 ##

[root@localhost ~]# grep  -E  -o  "[_[:alnum:]]+\(\)"  /etc/rc.d/init.d/functions

3、使用echo命令輸出一個路徑,使用grep取出其基名;

擴展:取出其路徑名;

[root@localhost ~]# echo /etc/sysconfig | grep -E -o "[^/]+$"
sysconfig   #從尾部取到非/的部分

## 或者 ##

[root@localhost ~]# echo /etc/sysconfig/ | grep -E -o "[^/]+/?$"
sysconfig/
## 擴展:取路徑名 ##
[root@localhost ~]# echo /etc/sysconfig/ | grep -E -o "^/[[:alnum:]]+[^/]"
/etc
[root@localhost ~]# echo /etc/rc.d/init.d/functions | grep -E -o  "^/[[:alnum:]]*[^/]"   #多層路徑用這樣的匹配是沒辦法取到的,應該用下面的

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

/etc/rc.d/init.d/

4、找出ifconfig命令結果中的1-255之間數字;

[root@localhost ~]# ifconfig | grep -E -o "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"

5、寫一個模式,能匹配出合理的IP地址;

[root@localhost ~]# ifconfig | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
192.168.1.106
255.255.255.0
192.168.1.255
127.0.0.1
255.0.0.0

6、寫一個模式,能匹配出所有的郵件地址;

[root@localhost ~]# cat /scripts/emailpreg.txt | grep -E -o "[a-zA-Z0-9_-]*@[a-zA-Z0-9_-]*\.[a-zA-Z]*$"
123@qq.com
a34@163.com
a43ll@gmail.com
hello_world@abc.cn

7、查找/var目錄下屬主為root,且屬組為mail的所有文件和目錄;

[root@localhost ~]# find /var -user root -a -group mail -ls
134321240    4 drwxrwxr-x   2 root     mail         4096 Oct 19 16:28 /var/spool/mail
135041050  408 -rw-------   1 root     mail       414950 Oct 19 16:28 /var/spool/mail/root
##或者##
[root@localhost ~]# find /var -user root -a -group mail -exec ls -ldh {} \;
drwxrwxr-x. 2 root mail 4.0K Oct 19 16:31 /var/spool/mail
-rw-------. 1 root mail 410K Oct 19 16:31 /var/spool/mail/root

8、查找當前系統上沒有屬主或屬組的文件;

[root@localhost ~]# find  /  \( -nouser -o -nogroup \) -exec ls -ldh {} \;
drwx------. 2 1005 distro 59 Oct  3 07:58 /home/mandriva
-rw-r--r--. 1 1005 distro 18 Nov 20  2015 /home/mandriva/.bash_logout
-rw-r--r--. 1 1005 distro 193 Nov 20  2015 /home/mandriva/.bash_profile
-rw-r--r--. 1 1005 distro 231 Nov 20  2015 /home/mandriva/.bashrc

查找當前系統上沒有屬主或屬組,且最近3天內曾被訪問過的文件或目錄;

[root@localhost ~]# find  /  \( -nouser -o -nogroup \) -atime -3 -exec ls -ldh {} \;
drwx------. 2 1005 distro 59 Oct  3 07:58 /home/mandriva
[root@localhost ~]# stat /home/mandriva | grep -i access
Access: (0700/drwx------)  Uid: ( 1005/ UNKNOWN)   Gid: ( 2016/  distro)
Access: 2016-10-19 16:36:46.077491511 -0400 #訪問時間
[root@localhost ~]# date +'%F %H:%M:%S'
2016-10-19 16:55:03 #當前時間,證明文件缺失在3天內被訪問過

9、查找/etc目錄下所有用戶都有寫權限的文件;

[root@localhost ~]# find /etc -perm -222 -ls

10、查找/etc目錄下大于1M,且目錄類型為普通文件的所有文件;

[root@localhost ~]# find /etc -size +1M -type f -exec ls -lh {} \;
-r--r--r--. 1 root root 6.7M Aug 23 12:14 /etc/udev/hwdb.bin
-rw-r--r--. 1 root root 3.7M Nov 20  2015 /etc/selinux/targeted/policy/policy.29

11、查找/etc/init.d/目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件;

[root@localhost ~]# find /etc/init.d/ -perm -113 -type f -ls

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

[root@localhost ~]# find /usr -not -user root -a -not -user bin -a -not -user hadoop -ls
134652726    0 drwx------   2 polkitd  root            6 Jun  9  2014 /usr/share/polkit-1/r
## 或者 ##
[root@localhost ~]# find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls
134652726    0 drwx------   2 polkitd  root            6 Jun  9  2014 /usr/share/polkit-1/rules.d

13、查找/etc/目錄下至少有一類用戶沒有寫權限的文件;

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

14、查找/etc目錄下最近一周內其內容被修改過,且不屬于root或hadoop的文件;

[root@localhost ~]# find /etc -not \( -user root -a -user hadoop  \) -mtime -7 -ls

原創文章,作者:luoluo,如若轉載,請注明出處:http://www.www58058.com/53570

(0)
luoluoluoluo
上一篇 2016-10-24
下一篇 2016-10-24

相關推薦

  • Zabbix 新版微信告警 [2017]

    Zabbix 新版微信告警 Zabbix 新版微信告警 date 2017-06-14zabbix Zabbix可以通過多種方式把告警信息發送到指定人,常用的有郵件,短信報警方式,但是越來越多的企業開始使用zabbix結合微信作為主要的告警方式,這樣可以及時有效的把告警信息推送到接收人,方便告警的及時處理。 關于郵件報警可以參考: Zabbix 使用腳本發送…

    2017-06-17
  • TCP三次握手與四次揮手

                                                      &nbsp…

    2017-09-04
  • Python函數式編程指南(二):函數

    這是此系列的第二篇,試圖說明在Python中如何更好地使用函數并引導諸位使用函數式的思維進行思考。掌握并應用這些內容,就已經是至少形似的函數式風格的代碼了,至于思維么,這個真靠自己。 作者水平有限,如有錯漏之處還請指出;轉載請注明原作者和原地址:) 2. 從函數開始 2.1. 定義一個函數 如下定義了一個求和函數: def add(x, y): return…

    Linux干貨 2015-03-11
  • 標準I/O和管道

    程序包含指令和數據,經常需要讀入數據和輸出數據 打開的文件都有一個fd:file descriptor(文件描述符) 用nano打開一個文件,查看其PID  0,1,2就是所謂的文件描述符。 在Linux里輸入輸出和錯誤都由這三個描述符來表示 標準輸入(STDIN) -0 默認接受來自鍵盤的輸入 標準輸出(STDOUT)-1 默認輸出到終端窗口 標…

    Linux干貨 2016-08-08
  • 關于大型網站技術演進的思考(十四)–網站靜態化處理—前后端分離—上(6)

    原文出處: 夏天的森林    前文講到了CSI技術,這就說明網站靜態化技術的講述已經推進到了瀏覽器端了即真正到了web前端的范疇了,而時下web前端技術的前沿之一就是前后端 分離技術了,那么在這里網站靜態化技術和前后端分離技術產生了交集,所以今天我將討論下前后端分離技術,前后端分離技術討論完后,下一篇文章我將會以網站 靜態化技術…

    Linux干貨 2015-03-11
  • 磁盤文件系統基礎(一)

    磁盤的主要硬件單元有:     1、磁頭:通過電磁感應的方式對磁盤數據進行讀寫。     2、磁道:在磁盤自傳過程中磁頭劃過的圓形軌跡,這些軌跡是肉眼看不見的特色磁化區域。     3、扇區:磁盤上的每個磁道被等分為若干個圓弧,這些圓弧被稱…

    Linux干貨 2016-10-27
欧美性久久久久