Linux第五次做業

一、顯示當前系統上root、fedora或user1用戶的默認shell;正則表達式

grep -E  "^(root|user1|fedora)" /etc/passwd | cut -d: -f7

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

[root@localhost ~]# grep -E -o "[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions 
checkpid()
run()
pidof()
daemon()
killproc()
pidfileofproc()
pidofproc()
status()
success()
failure()
passed()
warning()
stage()
success()
failure()
passed()
warning()
action()
strstr()
file()
true()
false()
sysctl()

三、使用echo命令輸出一個絕對路徑,使用grep取出其基名;bash

 擴展:取出其路徑名ide

[root@localhost ~]# echo "/home/1.txt" | grep -Eo "[^/]+/?$"
1.txt
[root@localhost ~]# echo "/etc/rc.d/init.d/functions" | grep -Eo "^[/][a-z0-9]+.*/"
/etc/rc.d/init.d/
四、找出ifconfig命令結果中的1-255之間數字;
1-9,10-19,100-199,200-249,250-255
[root@localhost ~]# ifconfig | egrep -o "\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>"
192
168
105
255
255
255
192
168
255
64
29
60
99
248
7
186
3
73
127
1
255
1
128
24
2
24
2
192
168
122
1
255
255
255
192
168
122
255

五、挑戰題:寫一個模式,能匹配合理的IP地址;工具

1.0.0.0-255.255.255.255oop

[root@localhost ~]# cat ip.txt | egrep "(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>)\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>\.)\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>)\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>)"
1.1.1.1
2.2.2.2
3.3.3.3

六、挑戰題:寫一個模式,能匹配出全部的郵件地址;ui

[root@localhost ~]# cat email.txt | grep -E "^[a-z0-9_-]+@[a-z0-9_-]+.[[:alpha:]]+$"
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com

七、查找/var目錄下屬主爲root,且屬組爲mail的全部文件或目錄;spa

find命令:實時查找工具,經過遍歷自定路徑下的文件系統完成文件查找對象

工做特色:ip

    查找速度略慢

    精確查找

    實時查找


    

格式:

  find [OPTIONS]... [查找路徑] [查找條件] [處理動做]

查找路徑:指定具體目標路徑,能夠爲多個路徑,默認爲當前路徑

查找條件:指定的查找標準,能夠爲文件名、大小、類型、權限等標準進行,默認爲找出指定路徑下的全部文件

處理動做:對符合條件的文件作什麼操做,默認輸出至屏幕

    查找條件:根據文件名查找

-name "filename":支持使用glob,嚴格區分文件名稱大小寫

-iname "filename":不區分字母大小寫

-regex "PATTERN":支持使用正則表達式,以PATTERN匹配整個文件路徑字符串,而不單單是文件名稱

根據屬主、屬組查找文件

-user USRNAME:查找屬主USERANME的文件

-group GRPNAME:查找屬組爲GRPNAME的文件

-uid UserID:查找屬主爲指定UID號的文件

-gid groupid:查找屬組爲指定gid號的文件

-nouser username :查找屬主不是usernmae的文件

-nogroup groupname:查找屬組不是groupname的文件

[root@localhost tmp]# chown root:mail fstab 
[root@localhost tmp]# ll ./fstab 
-rw-r--r--. 1 root mail
[root@localhost tmp]# find /tmp/ -user root -group mail -ls
203539008    4 -rw-r--r--   1 root     mail          465 Sep  4 08:36 /tmp/fstab
 465 Sep  4 08:36 ./fstab

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

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

根據時間戳:

     以「天」爲單位

     -atime [+|-]#:最近一次訪問時間

     #:[#,#+1)

     +#:[#+1,oo]

     -#:[0,#]

     -mtime [+|-]#:最近一次內容修改時間

     #:[#,#+1)

     +#:[#+1,oo]

     -#:[0,#]

     -ctime [+|-]#:最近一次屬性修改時間

     #:[#,#+1)

     +#:[#+1,oo]

     -#:[0,#]

     以「分鐘」爲單位

     -amin

     -mmin

     -cmin

[root@localhost /]# find /tmp \(-nouser -o -nogroup\) -ls	//不加括號會把-o後面所有當作條件

     
[root@localhost /]# find /tmp atime 3  \(-nouser -o -nogroup\) -ls	//+3三天前作過修改的,-3三天以內作過修改

九、查找/etc目錄下全部用戶都有寫權限的文件;

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

十、查找/etc目錄下大於1M,且類型爲普通文件的全部文件;

根據文件大小來查找:

     -size [+|-]#UNIT

     經常使用單位:k,M,G

     #UNIT:(#-1,#]

     -#UNIT:[0,#-1]

     +#UNIT:(#,oo)

[root@localhost /]#find /etc   -type f -size +1M -ls

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

根據權限查找

  -perm [+|-]MODE

     MODE:精確權限匹配

     +MODE:任何一類(u,g,o)對象的權限中只要能覺得匹配便可

     -MODE:每一類對象都必須同時擁有爲其指定的權限標準

[root@localhost /]# find /etc/init.d/ -perm -113 -ls
68320523    8 -rwx-wxrwx   1 root     root         6630 Sep 16  2015 /etc/init.d/network


十二、查找/usr目錄下不屬於root、bin或hadoop的文件;

[root@localhost /]#find /usr ! \( -user root -o -user bin -o -user hadoop \) -ls

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

[root@localhost /]#  find /tmp/ \( ! -perm +200 -o ! -perm +020 -o ! -perm +002 \) -ls


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

[root@localhost /]#find /etc \( -mtime -7 ! -user root -a ! -user hadoop \) -ls
相關文章
相關標籤/搜索