面授20-1班 0805課間練習與課后作業

課間練習


第一階段

新學的命令文本命令cat tac rev more less head tail cut paste wc sort dif patch

1 、找出ifconfig 命令結果中本機的所有IPv4 地址

[root@IP70-CentOS7 ~]# >>ifconfig | tr -cs '0-9.' '\n' | sort -t . -k3 | tail -8

1470401824465311.png

2 、查出分區空間使用率的最大百分比值

[root@IP70-CentOS7 ~]# >>df | tr -s ' ' | cut -d' ' -f5 | tr -dc '0-9\n' | sort -n | tail -1

1470402179214486.png

3 、查出用戶UID 最大值的用戶名、UID 及shell 類型

[root@IP70-CentOS7 ~]# >>sort -t: -k3n /etc/passwd |tail -1 | cut -d: -f1,3,7

1470402598686145.png

4 、查出/tmp 的權限,以數字方式顯示

stat /tmp | head -4 | tail -1 | tr -cs '0-9' '\n' | tail -3 | head -1

1470402788521387.png

5 、統計當前連接本機的每個遠程主機IP 的連接數,并按從大到小排序

[root@IP70-CentOS7 ~]# >>netstat -nt | tr -s ' ' ':' | cut -d: -f6 | tr -d '[:alpha:]' | uniq -c | sort -r

1470403837135168.png

第二階段

grep 正則表達式

1 、顯示/proc/meminfo 文件中以大小s 開頭的行;( 要求:使用兩種方式)

[root@IP70-CentOS7 ~]# >>grep -e ^s -e ^S /proc/meminfo
[root@IP70-CentOS7 ~]# >>grep -i ^s /proc/meminfo
[root@IP70-CentOS7 ~]# >>grep -i ^[sS] /proc/meminfo

1470404355822702.png

2 、顯示/etc/passwd 文件中不以/bin/bash 結尾的行

[root@IP70-CentOS7 ~]# >>grep -v '/bin/bash$' /etc/passwd

1470404477267048.png

3 、顯示用戶rpc 默認的shell 程序

[root@IP70-CentOS7 ~]# >>grep '^rpc\b' /etc/passwd | cut -d: -f7

1470439923490056.png

4 、找出/etc/passwd 中的兩位或三位數

[root@IP70-CentOS7 ~]# >>egrep -o '\b[0-9]{2,3}\b' /etc/passwd

1470440091416289.png

5 、顯示/etc/grub2.cfg 文件中,至少以一個空白字符開頭的且后面存非空白字符的行

[root@IP70-CentOS7 ~]# >>egrep '^[[:space:]]+[^[:space:]]+$' /etc/grub2.cfg

1470440614495907.png

6、 、 找出“netstat -tan” 命令 的結果 中以 以‘LISTEN’ 后跟任意多個空白字符結尾的行

[root@IP70-CentOS7 ~]# >>netstat -tan | egrep '\bLISTEN[[:space:]]*$'

1470440968501105.png

7 、添加用戶bash 、testbash 、basher 以及nologin( 其shell為 為/sbin/nologin),
而后找出/etc/passwd 文件中用戶名和shell名 同名的行

[root@IP70-CentOS7 ~]# >>useradd bash
[root@IP70-CentOS7 ~]# >>useradd testbash
[root@IP70-CentOS7 ~]# >>useradd basher
[root@IP70-CentOS7 ~]# >>useradd nologin -s /sbin/nologin
[root@IP70-CentOS7 ~]# >>egrep '^([^:]*):.*/\1$' /etc/passwd

1470442631965909.png

 

課后作業


 

4、取本機ip地址

思考:本機ip地址包括ipv4和ipv6,在ifconfig輸出顯示是跟著inet和inet6后面字段,還要濾掉127.0.0.1和::1的兩個回環地址

[root@IP70-CentOS7 ~]# >>ifconfig | egrep 'inet6?\b' | tr -s ' ' | cut -d' ' -f3 | fgrep -v -e127.0.0 -e ::1

1470450808666102.png

5、取各分區利用率的數值

思考:關鍵字段/dev/sd過濾df輸出結果,然后替換重復空格,直接用cut可以提取

[root@IP70-CentOS7 ~]# >>df | grep '/dev/sd' | tr -s ' ' | cut -d' ' -f5 | tr -d %

Image 20160806090805.png

6、統計/etc/init.d/functions 文件中每個單詞出現的次數,并按頻率從高到低顯示

思考:tr濾掉所有非字母的字符,sort排序后進行uniq詞頻統計,再次sort從高到低排序

[root@IP70-CentOS7 ~]# >>cat /etc/init.d/functions | tr -cs '[:alpha:]' '\n' | sort | uniq -c | sort -nr

1470446235435204.png

7、/etc/rc.d/init.d/functions或/etc/rc.d/init.d/functions/"  取目錄名

方法一:先用grep匹配去掉最后的/,再將輸出進行二次匹配,去掉最后的單詞。

[root@IP70-CentOS7 ~]# >>\cat testdir | grep -o '^/.*[^/]' | grep -o '^/.*/'

1470542342468329.png

方法二:文件的基名是個單詞,/etc/rc.d/init.d/functions/,按位置排列/為12345

    4號5號的區別在于:4號處于單詞(基名)的前面,而5號后面是沒有單詞的(即不在某單詞的前面),所以我們可以利用單詞錨定,確定匹配/:

[root@IP70-CentOS7 tmp]# >>\cat testdir | grep -o '^.*/\b'
[root@IP70-CentOS7 tmp]# >>\cat testdir | grep -o '^.*/\<'

1470552329617510.png

8、正則表達式表示身份證號

思考: 身份證號為18位,

    前6位地區編號(非0開頭):

        [1-9][0-9]{5}

    后8位出生年月日

        本例取1800年-2015年

[root@IP70-CentOS7 ~]# >>\cat year | egrep -w '(1[89][0-9]{2})|(200[0-9]|201[0-5])'

            1470470835674775.png

        月份01-12,日期01-31,其中01、03、05、07、08、10、12月有31天,04、06、09、11月30天,02月28天

[root@IP70-CentOS7 ~]# >>\cat mmdd | egrep '((0[13578]|1[02])([0-2][0-9]|3[01]))|((0[469]|1[02])([0-2][0-9]|30]))|02[012][0-9]'

            1470472046215143.png          

    后四位末位有數字或X。

[root@IP70-CentOS7 ~]# >>\cat mmdd | egrep -w '[0-9]{3}[0-9x]'

            1470472451553720.png        

綜合上述:

[root@IP70-CentOS7 ~]# >>\cat file | egrep -w '[1-9][0-9]{5}((1[89][0-9]{2})|(200[0-9]|201[0-5]))(((0[13578]|1[02])([0-2][0-9]|3[01]))|((0[469]|1[02])([0-2][0-9]|30))|02[012][0-9])[0-9]{3}[0-9x]'

1470481899738861.png

9、正則表達式表示手機號

思考:手機號碼11位數字,網上搜索中國手機號起始3位如下,

中國移動
GSM 134 135 136 137 138 139 150 151 152 157 158 159
3G(TD-SCDMA) 187 188
中國聯通
GSM 130 131 132 155 156
3G(WCDMA) 185 186
中國電信
CDMA 133 153
3G(CDMA2000) 180 189

即有13[0-9]、15[0-35-9]、18[05-9],前三位確定,再有8位任意數字就可以了(注:本例只適用于中國地區以上列舉手機號段的匹配)

[root@IP70-CentOS7 ~]# >>\cat tel1 | egrep -w '(86)?((13[0-9])|(15[0-35-9])|(18[05-9]))[0-9]{8}'

1470454834820699.png

10、正則表達式表示郵箱

思考:郵箱格式為 用戶名@網站名.網站后綴

用戶名:

純字母

純數字

數字、字母(可以數字開頭或字母開頭)

數字、字母、“_”或“-”(符號"_"和"-"不能做詞首詞尾)

即:

    \b[[:alnum:]]+[0-9a-zA-Z-_]*[[:alnum:]]

網站:

數字字母.字母

[[:alnum:]]+\.[[:alpha:]]+

[root@IP70-CentOS7 ~]# >>\cat tel1 | egrep '^[[:alnum:]]+[-_[:alnum:]]*[[:alnum:]]\@[[:alnum:]]+\.[[:alpha:]]+'

1470466065711418.png

11、正則表達式表示QQ號

思考:現在 的QQ是5-11位不以0開始的純數字

[root@IP70-CentOS7 ~]# >>\cat testqq | egrep -w '[1-9][0-9]{4,10}'

Image 20160806153600.png

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

(0)
昭其昭其
上一篇 2016-08-07
下一篇 2016-08-07

相關推薦

  • 馬哥教育網絡班22期+第六周課程練習

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; ]# cp -v  /etc/rc.d/rc.sysinit /tmp/    `/etc/rc.d/rc.sysinit' -> `/tmp/rc.sysinit&…

    Linux干貨 2016-10-17
  • 4

    1;復制/etc/skel目錄為/home/tuinser1, 要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 #   install -d -m 700 /etc/skel /home/tuser1  #  &nbsp…

    Linux干貨 2017-01-16
  • 第七周作業:bash腳本,邏輯卷管理,磁盤管理,raid管理

    第七周作業 1、創建一個10G分區,并格式為ext4文件系統; ~]#fdisk -l   #查看已有分區    設備 Boot      Start     &nbsp…

    Linux干貨 2016-12-12
  • 8月3日作業

    課堂練習: 當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法 做哪些操作? 不能進入目錄,不能創建目錄、文件 當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做 哪些操作?  不能查看目錄、文件 當用戶wangcai 對/testdir 目錄無寫權限時,該目錄下的只 讀文件file1是否可修改和刪除?&n…

    Linux干貨 2016-08-07
  • grep作業題

    找出/proc/meminfo文件中,所有以大寫或小寫s開頭的行,至少三種方式:grep -i "^s" /proc/meminfogrep "^[sS]" /proc/meminfogrep -E "^(s|S)" /proc/meminfo顯示當前系統上roo、centos或者user用戶的相關…

    Linux干貨 2016-08-12
  • linux文件、目錄基本操作命令及bash特性介紹

    1、文件層級FHS介紹: Filesystem Hierarchy Standard(文件系統層次化標準)的縮寫,多數Linux版本采用這種文件組織形式,類似于Windows操作系統中c盤的文件目錄,FHS采用樹形結構組織文件。 FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。 /:linux文件系統根目錄 /…

    2017-09-17
欧美性久久久久