zoukankan      html  css  js  c++  java
  • Shell笔试题1

    1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下。

    #!/bin/bash
    #1.sh
    #判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下
    #file executable: chmod 755 1.sh
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    echo -e “The program will Judge a file is or not a device file. ”
    read -p “Input a filename : ” filename
    if [ -b "$filename" -o -c "$filename" ]
    then
    echo “$filename is a device file” && cp $filename /dev/ &
    else
    echo “$filename is not a device file” && exit 1
    fi
    ----------------------------------------------------
    2. 设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。

    #!/bin/bash
    #2.sh
    #设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。
    #file executable: chmod 755 2.sh
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    groupadd class1
    for i in {9901..9930}
    do
    xx=`echo $i | sed ’s/99//g’`
    useradd -g class1 std$xx
    echo std$xx | passwd std$xx –stdin
    echo -e “user std$xx password is std$xx” >> /root/newuser.txt
    done

    -------------------------------------------
    3.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。

    #!/bin/bash
    #4.sh
    #编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
    #file executable: chmod 755 3.sh
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    i=1
    while [ i -le 50 ]
    do
    let i++
    userdel -r stud$i
    done

    ---------------------------------------------
    4.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:
    (1)在下午4 :50删除/abc目录下的全部子目录和全部文件;
    (2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内;
    (3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;
    (4)在下午5:55将IDE接口的CD-ROM卸载(假设:CD-ROM的设备名为hdc);
    (5)在早晨8:00前开机后启动。

    vim /etc/crontab 在里面增加下面内容:

    50 16 * * * root rm -rf /abc/* 2>&1 &
    00 8-18 * * * root cat /xyz/x1|awk ‘{print $1}’ >> /backup/bak01.txt 2>&1 &
    50 17 * * 1 root cd /data;tar -zcvf backup.tar.gz * 2>&1 &
    55 17 * * * root umount /hdc 2>&1 &

    5)在早晨8:00前开机后启动 –> 这个我不是很明白它的意思,不知道是不是8点前开机就启动上面的设定,8点后才开机就不用启动的意思。
    姑且用下面这个命令吧
    chkconfig –level 2345 crond on

    ---------------------------------------------
    5.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名
    为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。

    vim /usr/bin/fileback.sh

    #!/bin/bash
    #fileback.sh
    #file executable: chmod 755 fileback.sh
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    filename=`date +%y%m%d`_etc.tar.gz
    cd /etc/
    tar -zcvf $filename *
    mv $filename /root/bak/
    ——————————————————
    vim /etc/crontab 加入
    * * 1 * * root ./fileback.sh &

    ------------------------------------------------
    6.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?
    可以用 contab -e 来做,和上面一题差不多。

    7.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其
    中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

    #!/bin/bash
    #7.sh
    #file executable: chmod 755 7.sh
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    for ((i=1;i<=50;i++))
    do
    mkdir -p /usrdata/user$i
    cd /usrdata
    chmod 754 user$i
    done

    原文:http://www.intgoo.com/100555.html

  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/bigbean/p/3661545.html
Copyright © 2011-2022 走看看