zoukankan      html  css  js  c++  java
  • shell编程习题

    1、编写脚本/root/bin/systeminfo.sh,,包括主机名,IPv4地址,操作系统版本,内核版本, CPU型号,内存大小,硬盘大小。
    #!/bin/bash
    echo "主机名;`hostname`"
    echo "IPv4地址;`ip a | grep ens33$ | cut -d " " -f 6`"
    echo "操作系统版本;`cat /etc/redhat-release`"
    echo "内核版本;`uname -r`"
    echo "cpu:I`lscpu | grep "Model name:" | cut -d "I" -f 2` "
    echo "内存大小;`free -h | grep "Mem" | cut -d "M" -f 2 | tr -d "a-z"":"" " `M"
    echo "硬盘大小 ;`df -h | grep root | cut -d " " -f 4`"

     


    2.统计系统中以.sh结尾的文件总大小,输出结果以kb为单位
    #!/bin/bash
    num=0
    for i in `find / -type "f" -a -name "*.sh" -exec ls -l {} ; | cut -d " " -f 5`
    do
    let num+=$i
    done
    echo "$(($num/1024))KB"
    ~


    3.写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数;如果参数个数小于1,则提示用户“至少应该给一个 参数”,并立即退出;如果参数个数不小于1,则显示第一个 参数所指向的文件中的空白行数
    #!/bin/bash
    read -p "请输入一个文件名的绝对路径:" file
    if [ -e $file ];then
    num=`grep "^$" $file | wc -l`
    echo "$num"
    else
    echo "请输入一个存在文件!"
    fi


    4.:批量判断当前目录下所有文件类型
     
    #!/bin/bash
    for i in `ls /var`
    do
    cd /var
    X=`ls -ld $i | cut -c 1`
    if [ "$X" == "-" ];then
    echo " $i------是文件"
    elif [ "$X" == "d" ];then
    echo "$i------目录"
    elif [ "$X" == "l" ];then
    echo "$i------链接文件"
    else
    echo "$i------无效文件"
    fi
    done


    5.找出系统中含有某个关键词的文件,并输出到终端,关键词用户输入指定
    #!/bin/bash
    read -p "请输入关键字 :" X
    for i in `find /etc/ -type "f"`
    do
    if grep $X $i &>/dev/null;then
    echo "$i--$X"
    fi

    done


    6.实现批量化创建100个用户,并创建8位随机密码,且可登陆
    #!/bin/bash
    for i in `seq 100`
    do
    useradd yonghu$i
    mima=$(echo $RANDOM | md5sum | cut -c 1-8)
    echo "$mima" | passwd --stdin yonghu$i
    echo -e "用户:yonghu$i 密码:$miman " >>/root/test


    done

     

    7.实现批量化检测当前教室主机在线状况,在线主机保存至一个文件中
    #!/bin/bash
    . /etc/init.d/functions
    ip=192.168.126.
    for i in `seq 10`
    do
    if ping -c 1 -w 1 $ip$i >>/dev/null;then
    echo -n "$ip$i"
    success
    echo ""
    echo "$ip$i" >>/root/ip
    else

    echo -n "$ip$i"
    failure
    echo ""

    fi

     

    done


    8.打印九九乘法表
    #!/bin/bash
    for i in `seq 9`
    do
    for l in `seq 9`
    do
    if [ $l -le $i ];then
    echo -n " $i*$l=$(($i*$l))"
    fi
    done
    echo " "
    done

     

    9.计算100以内的奇数和
    ╭─root@zxw ~
    ╰─➤ cat test12.sh
    #!/bin/bash
    sum=0
    for i in `seq 1 2 100`
    do
    let sum+=$i
    done
    echo "$sum"

    ─root@zxw ~
    ╰─➤ bash test12.sh
    2500

     

  • 相关阅读:
    (void) (&_x == &_y)的作用
    GNU C 与 ANSI C(下)
    GNU C 与 ANSI C(上)
    “多个单核CPU”与“单个多核CPU”哪种方式性能较强?
    ARM 处理器寻址方式之间接寻址的几种表达
    Video for Linux Two API Specification
    UVC 驱动调用过程与驱动框架的简单分析
    线程安全
    合法的立即数的判断
    Redis的Java客户端Jedis
  • 原文地址:https://www.cnblogs.com/itzhao/p/11253975.html
Copyright © 2011-2022 走看看