shell脚本练习题
? 1、一个文本类型文件,里面每行存放一个登录者的IP(某些行是重复的),写一个shell脚本输出登录的次数最多的用户;lp_input.txt的内容假设如下 219.217.49.14 175.43.4.87 87.48.98..1 59.73.38.25 219.217.49.14 59.73.38.142 59.73.38.25 219.217.49.14 #!/bin/bash #test.sh Sort ip_input | uniq –c | sort | tail -1 | awk ‘{print $2}’ Sort ip_input | uniq –c | sort -r | head -1 | awk ‘{print $2}’ Uniq –c选项他的作用是将重复的去掉,并且在每行前面添加此行重复次数 Sort 命令的默认排序方式是升序,使用 –r选项逆转排序结果,则出现的次数最多的ip则排在第一行 2、文件的拷贝,在根下创建4个文件m1.txt、m2.txt、m3.txt、m4.txt,用Shell编程,实现自动创建,m1、m2,m3,m4.txt,并将m1.txt,m2.txt、m3.txt、m4.txt,将个文件分别拷贝到各自相应的目录下 思路:用touch创建文件,mkdir命令创建目录,使用while循环依次拷贝,目录和文件表示 第一步#!/bin/bash 第二步cd/(cd到根下) 第三步 touch m{1..4}.txt(创建4个文件) 第四步i=1(设置变量) 第五步while[ #i –le 4 ](利用while设置循环次数) 第六步do(做什么) 第七步mkdir m$i 第八步 cp m$i.txt m$i 第九步i=$((i+1))意思每次复制都加一 第十步done 结束语 4、 判断拷贝 用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到dev目录下 思路: 使用read命令从键盘上获取的文件名 如何判断是否是字符设备 第一步#!/bin/bash 第二步echo –e “please input filename n”(echo –e激活转义符n换行且将光标移至下一行的行首) 第三步read FILENAME(使用read命令从键盘上获取文件名,read直接给FILENAME赋值?? read –t 3指定读三秒) 第四步if [ -c $FILENAME ] 第五步then 第六步 cp $FLIENAME /dev 第七步else 第八步echo “It’s not character device fliename” 第九步fi结束语 4、创建目录 设计一个Shell程序,在/userdata目录下建立50个目录, 即user1~user50,并设置每一个目录权限,其他用户权限为,读;文件的所有者的权限是:读、写、执行;文件的所有者所在的组的权限为:读、执行 思路 while循环生成文件目录 判断/userdata是否存在,如果不存在直接创建子目录,不存在先创建/userdata再创建子目录 权限赋值rwxr-xr—数字方式754 第一步i=1(先取变量值) 第二步while [ $i –le 50 ] 第三步 do 第四步if [ -d /userdata] 判断有没有这个目录 第五步 then 第六步mkdir –p /userdata/user$I 第七步 else 第八步 mkdir /userdata?? mkdir –p /userdata/user$i 第九步fi 第十步chmod 754 /userdata/user$i 第十一步 i=$(($i+1)) 第十二步 done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |