Shell - 编程题(答案)1

更新时间:2023-11-25 20:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、编写一个名为myfirstshell.sh的脚本,它包括以下内容。 a) 包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的。

b) 问候用户。 c) 显示日期和时间。 d) 显示这个月的日历。 e) 显示您的机器名。

f) 显示当前这个操作系统的名称和版本。 g) 显示父目录中的所有文件的列表。 h) 显示root正在运行的所有进程。 i) 显示变量TERM、PATH和HOME的值。 j) 显示磁盘使用情况。 k) 用id命令打印出您的组ID。 m) 跟用户说“Good bye”

#!/bin/bash

# 09嵌入 5号 贾德进 myfirstshell.sh shell的简单编程 user=` whoami ` case $user in root)

echo \teacher)

echo \*)

echo \esac

echo \日期和时间: `date`\echo \本月的日历: `cal`\

echo \本机的机器名:`hostname`\

echo \当前这个操作系统的名称和版本: `uname -s; uname -v`\echo \父目录中的所有文件的列表:`ls ../`\echo \正在运行的所有进程:` ps -u root`\echo \变数TERM的值:$TERM\echo \变数PATH的值:$PATH\echo \变数HOME的值:$HOME\echo \磁盘的使用情况:`df`\

echo \用id命令打印出你的组ID:`id -g`\echo \

2、设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限为 rwxr-xr—

#!/bin/bash cd /userdata I=1

while [ $I -le 50 ] do

mkdir user$I chmod 754 user$I I=$((I+1)) done

3、编写shell程序,实现自动删除50个用户账号的功能。账号名为stud1至stud50。

for(( i=1;i<=50;i+=1 )); do

useradd \done

for(( i=1;i<=50;i+=1 )); do

userdel -r \done

4、设计一个shell程序,备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。

#!/bin/bash

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`

tar czvf ${YY}${MM}${DD}_etc.gz /etc echo \

5、某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:

(1)在下午4 :50删除/abc目录下的全部子目录和全部文件; (2)下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz; (3)在下午5:55将IDE接口的第二个逻辑分区卸载。

// 采用: vi pram.cron

#(1) 在下午4:50删除/abc目录下的全部子目录和全部文件; 50 16 *** rm -rf /abc/*

#(2) 下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;

50 17 *** tar czvf back.tar.gz /data

#(3) 在下午5:55将IDE接口的第二个逻辑分区卸载. 55 17 *** umount /dev/hda6

// 执行:crontab pram.cron

6、每天下午1:30分备份 /etc下的所有文件到 /home/backup下。而且只保留最近的7个备份。写出过程!

crontab -e 30 13 * * * tar cf /home/backup/etc`date +%u`.tar /etc

本文来源:https://www.bwwdw.com/article/ljkt.html

Top