shell腳本練習題

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

#!/bin/bash
##編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信 息,包括主機名,IPv4地址,操作系統版本,內>核版本, CPU型號,內存大小,硬盤大小。
echo "主機名;`hostname`"
echo "ip地址:`ifconfig | tr -s " " ":" | cut -d : -f4 | head -n 2 | tail -n 1`"
echo "內核版本:`uname -r`"
echo "CPU信息:`lscpu | grep -i "model name"`"
echo "操作系統版本:`cat /etc/redhat-release`"
echo "內存剩余量: `free -m | grep Mem | tr -s " " ":" | cut -d : -f4`"
echo "磁盤使用量:`df -h | grep "/dev/sd" | tr -s " " ":" | cut -d : -f5 | tr -d "%"`"

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

#!/bin/bash
##編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄 備份到/root/etcYYYY-mm-dd中
echo "正在備份..."
cp -a /etc /root/etc$(date +%F) && echo "備份完成"
~

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

#!/bin/bash
##編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利 用率最大的值
maxdisk=`df | grep "/dev/sd" | tr -s " " ":" | cut -d : -f5 | sort -nr | head -n1`
maxuse=`df | grep "/dev/sd" | tr -s " " ":" | cut -d : -f1 | sort -nr | head -n1`
echo "磁盤"$maxuse"使用量為:"$maxdisk

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

#!/bin/bash
##編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠 程主機的IPv4地址和連接數,并按連接數從大到小排序
echo -e "遠程主機連接統計為:\n\t連接數\t遠程主機IP"
netstat -nt | tr -s " " | cut -d " " -f5 | cut -d : -f1 | sort -n | uniq -c |tr -s " " "\t"| egrep '([0-9]+.){3}[0-9]+'

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

#!/bin/bash
##寫一個腳本/root/bin/sumid.sh,計算/etc/passwd 文件中的第10個用戶和第20用戶的ID之和
user10=`cat /etc/passwd | cut -d : -f3 | sed -n "10p"`
user20=`cat /etc/passwd | cut -d : -f3 | sed -n "20p"`
let Num=$user10+$user20
echo $Num

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

#!/bin/bash
##寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件 路徑作為參數給腳本,計算這兩個文件中所有空白行之和
File1=$(grep "^$" $1 | wc -l)
File2=$(grep "^$" $2 | wc -l)
let Sumlink=$File1+$File2
echo "the sum of $1 and $2 spacelines is $Sumlink"

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

#!/bin/bash
##寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件
num1=$(ls -l /etc | wc -l)
num2=$(ls -l /var | wc -l)
num3=$(ls -l /usr | wc -l)
let Num=$num1+$num2+$num3
echo $Num

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

#!/bin/bash
##寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作 為參數;如果參數個數小于1,則提示用戶“至少應該給一
個 參數”,并立即退出;如果參數個數不小于1,則顯示第一個 參數所指向的文件中的空白行數
[[ $1 == "" ]] && echo "please enter a parameter" || echo $(grep "^$" $1 | wc -l)

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

#!/bin/bash
#
ipaddr='(\<([0-9]|[1-9][0-9]|1[0-9]{2}|2([0-4][0-9]|5[0-5]))\>\.){3}\<([0-9]|[1-9][0-9]|1[0-5][1-9]|2([0-4][0-9]|25[0-5]))\>'
    read -p "please input a IPV4 addr: " ipv4
    if [[ $ipv4 =~ $ipaddr ]];then
        echo "a legal IP."
        ping $ipv4 -c 4
        echo "這個IP可以正常訪問"
    else
        echo "unlegal IP"
        echo "請輸入正確的網址"
        exit
    fi

10、chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判 斷當前用戶對/tmp/fiile1文件 是否不可讀且不可寫 ?

#!/bin/bash
##chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判 斷當前用戶對/tmp/fiile1>文件 是否不可讀且不可寫 ?
flie1=/home/soft/zuoye/file
[ -r $file1 ]
arg1=$(echo $?)
echo $arg1
[[ $arg1 -eq 0 ]] && echo "該用戶對此文件有讀的權限" || echo "該用戶對此文件沒有
讀的權限"
[ -w $file1 ]
arg2=$(echo $?)
echo $arg2
[[ $arg2 -eq 0 ]] && echo "該用戶對此文件有寫的權限" || echo "該用戶對此文件沒有
寫的權限"

11、編寫腳本/root/bin/nologin.sh和login.sh,實現禁止和允許普通用戶登錄系統。

#!/bin/bash
touch /etc/nologin

12、計算1+2+3+…+100的值

#!/bin/bash
for (( i = 0; i < 100; i++ ))
do
        result=$[ ${result} + ${i} ]
done
echo $result

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

(22)
forestforest
上一篇 2016-08-24 11:20
下一篇 2016-08-24 14:49

相關推薦

  • CentOS系統啟動

    Linux組成 Linux: kernel+rootfs kernel:  進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能 rootfs: 程序和glibc 庫:函數集合, function,  調用接口(頭文件負責描述) 過程調用:procedure ,無返回值 函數調用:function 程序:二進制執行文件 內核設計流派…

    2017-05-15
  • Linux任務計劃命令及應用

    at命令,crontab命令

    2018-03-12
  • Linux終端和偽終端簡述

    本文簡述Linux各種類型終端的區別以及如何用命令查看終端類型

    Linux干貨 2018-03-26
  • 軟件包管理

    一、軟件管理程序rpm 簡介:RPM是通過預編譯并打包成為RPM文件格式后再加以安裝的一種方式,并且還能夠進行數據庫的記載。 1、優點:     1、RPM內含已經編譯過的程序與設置文件等數據,可以讓用戶免除重新編譯的困擾;     2、RPM在被安裝之前,會先檢查系統的硬盤容量…

    Linux干貨 2016-08-24
  • N26-第六周

    請詳細總結vim編輯器的使用 vim 模式化的編輯器 vim的三種模式:1.編輯模式(命令模式)                          2.輸入模式          …

    Linux干貨 2017-03-13
欧美性久久久久