簡單shell腳本習題

習題1

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

答案

#!/bin/bash  IPADDR=$(ifconfig | head -2 |tail -1 |awk {'print $2'})
SYSINFO=$(cat /etc/redhat-release)
KERNEL=$(uname -r)
CPU=$(lscpu | head -13 |tail -1 |awk {'print $2,$3,$4'})
Mem=$(free -h | awk {'print $2'} | head -2 | tail -1) echo "hostname is: `hostname`" echo "ipaddress is: ${IPADDR}" echo "systerm version is: ${SYSINFO}" echo "kernel version is: ${KERNEL}" echo "CPU is: ${CPU}" echo "Memory size is: ${Mem}" echo "Hard disk information:" df -h

習題2

編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/apps/backup/etc-YYYY-mm-dd.tar.gz。

答案

#!/bin/bash  [[ -d /apps/backup ]] ||mkdir -p /app/backup cd /apps/backup
tar -zcvf etc-`date +%F`.tar.gz /etc/ echo "backup is complete" 

習題3

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

答案

#!/bin/bash  percent=$(df -h | awk {'print $5,$6'} |sort -nr |awk {'print $1'}|head -1)
name=$(df -h | awk {'print $5,$6'} |sort -nr |awk {'print $2'}|head -1) echo "The most useful harddisk is ${name},has used ${percent}" 

習題4

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

答案

#!/bin/bash  w |grep -v -e "FROM" -e "user" -e ":0\>" |awk {'print $1,$3'} |uniq -c |sort -nr

習題5

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

答案

#!/bin/bash  ID1=$(head -10 /etc/passwd | tail -1 |cut -d":" -f3)
ID2=$(head -20 /etc/passwd | tail -1 |cut -d":" -f3) let sum=$ID1+$ID2 echo "第十個用戶ID為${ID1},第二十個用戶ID為${ID2},其ID和為${sum}" 

習題6

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

答案

#!/bin/bash/ [ ! -e $1 ] && echo "無${1}文件" && exit 1 [ ! -e $2 ] && echo "無${2}文件" && exit 2 file1=$(cat $1 |grep "^$" |wc |tr -s " " |awk '{print $1}')
file2=$(cat $2 |grep "^$" |wc |tr -s " " |awk '{print $1}') let sum=$file1+$file2 echo "第一個文件為$1,第二個文件為$2,總計空行數量為$sum"

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

(2)
zerozero
上一篇 2017-04-10 21:27
下一篇 2017-04-10 22:38

相關推薦

  • 遷移用戶數據到獨立分區

    Linux操作系統中,/home目錄下為各個普通用戶的家目錄,主要用于存放用戶的配置信息及相關文件。若安裝操作系統時,采用了home目錄與根目錄處在同一分區的分區策略,那么隨著用戶數據較多,很有可能將分區空間耗盡,導致系統崩潰。所以最好是將用戶數據所在目錄放在一個獨立的分區上,但由于/home目錄下已有一些用戶數據,要想將home目錄建立在一個獨立的分區上,…

    Linux干貨 2017-08-13
  • Linux之SELinux

      Linux之SELinux     本文包括以下內容SELinux概念啟用SELinux管理文件安全標簽管理端口標簽管理SELinux布爾值開關管理日志查看SELinux幫助   SELinux介紹SELinux: Secure Enhanced Linux,是美國國家安全局(NSA=The National Se…

    Linux干貨 2016-09-21
  • Linux基礎知識之WMware Tools的安裝

    該博文以CentOS6.8_x86_64系統為基礎,tty終端登錄CentOS6.8系統,以root身份登錄系統。 為什么要安裝WMware Tools?                    VMware Tools是VMware虛擬機中自帶的一種增強工具,…

    Linux干貨 2016-07-29
  • Linux基礎知識(二)

     本文的主要內容是:  1.Linux上的基本文件管理命令  2bash的特性及其命令狀態返回值  3.bash的花括號展開機制  4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息  5如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?  &nb…

    Linux干貨 2016-09-25
  • 文件系統層次標準FHS

    FHS針對目錄樹架構僅定義出三層目錄下應該放置哪些數據,分別是下面三個目錄: /(根目錄):與開機系統有關; /usr(unix software resource):與軟件安裝執行有關; /var(variable):與系統運作過程有關。   下面分別對上述三層目錄進行詳細的闡述。   (1) /(根目錄)   根目錄是整個系統最重要的一個目錄,…

    Linux干貨 2016-10-19
  • awk簡介

    Awk介紹 ? 報告生成器,格式化文本輸出 gawk:模式掃描和處理語言 基本用法: Awk [option] ?‘program’?var=value file Awk [ option] ?-F ???programfile var =value file ??F指明分隔符 Awk [option ] ??‘BEGIN’{ACTION…} ?…

    Linux干貨 2018-01-02

評論列表(1條)

  • renjin
    renjin 2017-04-12 12:03

    雖然內容不多,但能夠給人眼前一亮的感覺,總結了bash腳本的練習。排版非常好,內容要是再多一些就更好了。

欧美性久久久久