Shell编程面试题


Posted in 面试题 onMay 30, 2012
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...

面试题 相关文章推荐
C语言面试题
May 19 面试题
RealTek面试题
Jun 28 面试题
XML文档面试题
Aug 05 面试题
什么是网络协议
Apr 07 面试题
什么是索引指示器
Aug 20 面试题
编写一个类体现构造,公有,私有方法,静态,私有变量
Aug 10 面试题
Linux文件系统类型
Sep 16 面试题
下列程序在32位linux或unix中的结果是什么
Mar 25 面试题
一份软件工程师的面试试题
Feb 01 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 面试题
中软国际Java程序员机试题
Aug 19 面试题
Unix控制后台进程都有哪些进程
Sep 22 面试题
如何进行Linux分区优化
Feb 12 #面试题
一些Unix笔试题和面试题
Jan 22 #面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
Sep 18 #面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Nov 24 #面试题
linux下进程间通信的方式
Dec 23 #面试题
linux系统都有哪些运行级别
Apr 15 #面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
Jan 19 #面试题
You might like
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
19个Android常用工具类汇总
2014/12/30 PHP
PHP 实现链式操作
2021/03/09 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
jQuery MD5加密实现代码
2010/03/15 Javascript
jquery 学习笔记一
2010/04/07 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
Servlet方面面试题
2016/09/28 面试题
办加油卡单位介绍信
2014/01/09 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
毕业设计工作总结
2015/08/14 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
市场营销计划书
2019/04/24 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS