Shell编程练习题及100题目

https://blog.csdn.net/yugemengjing/article/details/82469785

1、编写hello world脚本
2、通过位置变量创建 Linux 系统账户及密码
3、备份日志
4、一键部署 LNMP(RPM 包版本)
5、监控内存和磁盘容量,小于给定值时报警
6、猜数字游戏
7、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用字串对比版本)
8、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用 UID 数字对比版本)
9、编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默认的 123456 作为默认密码。
10、输入三个数并进行升序排序
11、石头、剪刀、布游戏
12、编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(for 版本)
13、编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(while 版本) 
14、编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态(多进程版)
15、编写脚本,显示进度条
16、进度条,动态时针版本;定义一个显示进度的函数,屏幕快速显示|  / ‐
17、9*9 乘法表
18、使用死循环实时显示 eth0 网卡发送的数据包流量
19、使用 user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码本脚本执行,需要提前准备一个 user.txt 文件,该文件中包含有若干用户名信息
20、编写批量修改扩展名脚本
21、使用 expect 工具自动交互密码远程其他主机安装 httpd 软件
22、一键部署 LNMP(源码安装版本)
23、编写脚本快速克隆 KVM 虚拟机
24、点名器脚本
25、查看有多少远程的 IP 在连接本机
26、对 100 以内的所有正整数相加求和(1+2+3+4...+100)
27、统计 13:30 到 14:30 所有访问 apache 服务器的请求有多少个
28、统计 13:30 到 14:30 所有访问本机 Aapche 服务器的远程 IP 地址是什么 
29、打印国际象棋棋盘
30、统计每个远程 IP 访问了本机 apache 几次?
31、统计当前 Linux 系统中可以登录计算机的账户有多少个
32、统计/var/log 有多少个文件,并显示这些文件名
33、自动为其他脚本添加解释器信息
34、自动化部署 varnish 源码包软件
35、编写 nginx 启动脚本
36、自动对磁盘分区、格式化、挂载
37、自动优化 Linux 内核参数
38、切割 Nginx 日志文件(防止单个文件过大,后期处理很困难)
39、检测 MySQL 数据库连接数量
40、根据 md5 校验码,检测文件是否被修改
41、检测 MySQL 服务是否存活
42、备份 MySQL 的 shell 脚本(mysqldump版本)
43、将文件中所有的小写字母转换为大写字母
44、非交互自动生成 SSH 密钥文件
45、检查特定的软件包是否已经安装
46、监控 HTTP 服务器的状态(测试返回码)
47、自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)
48、使用脚本自动创建逻辑卷
49、显示 CPU 厂商信息
50、删除某个目录下大小为 0 的文件
51、查找 Linux 系统中的僵尸进程
52、提示用户输入年份后判断该年是否为闰年
53、生成随机密码(urandom 版本)
54、生成随机密码(字串截取版本)
55、生成随机密码(UUID 版本,16 进制密码)
56、生成随机密码(进程 ID 版本,数字密码)
57、测试用户名与密码是否正确
58、循环测试用户名与密码是否正确
59、Shell 脚本的 fork 炸弹
60、批量下载有序文件(pdf、图片、视频等等)
61、显示当前计算机中所有账户的用户名称
62、制定目录路径,脚本自动将该目录使用 tar 命令打包备份到/data目录
63、显示进度条(回旋镖版)
64、安装 LAMP 环境(yum 版本)
65、循环关闭局域网中所有主机
66、获取本机 MAC 地址
67、自动配置 rsynd 服务器的配置文件 rsyncd.conf
68、修改 Linux 系统的最大打开文件数量
69、设置 Python 支持自动命令补齐功能
70、自动修改计划任务配置文件
71、使用脚本循环创建三位数字的文本文件(111-999 的文件)
72、找出/etc/passwd 中能登录的用户,并将对应在/etc/shadow 中第二列密码提出处理
73、统计/etc/passwd 中 root 出现的次数
74、统计 Linux 进程相关数量信息
75、从键盘读取一个论坛积分,判断论坛用户等级
76、判断用户输入的数据类型(字母、数字或其他) 
77、显示进度条(数字版) 
78、打印斐波那契数列
79、判断用户输入的是 Yes 或 NO
80、显示本机 Linux 系统上所有开放的端口列表
81、将 Linux 系统中 UID 大于等于 1000 的普通用户都删除
82、使用脚本开启关闭虚拟机
83、调整虚拟机内存参数的 shell 脚本 
84、查看 KVM 虚拟机中的网卡信息(不需要进入启动或进入虚拟机) 
85、不登陆虚拟机,修改虚拟机网卡 IP 地址
86、破解虚拟机密码,无密码登陆虚拟机系统
87、Shell 脚本对信号的处理,执行脚本后,按键盘 Ctrl+C 无法终止的脚本
88、一键部署 memcached
89、一键配置 VNC 远程桌面服务器(无密码版本)
90、关闭 SELinux
91、查看所有虚拟机磁盘使用量以及CPU使用量信息
92、使用 shell 脚本打印图形
93、根据计算机当前时间,返回问候语,可以将该脚本设置为开机启动
94、读取用户输入的账户名称,将账户名写入到数组保存
95、判断文件或目录是否存在
96、打印各种格式的时间
97、使用 egrep 过滤 MAC 地址
98、统计双色球各个数字的中奖概率
99、生成签名私钥和证书
100、使用awk编写的wc程序

原文地址:https://www.cnblogs.com/mailaidedt/p/15196130.html