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

相關推薦

  • CentOS 7 yum安裝LAMP,LNMP并搭建WordPress個人博客網站

    本次實驗要進行的是在CentOS7.2,內核版本3.10.0-327.el7.x86_64的環境下搭建LAMP和LNMP,并在此之上做一個WordPress博客網站。 [root@Shining ~]# uname -a Linux Shining.ACG 3.10.0-327.el7.x86_64&nbsp…

    Linux干貨 2016-11-24
  • 什么是文件系統

    文件系統:層級結構;有索引; /: 原初起點; 倒置樹狀結構; /dev/pts/2: 最左側/: 表示根目錄 其它的/: 表示路徑分隔符 Linux的路徑分隔符是/ Windows的是\ 文件的路徑表示: 絕對路徑:從根開始表示出的路徑  相對路徑:從當前位置開始表示出的路徑 文件名使用法則: 嚴格區分字符大小寫:file1, File1, FI…

    Linux干貨 2016-10-29
  • Linux 基礎(5)

    /etc/passwd           /etc/shadow         /etc/gpasswd (chage)            /etc/gshadow    usera…

    2017-07-22
  • 搭建博客程序wordpress

    根據需求安裝相關軟件,搭建實驗環境: #CentOS 6:Httpd,PHP,mysql-server,php-mysql #CentOS 7:Httpd,php,php-mysql mariadb-server 下載wordpress程序,并解壓至/var/www/html/目錄下 [root@centos077 html]# pwd /var/www/h…

    2017-04-28
  • grep 命令詳解

    grep 命令詳解 概述:本文檔基于 info grep 翻譯,完成度可能 90% 左右。 作者:N10-guli 時間:2016-01-05 版本:v1.0 目錄:     1,grep 命令的選項     2,grep 命令的正則表達式     3,gre…

    Linux干貨 2016-02-14
  • N25期第三周作業

    1.列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可 who|awk ‘{print $1}’|sort -u 2.取出最后登錄到當前系統的用戶的相關信息 last -1 3.取出當前系統上被用戶當作其默認shell的最多的那個shell cat /etc/passwd|awk -F: ‘{print $NF}’|sort…

    Linux干貨 2016-12-12

評論列表(1條)

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

    作業不錯,繼續加油。

欧美性久久久久