Shell编程面试题


Posted in 面试题 onMay 29, 2016
1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。
参考程序:
#!/bin/sh
FILENAME=
echo “Input file name:”
read FILENAME
if [ -c "$FILENAME" ]
then
cp $FILENAME /dev
fi
2.请下列shell程序加注释,并说明程序的功能和调用方法:#!/bin/sh
#!/bin/sh
#
# /etc/rc.d/rc.httpd
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case “$1″ in
‘start’)
/usr/sbin/apachectl start ;;
‘stop’)
/usr/sbin/apachectl stop ;;
‘restart’)
/usr/sbin/apachectl restart ;;
*)
echo “usage $0 start|stop|restart” ;;
esac
参考答案:
(1)程序注释
#!/bin/sh 定义实用的shell
#
# /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this

# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case “$1″ in #case结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置参数”,即$1
‘start’) #若位置参数为start
/usr/sbin/apachectl start ;; #启动httpd进程
‘stop’) #若位置参数为stop
/usr/sbin/apachectl stop ;; #关闭httpd进程
‘restart’) #若位置参数为stop
/usr/sbin/apachectl restart ;; #重新启动httpd进程
*) #若位置参数不是start、stop或restart时
echo “usage $0 start|stop|restart” ;; #显示命令提示信息:程序的调用方法
esac #case结构结束
(2)程序的功能是启动,停止或重新启动httpd进程
(3)程序的调用方式有三种:启动,停止和重新启动。
3.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。
参考答案:
#!/bin/sh
i=1
groupadd class1
while [ $i -le 30 ]
do
if [ $i -le 9 ] ;then
USERNAME=stu0${i}
else
USERNAME=stu${i}
fi
useradd $USERNAME
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
i=$(($i 1))
done

4.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
参考程序:
#!/bin/sh
i=1
while [ $i -le 50 ]
do
userdel -r stud${i}
i=$(($i 1 ))
done
5.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:
(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前开机后启动。
参考答案:
解决方案:
(1)用vi创建编辑一个名为prgx的crontab文件;
(2)prgx文件的内容:
50 16 * * * rm -r /abc/*
0 8-18/1 * * * cut -f1 /xyz/x1 >;>; /backup/bak01.txt
50 17 * * * tar zcvf backup.tar.gz /data
55 17 * * * umount /dev/hdc
(3)由超级用户登录,用crontab执行 prgx文件中的内容:
root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。
6.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。
参考答案:
(1)编写shell程序fileback:
#!/bin/sh
DIRNAME=`ls /root | grep bak`
if [ -z "$DIRNAME" ] ; then
mkdir /root/bak
cd /root/bak
fi
YY=`date %y`
MM=`date %m`
DD=`date %d`
BACKETC=$YY$MM$DD_etc.tar.gz
tar zcvf $BACKETC /etc
echo “fileback finished!”
(2)编写任务定时器:
echo “0 0 1 * * /bin/sh /usr/bin/fileback” >; /root/etcbakcron
crontab /root/etcbakcron
或使用crontab -e 命令添加定时任务:
0 1 * * * /bin/sh /usr/bin/fileback
7.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?
参考答案:(1)第一种方法:
用户应使用crontab –e 命令创建crontab文件。格式如下:
0 0 * * sun cp –r /user/backup /tmp
(2)第二种方法:
用户先在自己目录下新建文件file,文件内容如下:
0 * * sun cp –r /user/backup /tmp
然后执行 crontab file 使生效。
8.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
参考答案: 建立程序 Pro16如下:
#!/bin/sh
i=1
while [ i -le 50 ]
do
if [ -d /userdata ];then
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo “user$i”
let “i = i 1″ (或i=$(($i+1))
else
mkdir /userdata
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo “user$i”
let “i = i 1″ (或i=$(($i+1))
fi
done

Tags in this post...

面试题 相关文章推荐
mysql_pconnect()和mysql_connect()有什么区别
May 25 面试题
Collection和Collections的区别
May 02 面试题
在C语言中"指针和数组等价"到底是什么意思?
Mar 24 面试题
金山毒霸系列的笔试题
Apr 13 面试题
Javascript如何发送一个Ajax请求
Jan 26 面试题
WINDOWS域的具体实现方式是什么
Feb 20 面试题
说出你对remoting 和webservice的理解和应用
Jun 08 面试题
如何进行Linux分区优化
Sep 13 面试题
linux面试相关问题
Apr 28 面试题
东方红海科技面试题软件测试方面
Feb 08 面试题
什么是JNDI的上下文?如何初始化JNDI上下文
Mar 10 面试题
构造方法和其他方法的区别
Apr 26 面试题
如何进行Linux分区优化
Sep 13 #面试题
一些Unix笔试题和面试题
Sep 25 #面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
Apr 11 #面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Jan 13 #面试题
linux下进程间通信的方式
Jan 23 #面试题
linux系统都有哪些运行级别
Mar 26 #面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
May 03 #面试题
You might like
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
python输入错误后删除的方法
2019/10/12 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
python创建学生管理系统
2019/11/22 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
入党思想汇报
2014/01/05 职场文书
阿德的梦教学反思
2014/02/06 职场文书
经营场所证明范本
2015/06/19 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏