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.178linux.com/88406

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

相关推荐

  • corosync v2 + pacemaker + crmsh 实现mariadb高可用

    高可用mariadb拓扑图 一、设计前提     1、时间同步 # ntpdate 172.16.0.1 或者 # chronyc sources     2、所有的主机对应的IP地址解析可以正常工作, 主机名要与命令#uname -n 所得的结果一致   &…

    Linux干货 2016-08-28
  • 磁盘管理总结

    linux磁盘管理总结 一、向linux主机添加硬盘 不同类型的硬盘,linux需要不同的驱动。kernel需要驱动,硬盘是基本的硬件设备,驱动一般不需要安装了。 (1)linux内核的设计架构,使用了模块。除了系统必须的驱动,一般以模块方式加载到内核中。内核的模块放在。/lib/modules内。 (2)linux一切皆文件,设备也是文件,ls -l 查看…

    Linux干货 2016-08-29
  • httpd及https

    1、建立httpd服务,要求: (1) 提供两个基于名称的虚拟主机:     www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;   &nbs…

    2017-06-05
  • N25期–第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 启动过程 (PC架构)    POST –> Boot Sequence(BIOS) –> Boot Loader (MBR)–>GRUB—> Kernel(ramdisk) –> ro…

    Linux干货 2017-03-13
  • Linux的文本处理工具练习题

    练习一:     1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示  练习二:       1、显示/proc/meminfo文件中以大…

    Linux干货 2016-08-08
  • 文件的权限管理

    提问:可执行文件的标准格式是什么?     Linux下面,目标文件、共享对象文件、可执行文件都是使用ELF文件格式来存储的。程序经过编译之后会输出目标文件,然后经过链接可以产生可执行文件或者共享对象文件。Linux下面使用的ELF文件和Windows操作系统使用的PE文件都是从Unix系统的COFF文件格式演化来的。…

    Linux干货 2016-11-23

评论列表(1条)

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

    作业不错,继续加油。