手把手教你在Linux下根据习题掌握编程思维 (22)

大家好,先和大家道个歉,很不好意思。。。昨天发的截图,又不是很清晰。。。。我也很无奈,不知道怎么弄啊,这也许就是个人经营自媒体号的无奈吧,没团队能商量。今天我还是直接复制粘贴吧。

学习linux高级编程的心得教程(手把手教你在Linux下根据习题掌握编程思维)(1)

今天和大家分享3道题。因为不知道怎么和大家说for…所以还是通过题说吧。。

##---------------------------------------------------------------------------##

1、 使用for循环在/aaa目录下批量创建10个HTML文件,其中每个文件需要包含10个随机小写字母加固定字符串123

答案:

[root@server /]# mkdir -p /aaa ;for i in $(seq 10) ; do touch /aaa/$(openssl rand -base64 40 |sed 's#[^a-z]##g' |cut -c 1-10)_123.html ; done

[root@server /]# ls /aaa

azetcaylye_123.html dmkpqmiskj_123.html ihlmnybqpa_123.html qhbooldqjy_123.html umhhvgsqgl_123.html cohyyrfrih_123.html iayrbpboxq_123.html iktyelgljb_123.html stwqwnmqpn_123.html xmorqubkco_123.html

2、 将例1中产生的文件名的123字符串全部换成best(最好用for循环实现),并且将扩展名html全部改写成大写。

答案:

[root@server /]# cd /aaa ; for FN in $(ls -l /aaa/ |awk 'NR!=1{print $NF}') ; do NFN=$(echo $FN |sed 's/123.html$/best.HTML/') ; mv $FN $NFN ; done

[root@server aaa]# ls /aaa

azetcaylye_best.HTML iayrbpboxq_best.HTML qhbooldqjy_best.HTML xmorqubkco_best.HTML cohyyrfrih_best.HTML ihlmnybqpa_best.HTML stwqwnmqpn_best.HTML dmkpqmiskj_best.HTML iktyelgljb_best.HTML umhhvgsqgl_best.HTML

或者可以用下面的

[root@server aaa]# cd /aaa ; rename 123.html best.HTML *.html

3、 批量创建10个系统帐号aaa01-aaa10并设置密码(密码为10个随机数,要求是大小写字母和数字的混合)。另外能够生成一个账户名及其对应的密码本,可以告诉给相应用户他们的密码,另外要求用户在第一次登陆系统的时候立即修改密码。

答案:

[root@server ceshi]# cat useradd.sh

#!/bin/bash

# Filename: useradd.sh

# Author : anjingdeshinian

>./ulist.txt

for i in $(seq 10)

do

[ $i -lt 10 ] && UNAME=aaa0$i || UNAME=aaa$i

PASS=$(openssl rand -base64 40 |sed 's#[^0-9a-zA-Z]##g' |cut -c 1-10)

echo "$UNAME --> $PASS" >> ./ulist.txt

useradd $UNAME

echo $PASS |passwd --stdin $UNAME &> /dev/null

chage -d 0 $UNAME

done

[root@server ceshi]# sh useradd.sh

[root@server ceshi]# cat ulist.txt

aaa01 --> wSSMFEi2Dl

aaa02 --> yTjjwvyuSD

aaa03 --> 4z6hOO3jOj

aaa04 --> DEVL6Kn3QZ

aaa05 --> OrQb3Z42TP

aaa06 --> VAwP5hYpQA

aaa07 --> uiY0dtyMMH

aaa08 --> 1qNkcTXMG0

aaa09 --> ezHSi4bhJF

aaa10 --> vWAwrAWx9k

[root@server ceshi]# tail -10 /etc/shadow

aaa01:$6$rf1b0FjE$IOp7cfRcvzQMvEfL/gTK1261X6IdJMjDN6OM8ajEEsUTptH2k25m18mbdnndWEXvbs6TgW0HrVe3jYIpMk9hT0:0:0:99999:7:::

aaa02:$6$x0XSPoBQ$ggMJOB9dlTGJhCSxSenq.ovEk7raez10csVIdcOzRXWk8dfrFDpEwCKj.fLxb0ak0NPD09iWJf4ZWKRsrwhLX/:0:0:99999:7:::

aaa03:$6$rsIxkLsO$N709h4ua2T.8caDXAz8gxHYpUPtEt1qtfdR2pz8pBMV8yqM7k8LGO4LWcx06cR8cPDR7o7gZIB5vPMaHCUgKh/:0:0:99999:7:::

aaa04:$6$iNi9SWRh$DFEtUWRizJviFMeGGk0Whsf6Y.CeHtv5qaCebEdUHxK2IKbdZ98YoGbDcQj2wH9ZO35DPvpdbCnEFQX.oq3gy.:0:0:99999:7:::

aaa05:$6$XlCGx3jf$asQaEchZJ88NQLjSrMOyudJApUZNrYAzZA2D2RRmMgP1luiJW3fHhPSW7fN35YwNr.I/tRJlIQ3gApHbl4gnC0:0:0:99999:7:::

aaa06:$6$3aaPBXEb$UuP/LCwdvp0oCgVe/CtwgoiWcYn9.5wGsPAfQ7DbA.NemMCfcmOaruvIFDK8yCqjBaZplUgKj6Hw4aIARyZt51:0:0:99999:7:::

aaa07:$6$KLPva7BH$sC2vBqSkVPLL34BjHZLobs8heTbOPWFJL51PJniMh.hkNHTu2X/Jid7xh2CVLSgXCpEmTplv/2j56yyJLS96L1:0:0:99999:7:::

aaa08:$6$rDX5beaB$H3WdOtCSVbHgdnkKgl2lPgehU0J2PFejtxUYbdpHT0Iu5G2eNjKwAk6G4liJKZCMo/lkVxPuGMKn/.3Ut/TIP/:0:0:99999:7:::

aaa09:$6$pKJND9.T$fsxSxvLPqXrcVZrZ72ZDYEwEzbwV7AVpm43XVG9O0UWlZnUQtQlNWRbg8ys2pwi1yFpysVhnZeC/tL3xFcRDZ/:0:0:99999:7:::

aaa10:$6$E2jl9M7g$93qEgvU.4TKrzM5zyo56yMmsil2cv1kVA6Y6PEnzg4CrFt6kGasm.Mvl3cGnX91kWVaTkjwPGtpgH1kAxzPAl1:0:0:99999:7:::

##---------------------------------------------------------------------------##

好吧,今天的分享就到这里吧,今天又是周一了,大家可能都会比较累,今天分享的不是很多,大家多看下for循环吧。

如果有不清楚的,大家可以看下我之前发布的文章,多看看,总会有收获的。或者在下面评论区留言,大家也可以一起讨论。

好吧,今天就到这里吧,大家明天见。

,