統計linux入門到shell腳本之間的基礎練習題。

答案都由本人奇特思路所創,如有錯誤,請在下面評論,好及時改正!

練習題:

1,顯示當前時間,格式為:2016-06-18 10:20:30

答案:date “+%F,%T” 或者 date “+%F %H:%M:%S”

 

2,顯示前天是星期幾?

答案:date -d “-2 day” +%A

知識點:一 ,date +%s 是把當前時間轉化為秒數 ? ? ? ? 二, date -d @”1523604170″ 把秒數轉化回來

 

3,今天18:30自動關機,并提示用戶。

答案:hutdown -h 18:30 “dao dian guan ji,18:30″ 如果想取消此操作輸入: shutdown -c

 

4,在本機字符終端登錄時,除顯示原有信息外,在顯示當前登錄終端號,主機名和當前時間。

答案:vim /etc/profile.d/kaiji.sh 進去后輸入:#********************************************************************
echo your hostname is `hostname`
who am i

 

5,顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄。

答案:ls /var/l*[0-9]*[[:lower:]]

 

6,顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄。

答案:ls /etc/[0-9]*[^0-9]

 

7,顯示/etc/目錄下以非字母開頭,后面跟了一個字母及其他任意長度任意字符的文件或目錄。

答案:ls /etc/[^[:alpha:]][a-zA-Z]*

 

8,顯示/etc/目錄下所有以rc開頭,并后面是0-6之間的數字,其他為任意字符的文件或目錄。

答案:ls /etc/rc[0-6]*

 

9,顯示/etc目錄下,所有以.d結尾的文件或目錄。

答案:ls /etc/*.d

 

10,顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄。

答案:ls /etc/[m,n,r,p]*.conf

 

11,只顯示/root下的隱藏文件和目錄。 只顯示/etc下的非隱藏目錄

答案:ls -d /root/.* ls /etc/[^.]*/ -d

 

12,定義別名命令baketc,每天將/etc/目錄下的所有文件,備份到/app獨立的子目錄下,并要求子目錄格式為backupYYYY-mm-dd備份過程可見。

答案:alias baketc=”cp -av /etc /data/backup`date +%F`”

 

13,創建/app/rootdir目錄,并復制/root下所有文件到該目錄內,要求保留原有權限。

答案:mkdir -p /app/rootdir cp -a /root /app/rootdir/

 

14,如何創建/testdir/dir1/x,/testdir/dir/y,/testdir/dir/x/a,/testdir/dir/x/b,/testdir/dir/y/a,/testdir/dir/y/b.

答案:mkdir -p /testdir/dir1/{x,y}/{a,b}

 

15,如何創建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b.

答案:mkdir -p /testdir/dir2/{x/{a,b},y}

 

16,如何創建/testdir/dir3,/testdir/dir4,/testdir/dir5,/testdir/dir5/dir6,/testdir/dir5/dir7.

答案:mkdir -p /testdir/{dir3,dir4,dir5/{dir6,dir7}}

 

17,將/etc/issue文件中的內容轉化為大寫后保存至/tmp/issue.out文件中。

答案:cat /etc/issue | tr “[a-z]” “[A-Z]” > /tmp/issue.out

 

18,將當前系統登錄用戶的信息轉換為大寫后保存至/tmp/who.out文件中。

答案:who | tr “[a-z]” “[A-Z]” >/tmp/who.out

 

19,一個linux用戶給root發郵件,要求郵件標題為” help”,郵件正文如下:Heello,i am 用戶名,The system version is here ,please help me to check it,thanks! 操作系統版本信息

答案:mail -s “help” root <<123
>Hello,I am $USER
>The system version is here,please help me to check it,thanks!
>`cat /etc/centos-release`
>123

 

20,將/root/下文件列表,顯示成一行,并文件名之間用空格隔開。

答案:ls /root | tr “\n” ” ”

 

21,計算1+2+3+..+99+100的總和。

答案:echo {1..100}|tr ” ” “+”|bc

 

22,刪除Windows文本文件中的`^M`字符

答案:tr -d “\15” win.txt

 

23,處理字符串 “xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4” ,只保留其中的數字和空格。

答案:echo “xt.,l 1 jr#hostnamemn 2 c*/fe 3 uz 4” |tr -dc “[:digit:][:space:]”

 

24,將PATH變量每個目錄顯示在獨立的一行。

答案:echo $PATH |tr “:” “\n”

 

25,將指定文件中0-9分別代替成a-j .

答案:先創建文件touch f1 給f1 vim 輸入0-9 cat f1 | tr “[0-9]” “[a-j]”

 

26,將文件/etc/centos-release中每個單詞(由字母組成)顯示在獨立的一行,并無空行。

答案:cat /etc/centos-release |tr -c “[:alpha:]” ” ” |tr -s ” ” “\n”

 

27,創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為”Gentoo Distribution”.

答案:useradd -G bin,root -s /bin/csh -c “Gentoo Distribution” gentoo

 

28,創建下面的用戶,組和組成員關系
名字為webs的組 用戶nginx使用webs作為附加組 用戶varnish,也使用webs作為附加組
用戶mysql,不可交互登錄系統,且不是webs的成員,nbinx,varnish,mysql密碼都是magedu

答案: groupadd webs ? ? ? useradd -G webs nginx ? ? ? ?useradd -G webs varnish ? ? ? ? useradd -s /sbin/nologin masql

echo magedu |passwd –stdin nginx;
echo magedu |passwd –stdin varnish;
echo magedu |passwd –stdin mysql;

 

29,當用戶docker對/testdir 目錄無執行權限時,意味著無法做哪些操作?

答案: 不能cd進去,不能查看文件詳細屬性,也不能去訪問目錄里的文件內容(即使有讀權限)。

 

30,當用戶mongodb對/testdir 目錄無讀權限時,意味著無法做哪些操作?

答案:不能對目錄下的文件進行訪問。

 

31, 當用戶redis 對/testdir 目錄無寫權限時,該目錄下的只讀文件file1是否可修改和刪除?

答案:不能,因為對目錄沒有權限,所以不能。文件能不能刪,不由文件決定,而由目錄決定。

 

32,當用戶zabbix對/testdir 目錄有寫和執行權限時,該目錄下的只讀文件file1是否可修改和刪除?

答案:可以修改和刪除

 

33,復制/etc/fstab 文件到/var/tmp 下,設置文件所有者為tomcat 讀寫權限,所屬組為apps組有讀寫權限,其他人無權限。

答案:(一)cp -a /etc/fstab /var/tmp (二) useradd tomcat (三) groupadd apps (四) chown tomcat /var/tmp (五) chgrp apps /var/tmp (六) chmod 660 /var/tmp

 

34,誤刪除了用戶git的家目錄,請重建并恢復該用戶家目錄及相應的權限屬性。

答案: ? ? ? ? ? rm -rf /home/git ; ? ? ?mkdir /home/git; ? ? ? ? ?cp -a /etc/skel/.[^.]* /home/git; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? chown -R git:git ?/home/git;

35,在/testdir/dir 里創建的新文件自動屬于webs組,組apps的成員如:tomcat能對這些新文件有讀寫權限,組dbs的成員如:mysql只能對新文件有讀權限,其他用戶(不屬于webs,apps,dbs)不能訪問文件夾。

答案: ? ? ? ? ? ? ? ? ? ? mkdir -p /testdir/dir ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? chgrp webs /testdir/dir ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? chmod g=s /testdir/dir
setfacl -m g:apps:rw /testdir/dir ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? setfacl -m g:dbs:r /testdir/dir

chmod o= /testdir/dir

 

36,備份/testdir/dir 里所有文件的ACL權限到/root/acl.txt中,清除/testdir/dir中所有ACL權限,最后還原ACL權限。

答案: ? ? ? ? ? ? ? ? ? ? getfacl -R /testdir/dir > /root/acl.txt ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?setfacl -b /testdir/dir

setfacl -R –set-file=acl.txt /testdir/dir

 

37, 找出ifconfig “網卡名” 命令結果中本機的IPv4地址。

答案:(方法一)ifconfig ens33 | grep netmask | tr -s ” ” “:” |cut -d: -f3

(方法二)ifconfig ens33 |egrep -o \<“(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])”\>

(方法三)ifconfig ens33 | sed -n “2p” | sed -r s’@(.*inet)(.*)( netmask.*)@\2@’

 

38,查出分區空間使用率的最大百分比值。

答案:(方法一)df | grep ^/dev | tr -s ” ” “:” | cut -d: -f5 |cut -d% -f1 | sort -nr | head -n1

(方法二) df | grep -o “[0-9]\{1,3\}%” |grep -o “[0-9]\+” |sort -nr |head -n1

 

39,查出用戶UID最大值得用戶名,UID及shell類型。

答案:cat ?/etc/passwd |sort -nr -t: -k3 |head -n1 |cut -d: -f1,3,7

 

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

答案:stat ?/tmp |head -n4|tail -n1|cut -d/ -f1|cut -d'(‘ -f2

 

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

答案: 先從桌面獲取rz 獲取文件,再進行處理。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cat access_log |egrep -o “\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>”|sort|uniq -dc|sort -nr

 

 

42,顯示/proc/meminfo 文件中以大小s開頭的行(要求:使用兩種方法)

答案:(方法一)cat /proc/meminfo |egrep -oi ^s.*

(方法二)cat /proc/meminfo |egrep ^[Ss].*

 

43,顯示/etc/passwd文件中不以/bin/bash結尾的行。

答案:cat ?/etc/passwd |egrep -v /bin/bash$

 

44,顯示用戶rpc默認的shell程序。

答案:(方法一)cat ?/etc/passwd |egrep rpc|cut -d: -f1,7

(方法二)cat ?/etc/passwd |egrep rpc|sed -r ‘s/(.*:)([^:]+:?$)/\2/’

 

45,找出/etc/passwd 中的兩位或三位數

答案:cat ?/etc/passwd | egrep -o “[0-9]{2,3}”

 

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

答案:cat ?/etc/grub2.cfg |egrep ^[[:space:]][^[:space:]].*$

 

47,找出”netstat -tan” 命令結果中以LISTEN后跟任意多個空白字符結尾的行。

答案:netstat -tan |egrep .*LISTEN[[:space:]]+

 

48, 顯示Centos7上所有系統用戶的用戶名和UID。

答案:cat ?/etc/passwd |egrep .*/sbin/nologin$ |cut -d: -f1,3

 

49,添加用戶bash,testbash,basher,sh,nologin(其shell為/sbin/nologin),找出/etc/passwd用戶名和shell同名的行。

答案:cat ?/etc/passwd | egrep “^(.*)(:.*)\1$”

 

50,利用df和grep,去出磁盤各分區利用率,并從大到小排序。

答案:df |grep ^/dev |tr -s ” ” “:”|cut -d: -f5 |cut -d% -f1 |sort -nr|head -n1

 

51,顯示三個用戶root,mage,wang的UID和默認shell.

答案:cat /etc/passwd |egrep ^”(root|mage|wang)” |cut -d: -f1,3,7

 

52,找出/etc/rc.d/init.d/functions文件中行首為某單詞(包括下劃線)后面跟一個小括號的行。

答案:cat /etc/rc.d/init.d/functions | egrep “^[a-zA-Z_]+\(\).*”

 

53,使用egrep取出/etc/rc.d/init.d/functions中其基名。

答案:echo /etc/rc.d/init.d/functions |egrep -o “[^/]*/?$”

 

54,使用egrep取出上面 路徑的目錄名。

答案:(方法一)echo /etc/rc.d/init.d/functions |egrep -o “/.*/”

(方法二)echo /etc/rc.d/init.d/functions |egrep -o “(/).*\1”

 

55,統計last命令中以root登錄的每個主機IP地址登錄次數。

答案: ? ? ? ? ? ? ? ? ?last |egrep root |egrep “\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>”|tr -s ” ” “:”|sort -t: -k3|cut -d: -f3|uniq -dc

 

56,利用擴展正則表達式分別表示0-9,10-99,100-199,200-249,250-255.

答案: ? ? ? ? ? ? ?[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]

 

57,顯示ifconfig命令結果中所有IPV4地址。

答案: ? ? ? ? ? ? ? ifconfig | egrep -o “\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>”

 

58,將此字符串:welcome to magedu linux 中的每個字符去重并排序,重復次數多的放在最前面。

答案: ? ? ? ? echo “welcometomagedulinux” |grep -o “.”|sort|uniq -c|sort -nr

 

59,復制/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的行首的空白字符。

答案: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cp /etc/profile /tmp/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?vim /tmp/profile ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 命令模式下按“:”進入擴展模式輸入 %s/^[[:space:]]*//g

 

60, 復制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首添加一個#號。

答案: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cp /etc/rc.d/init.d/functions /tmp ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? vim /tmp/functions ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?命令模式下按“:”進入擴展模式輸入 ? ? ? ? %s/^[[:space:]] */#&/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?或者 ? ? ? ? ? %s/\(^[[:space:]]\+.*\)/#\1/g

 

61, 在VIM中設置tab縮進為4個字符。

答案: ? ? ? ? ? ? ? ?vim /etc/vimrc
在文件最后添加:
set ts=4
set expandtab
set autoindent
:wq

 

62,復制/etc/rc.d/init.d/functions文件至/tmp目錄,替換/tmp/functions文件中的/etc/sysconfig/init為/var/log.

答案: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cp /etc/rc.d/init.d/functions /tmp ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?vim?/tmp/functions ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?命令模式下按“:”進入擴展模式輸入 ? ? ? ? ? ? ? %s@\/etc\/sysconfig\/init@\/var\/log@

 

63, 刪除/tmp/functions文件中所有以#開頭,且#后面至少有一個空白字符的行的行首的#號。

答案: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?vim /tmp/functions ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?命令模式下按“:”進入擴展模式輸入 ? ? ? ? ?%s@^#\(” “\+.*\)@\1@

 

64, 編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPV4,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。

答案: vim /root/bin/systeminfo.sh
#********************************************************************
echo `hostname`
echo `ifconfig ens33 | egrep -o “\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
)\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>”|head -n1`
echo `cat /etc/centos-release`
echo `uname -r`
echo `lscpu |grep “^Model name.*” |cut -d: -f2|tr -s ” “`
echo `cat /proc/meminfo |head -n1`
echo `lsblk |grep ‘^sda’|tr -s ” ” “%”|cut -d% -f4`
:wq

 

65, 編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYY-mm-dd中。

vim /root/bin/backup.sh ? ? ? ? ? ? ? ? ? ? cp -a /etc /root/etc`date +%F` ? ? ? ? ?:wq

 

66,編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值。

答案: ? ? ? e=`df|egrep ^/dev |tr -s ” ” “:”|cut -d: -f5|cut -d% -f1|sort -nr|head -n1`
echo $e ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? :wq

 

67, 編寫腳本/root/bin/links.sh ,顯示正連接本主機的每個遠程主機的IPV4地址和連接數,并按連接數從大到小排序。

? ? ? 答案: ? ? ? ? ? ? ? ? ?vim /root/bin/linsk.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a=`cat access_log |egrep -o “\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>”|sort|uniq -c|sort -nr` ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? echo $a

68, 編寫腳本/root/bin/sumid.sh ,計算/etc/passwd 文件中的第10個用戶和第20用戶的ID之和。

答案: ? ? ? ? ? ? ?vim /root/bin/sumid.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a=`cat /etc/passwd | head -n10 |tail -n1|cut -d: -f3`
b=`cat /etc/passwd | head -n20 |tail -n1|cut -d: -f3`
let c=a+b 或 d=$[ a+b ] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo $d

 

69, 編寫腳本/root/bin/sumspace.sh ,傳遞兩個文件路徑作為參數給腳本,計算這兩個文件中所有空白行之和。

答案: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? vim /root/bin/sumspace.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a=`cat f1 |egrep ^[[:space:]]*$ |wc -l` ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b=`cat f2 |egrep ^[[:space:]]*$ |wc -l`

let c=a+b

 

70, 編寫腳本/root/bin/sumfile.sh ,統計/etc ,/var,/usr 目錄中共有多少個一級子目錄和文件。

答案:vim /root/bin/sumfile.sh ? ? ? ? ? ? ? ? ? ? ? a=`ls /etc/ |wc -l` ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b=`ls /var/ |wc -l` c=`ls /usr/ |wc -l`
let d=a+b+c

 

71, 編寫腳本/root/bin/argsnum.sh ,接受一個文件路徑作為參數;如果參數個數小于1,則提示用戶 “至少應該給一個參數”,并立即退出;如果參數個數不少于1,則顯示第一個參數所指向的文件中的空白行數。

答案: ? ? ? ? vim /root/bin/argsnum.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [ $# -lt 1] && ?echo “At least one parameter should be given” && exit
[ $# -ge 1] && ?echo `egrep “^[[:space:]]*$” ?$1|wc -l`

 

73, 編寫腳本/root/bin/hostping.sh ,接受一個主機的IPV4地址做為參數,測試是否可連通。如果能ping通,則提示用戶 “該IP地址可以訪問” ;如果不可ping通,則提示用戶 “該IP地址不可訪問”。

答案: ? ? ? ? ? ? ? ?vim /root/bin/hostping.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [[ $1 =~ “\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]]])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>” ]] || echo { “IP error”;exit; } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?`ping $1` && echo “This address can be accessed”|| echo “This address cannot be accessed”

74, 編寫腳本/root/bin/checkdisk.sh , 檢查磁盤分區空間和inode使用率,如果超過80%,就發廣播警告空間將滿。

答案: ? ? ? ? ? ? ? ? ? ?vim /root/bin/checkdisk.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a=`df |egrep ^/dev |tr -s ” ” “:” |cut -d: -f5 |cut -d% -f1|sort -nr|head -n1`
[[ $a -ge 80 ]] && echo “zhao huo la ” || echo { “yi qie zheng chang”;exit; }

 

75, 編寫腳本/bin/per.sh ,判斷當前用戶對指定參數文件,是否不可讀并且不可寫。

答案: ? ? ? ? ? [ -not -r $1 -a -not -w $1 ] && echo “bu ke du ”
[ \( -r $1 -o -w $1 \) ] || echo “ke du ”

 

 

76,編寫腳本/root/bin/excute.sh ,判斷參數文件是否為sh后綴的普通文件,如果是,添加所有人可執行權限,否則提示用戶非腳本文件。

答案: ? ? ? ? ? ?vim /root/bin/excute.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [[ $1 =~ .*sh$ ]] && `chmod +x $1` || echo “bu shi jiao ben wen jian “

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96122

(1)
李登峰李登峰
上一篇 2018-04-15
下一篇 2018-04-15

相關推薦

  • 網絡基礎

    計算機網絡基礎

    2018-05-10
  • 追夢之路第七周修煉

    追夢之路第七周操作系統啟動流程

    2018-08-06
  • linux 學習7

    linux

    Linux筆記 2018-08-04
  • 喜歡上find

    喜歡上findfind :查找目錄下的文件。find 命令其實很好記,會用了,那簡直太好玩太方便了-newer查找更改時間比指定文件新的文件-type 按類型查找 (d f l s b c p )D-name 按文件名查找-mtime 按修改時間查找( +2 -2 2)-size 按文件大小查找-perm 按文件權限查找-user 按文件屬主來查找-nous…

    2018-04-18
  • boot

    把boot目錄都刪除了怎么辦 文件的 關鍵 缺少 唯獨缺少 grub.conf???? ;創建這個文件 以上是boot下文件都刪除了的補救法 下面是第二種方法 光盤啟動,救援模式?? ,用安裝包的方式 不能安裝在當前的跟下 grub-install安裝grub相關信息 寫 以上是boot是獨立分區

    2018-05-13
欧美性久久久久