天天看點

grep小練習

1、顯示/proc/meminfo檔案中以大寫s開頭的行,要求使用兩種方式

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

3、顯示/etc/passwd檔案中ID号最大的使用者的使用者名

4、如果root使用者存在,顯示其預設的shell程式

5、顯示/etc/passwd檔案中兩位或三位數

6、顯示/etc/rc.d/rc.sysinit檔案中,至少以一個空白字元開頭的且後面存在非空白字元的行

7、找出'netstat -tab'指令的結果中以'LISTEN'後跟0、1或多個空白字元結尾的行

8、添加使用者bash,testbash,basher以及nologin,要求nologin的shell為/sbin/nologin,而後找出/etc/passwd檔案中使用者名同shell名的行

1

2

<code># grep -i '^s' /proc/meminfo</code>

<code># grep '^[sS]' /proc/meminfo</code>

結果

3

4

5

6

7

<code>SwapCached:          172 kB</code>

<code>SwapTotal:       1049596 kB</code>

<code>SwapFree:        1048880 kB</code>

<code>Shmem:               676 kB</code>

<code>Slab:              30440 kB</code>

<code>SReclaimable:      17672 kB</code>

<code>SUnreclaim:        12768 kB</code>

<code># grep -v '/bin/bash$' /etc/passwd</code>

<code>bin:x:1:1:bin:</code><code>/bin</code><code>:</code><code>/sbin/nologin</code>

<code>daemon:x:2:2:daemon:</code><code>/sbin</code><code>:</code><code>/sbin/nologin</code>

<code>.....</code>

8

<code># sort -n -r -t':' -k3 /etc/passwd | head -n 1</code>

<code>nfsnobody:x:65534:65534:Anonymous NFS User:</code><code>/var/lib/nfs</code><code>:</code><code>/sbin/nologin</code>

<code># awk -v FS=':' 'BEGIN{print "----------------------------------"}{if(NR==1){MIN=$3;MAX=MIN;USER=$1;MINUSER=$1}};{if(NR!=1){if($3&gt;MAX){MAX=$3;USER=$1};if($3&lt;MIN){MIN=$3;MINUSER=$1}}}END {printf "MAX_UID: %-10i USER: %s\nMIN_UID: %-10d MIN_USER: %s\n-----------------------------------\n",MAX,USER,MIN,MINUSER}' /etc/passwd</code>

<code>----------------------------------</code>

<code>MAX_UID: 65534      USER: nfsnobody</code>

<code>MIN_UID: 0          MIN_USER: root</code>

<code>-----------------------------------</code>

9

10

11

12

13

14

<code># grep -q '^root\b' /etc/passwd &amp;&amp; printf "root exist and default shell is " &amp;&amp; grep '^root\&gt;' /etc/passwd | cut -d':' -f7</code>

<code>root exist and default shell is </code><code>/bin/bash</code>

<code># sed -n '/^root\&gt;/p' /etc/passwd &gt; /dev/null 2&gt;&amp;1 &amp;&amp; echo -ne 'root exist and default shell is\t' &amp;&amp; sed -n '/^root\&gt;/p' /etc/passwd | awk -v FS=':' '{print $NF}'</code>

<code>root exist and default shell is    </code><code>/bin/bash</code>

<code># awk -F':' '$1 ~ /\&lt;root\&gt;/{print $NF}' /etc/passwd</code>

<code>/bin/bash</code>

<code># awk -F':' '$1 == "root"{print $NF}' /etc/passwd</code>

<code># sed -n "`awk -F':' '$1 == "root" {print NR}' /etc/passwd`p" /etc/passwd </code>

<code>root:x:0:0:root:</code><code>/root</code><code>:</code><code>/bin/bash</code>

<code>方法一:</code>

<code># grep -o '\&lt;[0-9]\{2,3\}\b' /etc/passwd</code>

<code># grep -o '\&lt;[[:digit:]]\{2,3\}\b' /etc/passwd</code>

<code>方法二:</code>

<code># egrep -o '\&lt;[[:digit:]]{2,3}\b' /etc/passwd</code>

<code># grep '^[[:space:]]\+[^[:space:]]' rc.sysinit </code>

<code># sed -n '/^[[:space:]]\+[^[:space:]]/p' rc.sysinit</code>

<code># awk '/^[[:space:]]+[^[:space:]]/ {print }' rc.sysinit</code>

<code># netstat -tan | grep 'LISTEN[[:space:]]*'</code>

15

16

17

18

19

20

21

22

<code>[root@izpo45bh60h6bsz ~]</code><code># useradd bash</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># useradd testbash</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># useradd basher</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># useradd -s /sbin/nologin nologin</code>

<code># grep '\(^[[:alnum:]]\+\&gt;\).*\1$' /etc/passwd</code>

<code>sync</code><code>:x:5:0:</code><code>sync</code><code>:</code><code>/sbin</code><code>:</code><code>/bin/sync</code>

<code>shutdown</code><code>:x:6:0:</code><code>shutdown</code><code>:</code><code>/sbin</code><code>:</code><code>/sbin/shutdown</code>

<code>halt:x:7:0:halt:</code><code>/sbin</code><code>:</code><code>/sbin/halt</code>

<code>nologin:x:2018:2018::</code><code>/home/nologin</code><code>:</code><code>/sbin/nologin</code>

<code># sed -n '/\(^[[:alnum:]]\+\&gt;\).*\1$/p' /etc/passwd</code>

<code># awk -F':' '{split($NF,A,"/")}{if (A[3] == $1){print}}' /etc/passwd</code>

<code></code>

本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1952534,如需轉載請自行聯系原作者