shell腳本編程練習

1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態

在線的主機使用綠色顯示

不在線的主使用紅色顯示

#!/bin/bash

#

for i in {1..254};do

if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then

echo -e “\033[32m 192.168.1.$i \033[0m is up”

else

echo -e “\033[31m 192.168.1.$i \033[0m is down”

fi

done

2、如何給網絡接口配置多個地址,有哪些方式?

  1. a)?使用ifconfig命令

例如?ifconfig eno16777736:0 192.168.0.100/24

  1. b)?使用Ip addr命令

例如?ip addr add 192.168.0.101/24 dev eno16777736

  1. c)?通過配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE來識別接口并完成配置;
  2. d)?使用nmtui命令

3、寫一個腳本,完成以下功能

(1)?假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干

(2)?顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串

(3)?顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串

(4)?分別統計S開頭和K開頭的文件各有多少

#!/bin/bash

#

declare -i n=0

declare -i m=0

 

for i in $(ls /etc/rc.d/rc3.d); do

 

if [ $(echo $i | cut -c 1)? == “K” ]; then

echo “$i stop”

let n++

elif [ $(echo $i | cut -c 1) == “S” ]; then

echo “$i start”

let m++

fi

 

done

 

echo “K is $n S is $m.”

4、寫一個腳本,完成以下功能

(1)?腳本能接受用戶名作為參數

(2)?計算此些用戶的ID之和

#!/bin/bash

#

declare -i sum=0

 

for i in $@; do

if ! id $i &> /dev/null; then

echo “$i is not user”

else

let sum=$sum+$(id -u $i)

fi

done

 

echo “uid sum = $sum”

5、寫一個腳本

(1)?傳遞一些目錄給此腳本

(2)?逐個顯示每個目錄的所有一級文件或子目錄的內容類型

(3)?統計一共有多少個目錄;且一共顯示了多少個文件的內容類型

#!/bin/bash

#

declare -i m=0

declare -i n=0

 

for i in $@;do

if [ -d $i ];then

for x in $i/*;do

echo $x

let m++

if [ -d $x ];then

echo $x

let n++

fi

done

else

echo “$i is not a dir or not file”

fi

 

done

 

echo ” dir = $n?? file = $m ”

6、寫一個腳本

通過命令行傳遞一個參數給腳本,參數為用戶名

如果用戶的id號大于等于500,則顯示此用戶為普通用戶

#!/bin/bash

#

uname=$1

if id $uname &> /dev/null ;then

if [ $(id -u $uname) -ge 500 ];then

echo “this is a normal user”

else

echo “Not an ordinary user”

fi

else

echo “not a user”

fi

7、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來

#!/bin/bash

#

for i in {20..100};do

if ping -c 1 172.16.250.$i &> /dev/null;then

echo “172.16.250.$i is online”

fi

done

8、打印九九乘法表

#!/bin/bash

#

for i in ‘seq 1 9’;do

for j in ‘seq 1 $i’;do

echo -n -e “${j}X${i}=$[$j*$i]\t”

done

echo

done

 

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

(4)
N27_wjxN27_wjx
上一篇 2017-11-15 15:59
下一篇 2017-11-15 19:20

相關推薦

  • 14 用戶組和權限管理4

    14 用戶組和權限管理4 一、雜項知識整理 1、groups 查看用戶所屬組列表 [user1@localhost ~]$ groups user3 user1 2、文件屬性:-rw-r–r–. 1 root root 0 8月   3 07:56 cgroup.clone_children &…

    Linux干貨 2016-08-04
  • linux用戶管理實戰

    ?1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登陸多次,則只顯示一次即可。 [root@localhost ~]# who |cut -d ‘ ‘ -f1 |sort -u ?2、取出最后登陸到當前系統的用戶的相關信息。 [root@localhost ~]# who |tail -1 ?3、取出當前系統上被用戶當做…

    2018-02-08
  • NFS服務器的安裝與配置

    一、NFS服務簡介 NFS 是Network File System的縮寫,即網絡文件系統。一種使用于分散式文件系統的協定,由Sun公司開發,于1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位于服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。 NFS 的基本原則是“容許…

    Linux干貨 2017-05-02
  • Linux基礎知識之IO重定向

    該博文以CentOS6.8_x86_64系統為基礎,Xshell 5遠程連接CentOS系統,以root身份登錄系統。  什么是I/O重定向?       所謂I/O重定向簡單來說就是一個過程,這個過程捕捉一個文件,或者命令,程序,腳本,甚至腳本中的代碼塊(codeblock)的輸出,然后把捕捉到的輸出,作為輸入發送給…

    Linux干貨 2016-07-26
  • LINUX-用戶和組管理

    LINUX用戶和組管理 linux用戶分類:Username/UID      管理員:root,UID 0號,擁有最高權限;負責系統的啟功、停止,安裝新軟件,               增加、刪除用戶,保證系統正常運轉;     &nb…

    2017-05-30
  • Bash Shell中的for循環和運算表達式應用

    Bash Shell中的for循環和運算表達式應用 1、寫一個腳本 實現以下功能: 接受一個以上文件路徑作為參數, 顯示每個文件擁有的行數,總結說明本次共為幾個文件統計了其行數。設定此腳本至少需要一個參數并給出提示,$#表示參數的個數。將腳本提供的所有參數組成一個列表放入for語句依次進行循環執行echo "$i has $(wc -l $i | …

    Linux干貨 2016-12-13

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-12-02 09:20

    作業不錯,繼續加油。

欧美性久久久久