Ⅰ. 学好SHELL_前置条件知识
- vi/vim编辑器运用——(基本掌握)
- linux基本指令——(基本掌握)
- grep,sed,awk指令
- 熟悉常用服务器部署,优化,日志,排错
Ⅱ. 学习训练
事前准备:
新建一个根目录下的script目录,在script目录下配置shell文件
[root@localhost /]#mkdir /script
1. 添加5个用户, user1,…, user5,每个用户添加完成后,都要显示用户某某已经成功添加;
[root@localhost script]# vim useradd.sh
#!/bin/bash
for((x=1;x<=5;x++))
do
useradd user$x
echo "add users: user$x"
done
-----------:wq!
[root@localhost script]# chmod 777 useradd.sh
执行shell文件:  测试成功: 
2. 每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令的执行结果信息;
[root@localhost script]# vim gaimima.sh
#!/bin/bash
for((k=1;k<=5;k++))
do
echo redhat|passwd --stdin user$k 1>/dev/null
done
测试成功: 
3. 添加3个用户user1, user2, user3;但要先判断用户是否存在,不存在而后再添加;
[root@localhost script]# vim panduanuseradd.sh
#!/bin/bash
for((m=1;m<=3;m++))
do
id user$m &>/dev/null&&echo "user$m have existed"
id user$m &>/dev/null||(useradd user$m;echo "user$m didn't exist;have added")
done
测试成功: 
4. 最后显示当前系统上共有多少个用户
[root@localhost script]
for((t=1;t<=5;t++))
do
cat /etc/passwd|grep user$t
done
测试成功: 
5. 在系统显示水果菜单
Apples (白底红字下划线显示) bananas (白底黄字闪烁显示) oranges (白底黄字下划线显示) cantaloupes(白底绿字下划线显示)
[root@localhost script]# vim shuiguo.sh
#!/bin/bash
echo -e "\033[31;47;4m Apples\t\033[0m\033[33;47;5m bananas\t\033[0m\033[33;47;4m oranges\t\033[0m\033[32;47;4m cataloupes\t \033[0m"
// “-e”: echo 指令的一个可选项,用于激活特殊字符的解析器
// "\033":引导非常规字符序列,可以当作开始标志
// "[":引导特征数字的一个符号
// 31;47;4为特征数字——影响字体显示,背景颜色等,可不分前后
// “m”:特征值结束字符,后跟字符
// ”\t“:水平制表符(在shell字体输出表达格式中非必须要素)
测试成功:   
6. 在系统打印表格内容
 [root@localhost script]# vim biaoge.sh
#!/bin/bash
printf "%-1s\t %-8s\t %-3s\t\n" Number Name Age 1 Zhangan 18 2 Lisi 20 3 Wangmazi 21
//"%-ns":n——字符数量,s——字符串类型
测试成功: 
合体!
[root@localhost script]# vim total.sh
for((x=1;x<=5;x++))
do
id user$x &>/dev/null&&echo "user$x have existed"
id user$x &>/dev/null||(useradd user$x;echo "user$x didn't exist;have added")
done
for((k=1;k<=5;k++))
do
echo redhat|passwd --stdin user$k 1>/dev/null
done
for((t=1;t<=5;t++))
do
cat /etc/passwd|grep user$t
done
echo -e "\033[31;47;4m Apples\t\033[0m\033[33;47;5m bananas\t\033[0m\033[33;47;4m oranges\t\033[0m\033[32;47;4m cataloupes\t \033[0m"
printf "%-1s\t %-8s\t %-3s\t\n" Number Name Age 1 Zhangan 18 2 Lisi 20 3 Wangmazi 21
测试成功: user1-5不存在时测试效果:  user1-5已存在时测试效果: 
(" ......................阿弥陀佛......................\n"+
" _oo0oo_ \n"+
" o8888888o \n"+
" 88\" . \"88 \n"+
" (| -_- |) \n"+
" 0\\ = /0 \n"+
" ___/‘---’\\___ \n"+
" .' \\| |/ '. \n"+
" / \\\\||| : |||// \\ \n"+
" / _||||| -卍-|||||_ \\ \n"+
" | | \\\\\\ - /// | | \n"+
" | \\_| ''\\---/'' |_/ | \n"+
" \\ .-\\__ '-' ___/-. / \n"+
" ___'. .' /--.--\\ '. .'___ \n"+
" .\"\" ‘< ‘.___\\_<|>_/___.’>’ \"\". \n"+
" | | : ‘- \\‘.;‘\\ _ /’;.’/ - ’ : | | \n"+
" \\ \\ ‘_. \\_ __\\ /__ _/ .-’ / / \n"+
" =====‘-.____‘.___ \\_____/___.-’___.-’===== \n"+
" ‘=---=’ \n"+
" \n"+
".......................................");
Ⅲ. 总结
要多多动脑,多多百度,多多谷歌,多多动手
|