<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jasmine214--love

    只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    Shell筆試題3

    Posted on 2011-02-09 17:45 幻海藍(lán)夢 閱讀(1008) 評論(0)  編輯  收藏 所屬分類: Shell
    1.查找當(dāng)前目錄中所有大于500M的文件,把這些文件名寫到一個(gè)文本文件中,并統(tǒng)計(jì)其個(gè)數(shù)。
    find ./ -size +500M -type f | tee file_list | wc -l

    2.在目錄/tmp下找到100個(gè)以abc開頭的文件,然后把這些文件的第一行保存到文件new中。
    for filename in `find /tmp -type f -name "abc*"|head -n 100`
    do
    sed -n '1p' $filename>>new
    done

    3.把文件b中有的,但是文件a中沒有的所有行,保存為文件c,并統(tǒng)計(jì)c的行數(shù)。
    grep -xvf a b | tee c | wc -l

    5.每隔10分鐘監(jiān)控一次,監(jiān)控/usr下如果大于5G,發(fā)郵件給管理員
    #!/bin/bash
    while true
    do
        sleep 600
        n=$(du -s /usr | cut -f1)
        if [ $n -gt 5242880 ]
        then
            mail -s "greater" filwsyl@gmail.com < ~/filename #將文件filename的內(nèi)容發(fā)送出去。
        fi
    done
    把某個(gè)目錄下的文件擴(kuò)展名改為bat,再以時(shí)間為文件名壓縮打包存放到某個(gè)目錄。
    #!/bin/bash
    for file in $(ls $1)
    do
        new_file=${file%.*}.bat
        mv ./$1/$file ./$1/$new_file
        tmp=$(date +%y)
        tar cvf ./$tmp.tar ./$1
    done

    9.從網(wǎng)上下載一個(gè)文件,保存到指定目錄
    #!/bin/bash
    url=http://rs1.bn.163.com/ent/2009/05/20_canquedege.wma
    dir=~/下載
    wget -P $dir $url

    10.判斷一個(gè)數(shù)是不是完數(shù)。打印出1-1000之間的完數(shù)。 完數(shù)就是約數(shù)的和等于自身2倍的數(shù)。(6,28,496)
    #!/bin/bash
    sub()
    {
        i=1;
        sum=0;
        while [ $i -le $num ]
        do
            let "m=num%i"
            if [ $m -eq 0 ]
            then
                let "sum=sum+i"
            fi
            let "i=i+1"
        done
        let "a=2*num"
        if [ $a -eq $sum ]
        then
            echo $num
        fi
    }
    num=1
    while [ $num -le 1000 ]
    do
        sub
        let "num = num+1"
    done

    11.以行為單位,求文件A和文件B交集,并集,差集。
    并:
    sort -m <(sort A | uniq) <(sort B | uniq) | uniq
    交:
    sort -m <(sort A | uniq) <(sort B | uniq) | uniq -d
    差:
    sort -m <(sort A | uniq) <(sort B | uniq) <(sort B | uniq) | uniq -u

    12.在某個(gè)文件夾下查找含有指定字符串的文件
    #!/bin/bash
    for file in $(ls $2)
    do
        bname=$(grep -l $1 $2/$file)
        basename $bname
    done
    調(diào)用方法:./tst 000 bash#在文件夾bash中查找含有“000”的文件。

    19.一個(gè)文件內(nèi)容全部是類似
    【202.205.151.21】--【23:59:22】-“HTTP GET”-“Mozila”
    ...
    寫一個(gè)SHELL命令找出最多的10個(gè)IP
    awk -F "--" '{print $1}' shit | sort | uniq -c | sort -r | sed -n '1,10p'

    20./tmp路徑下有800個(gè)文件,文件名的格式是:filename_YYYYMMDD_序列號(從001到999).dat, 例如:filename_20040108_089.dat。現(xiàn)在想把這些文件改名,新文件名的格式是:filename_TODAY(當(dāng)前日期)_序列 號(從500開始,到達(dá)999之后從001開始).dat,例如: 把filename_20040108_089.dat改為filename_20041222_589.dat,注意新文件名的序列號的順序需要和原來 的一致,即要做排序處理。
    #!/usr/bin/bash
    DEST_FILE_PART2="_`date '+%Y%m%d'`_"
    EXT_NAME=".dat"
    SRC_FILE_LIST=`find /tmp -name "*_*_*$EXT_NAME" -print`
    for each in $SRC_FILE_LIST; do
        DEST_FILE_PART1=`echo $each | awk -F"_" '{print $1}'`
        OLD_NUM=`echo $each | awk -F"_" '{print $3}' | awk -F"." '{print $1}'`
        DEST_FILE_PART3=`expr $OLD_NUM + 500`
        [ $DEST_FILE_PART3 -gt 999 ] && DEST_FILE_PART3=`expr $OLD_NUM - 499`
            && DEST_FILE_PART3=`printf %03d $DEST_FILE_PART3`
        DEST_FILE=$DEST_FILE_PART1$DEST_FILE_PART2$DEST_FILE_PART3$EXT_NAME
        echo "mv $each to $DEST_FILE"
        mv $each $DEST_FILE
    done
    我的解法:
    #!/bin/bash
    new_file=$(date +20%y%m%d);
    for file in $(ls ~/bash)
    do
        i=$(echo "$file" | sed 's/.*_[0-9]*_\([0-9]*\).dat/\1/')    #取出序列號
        i=$(echo $i | sed 's/^0*\([0-9]*\)/\1/')                #去掉序列號前面可能的 ‘0’,
        let "ii=i+500"
        if [ $ii -gt 999 ]
        then
            let "ii=ii-999"
        fi
        ii=`printf %03d $ii`                            #添上可能需要的‘0’
        update=$(echo "$file" | sed 's/\(.*\)_[0-9]*_[0-9]*.dat/\1_'$new_file'_'$ii'.dat/')
        mv ~/bash/$file ~/bash/$update
    done

    21.要求:在一個(gè)腳本中完成這個(gè)程序
    1.從文件user.list中取出已給定的用戶名和用戶組,將這些用戶和組按規(guī)則添加到系統(tǒng)中
    2.從password.list中讀取已經(jīng)給定的用戶密碼。
    user.list如下
    zhangsan adminuser,dbuser,updatauser
    lisi dbuser,updatauser
    wanger updatauser,wheel

    #!/bin/bash
    #group add
    for x in ‘awk ‘{print $2}’ user.list | sed ’s/,/\n/g’ | sort | uniq -c|sed ’s/[^a-zA-Z]//g”
    do
            groupadd $x &> /dev/null
    done
    #back message
    if (($?==0))
    then
            echo “Group Ok!!”
    else
        exit 1
    fi
    #user add
    for i in ‘awk ‘{print $1}’ user.list’
    do
        for y in ‘awk ‘{print $2}’ password.list’
        do
        useradd $i &> /dev/null
        echo $y | passwd –stdin $i &> /dev/null
        done
    done
    #back message
    if (($?==0))
    then
        echo “User Ok!”
    else
        exit 1
    fi
    #add users to groups
    for ((q=1;q<=3;q++))
    do
        usermod -G ‘awk “NR==$q {print $2}” user.list | awk ‘{print $2}” ‘awk “NR==$q {print $1}” user.list | awk ‘{print $1}” &> /dev/null
    done
    if (($?==0))
    then
        echo “All Finished!”
    fi
    原文地址http://www.zhangyiqun.cn/115.html

    22.比較兩個(gè)小數(shù)大小。
    awk -v num1=6.6 -v num2=5.5 'BEGIN{print(num1>num2)?"0":"1"}'
    echo "0.14 > 0.15" | bc
    expr 1.2 \< 1.3

    主站蜘蛛池模板: 亚洲自偷自偷图片| 中文字幕亚洲精品无码| 2021在线永久免费视频| 亚洲欧洲无卡二区视頻| 77777亚洲午夜久久多人| 亚洲高清视频免费| 男女交性无遮挡免费视频| 久久精品国产亚洲av四虎| 免费鲁丝片一级在线观看| 成人爽a毛片免费| 亚洲aⅴ无码专区在线观看| 国产精品国产亚洲精品看不卡| 无人在线观看免费高清视频| 国产男女爽爽爽免费视频 | 久久亚洲AV无码西西人体| 最近免费中文字幕大全免费| 人妻18毛片a级毛片免费看| 亚洲日韩国产精品无码av| 亚洲不卡AV影片在线播放| 国产99视频精品免费观看7| 久99久无码精品视频免费播放| 亚洲一区精彩视频| 亚洲成a人片在线观看无码 | 亚洲AV无码乱码在线观看性色扶| 久久久免费精品re6| xxxxx做受大片视频免费| 亚洲中文字幕久久无码| 伊人久久综在合线亚洲2019| 亚洲日韩中文在线精品第一 | 亚洲综合亚洲综合网成人| 亚州免费一级毛片| h视频在线观看免费| 激情五月亚洲色图| 亚洲一区二区中文| 日韩一卡2卡3卡4卡新区亚洲| 午夜无遮挡羞羞漫画免费| 亚洲高清免费在线观看| 无码av免费网站| 中出五十路免费视频| 春意影院午夜爽爽爽免费| 国产精品亚洲AV三区|