shell 练习题
1.编写脚本/bin/per.sh,判断当前用户对指定参数文件,是否不可读并且不可写
read -p "Please Input A File: " file
if [ ! -e $file ];then
echo "$file not exits"
elif [ -f $file ];then
if [ ! -r $file -a ! -w $file ];then
echo "User Not read and write"
else
echo "$file can read or write"
fi
else
echo "$file is not a normal file"
fi
2.编写脚本/root/bin/excute.sh,判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件
read -p "Input Shell File: " file
if [ -f $file ];then
suffix=`echo "$file" | awk -F. '{print $NF}'`
if [ $suffix == "sh" ];then
chmod +x $file
echo "$file add chmod X success";
else
echo "$file is not .sh file"
fi
else
echo "file is not a normal file"
fi
3.编写脚本/root/bin/nologin.sh 和login.sh,实现禁止和允许普通用户登录系统
login.sh
[ -f "/etc/nologin" ] && rm -rf /etc/nologin && echo "User Can Login" ||echo "User Already Login"
nologin.sh
[ -f "/etc/nologin" ] && echo "Other User Cannot Login System" ||{ touch /etc/nologin; echo "Other User Cannot Login System"; }
4.编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20个用户的ID之和
sum =`awk -F: 'BEGIN{sum=0} NR==10||NR==20 { sum+=$3 } END{ print sum }' /etc/passwd`
echo $sum
5.用两种以上的方式,查目的地当地服务器上面io最繁忙的是哪块硬盘
1.用top命令查看,键入top后显示菜单
wa为等待IO时间,观察这个选项,如果 wa的数量比较大,说明等待输入输出的的io比较多。
2.使用iostat,可以非常详细的查看到是哪块硬盘最繁忙,iostate 默认不安装在系统中,需要使用Yum安装: yum install iostat -y
iostat -x 可以显示详细的Io信息,其中
%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。
iostat -x | awk '$NF ~ /[0-9]+/ && NR>6 {disk[$1]=$NF} END{for(i in disk) print i,disk[i] }'|sort -rn -k2|head -n1
使用命令截取后,可以取到最高值
6.在12月内,每天早上6点到12点,每隔3个小时0分钟执行一次/usr/bin/backup
0 6-12 * 12 * /usr/bin/backup
shell 练习题的更多相关文章
- shell 脚本之 shell 练习题汇总
整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到 ...
- shell练习题5
需求如下: 用shell实现,把一个文件文档中只有一个数字的行给打印出来.(以/password文件为例,自行修改) 参考解答如下 方法1 #!/bin/bash file_name=passwd n ...
- shell练习题4
需求如下: 系统logrotate工具,可以完成日志切割.归档.写一个shell脚本实现类似功能. 举例:假如服务的输出日志是1.log,要求每天归档一个,1.log第二天就变成1.log.1, 第三 ...
- shell练习题2
需求如下: 写一个shell脚本,检查指定的shell脚本是否有语法错误,若有错误,首先显示错误信息,然后提示用户输入q或Q退出脚本, 输入其他内容则直接用vim打开该shell脚本. 参考解答如下 ...
- shell练习题1
需求如下: 写一个shell脚本,把10.0.1.0/24网段在线的ip列出来. 参考解答如下 方法1 #!/bin/bash ip="10.0.1." for i in $(se ...
- shell练习题
一.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. 原文代码为: Shell 1 2 3 4 5 6 7 8 9 10 #!/bin/bash ...
- shell 练习题1
1.实现每次打开一个xx.sh时,自动添加注释信息 [root@chengyinwu ~]# cat .vimrc set ignorecase set nu set autoindent autoc ...
- shell练习题7
需求如下: 输入一串随机数字,然后按千分位输出. 例如:输入随机数字为"123456789",输出为123,456,789 参考解答如下 -方法1 [root@lanquark s ...
- shell练习题6
需求如下: 有日志access.log,部分内容如下: 127.0.0.1 - - [03/Jul/2018:00:00:01 +0800] "GET / HTTP/1.1" 20 ...
随机推荐
- XMD DTD约束 实体学习X1 普通实体 参数实体 内部实体 外部实体 内置实体 解析实体 不解析实体 实体声明 实体引用 字符引用
文档实体可能就是整个XML文档
- Js 实现全屏
<input id="Button1" type="button" value="开始全屏" onclick="kaishi ...
- c++11 thread的学习
http://www.cnblogs.com/wxquare/p/6736202.html 还没开始 留个链接 使用c++11 thread支持实现 一个生产者消费者模型 下面是一个生产者消费者问题 ...
- cmd下一些常用的命令
systeminfo 列出主机名,内存等一些系统信息 tasklist 显示进程信息 (tasklist | finstr eclipse)
- javascript中两种基本常用排序算法分析
备注:内容大部分从网上复制,代码为自己手写.仅做知识的温故知新,并非原创. 1.冒泡排序(Bubble Sort) (1)算法描述 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两 ...
- Dom EVENT对象
Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 一:测试按键 function which ...
- Redis数据库2
一.存储list 1.概述 list类型是按照插入顺序排序的字符串链表,可以在头部(left)和尾部(right)添加新的元素,如果不存在,则自动创建;如果list中所有元素被移除,则list ...
- 3D图形引擎决定三维产业差异化
从2009年中国3D产业初步兴起开始,短短几年间中国的3D技术得到了飞速的发展,3D打印机.3D投影仪.Web3D.虚拟现实.场景漫游等等产业应用应运而生,设备制造商和内容提供商都开始发挥自主创新的优 ...
- Android中文件加密和解密的实现
最近项目中需要用到加解密功能,言外之意就是不想让人家在反编译后通过不走心就能获取文件里一些看似有用的信息,但考虑到加解密的简单实现,这里并不使用AES或DES加解密 为了对android中assets ...
- sizeof(int)
sizeof()操作符检测的是系统为后面()中的类型.变量等分配的内存空间的字节数,这里()中是int,就是求系统为int类型的变量分配几个字节. 在16位int平台下是2:在32位int平台下是4: ...