練習題:
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