设为首页 收藏本站
查看: 1024|回复: 0

Linux shell脚本学习和实战之一

[复制链接]

尚未签到

发表于 2018-8-28 09:22:48 | 显示全部楼层 |阅读模式
  1、在/test目录下使用for循环创建10个文件如:test-1,test-2,...test-10
  mkdirsh.sh
  #!/bin/bash
  for i in `seq 10`
  do
  [ ! -d /test ] && mkdir -p /test
  touch /test/test-$i
  done
  chmod +x mkdirsh.sh
  2、在/test目录下快速创建10个文件的方法如:test-1,test-2,...test-10
  [root@Titu-BackupFS test]# touch test-{1..10}
  [root@Titu-BackupFS test]# ll
  total 0
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-1
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-10
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-2
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-3
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-4
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-5
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-6
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-7
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-8
  -rw-r--r-- 1 root root 0 Mar 30 10:36 test-9
  3、将以上文件名的test改为bruce(用for循环)
  renamesh.sh
  #!/bin/bash
  [ -d /test ] && cd /test
  for file in `ls test*`
  do
  mv $file `echo $file | sed 's#test#bruce#g' `
  done
  chmod +x renamesh.sh
  4、将以上文件名的bruce快速改为network
  [root@Titu-BackupFS test]# rename test network *bruce*
  [root@Titu-BackupFS test]# ll
  total 0
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-1
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-10
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-2
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-3
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-4
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-5
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-6
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-7
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-8
  -rw-r--r-- 1 root root 0 Mar 30 10:36 network-9
  5、批量创建10个系统帐号test01,test02,...test10并设置密码
  (1)、首先理解序号数字的生成方法
  [root@Titu-BackupFS test]# echo {01..10}
  01 02 03 04 05 06 07 08 09 10
  [root@Titu-BackupFS test]# seq 10
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  [root@Titu-BackupFS test]# seq -w 10
  01
  02
  03
  04
  05
  06
  07
  08
  09
  10
  (2)、基于序号数字来依次生成用户帐户和密码信息
  createusersh.sh
  #!/bin/bash
  for i in `seq -w 10`
  do
  useradd test$i && echo "test$i" | passwd --stdin test$i
  done
  chmod +x createusersh.sh
  [root@Titu-BackupFS ~]# ./createusersh.sh
  Changing password for user test01.
  passwd: all authentication tokens updated successfully.
  Changing password for user test02.
  passwd: all authentication tokens updated successfully.
  Changing password for user test03.
  passwd: all authentication tokens updated successfully.
  Changing password for user test04.
  passwd: all authentication tokens updated successfully.
  Changing password for user test05.
  passwd: all authentication tokens updated successfully.
  Changing password for user test06.
  passwd: all authentication tokens updated successfully.
  Changing password for user test07.
  passwd: all authentication tokens updated successfully.
  Changing password for user test08.
  passwd: all authentication tokens updated successfully.
  Changing password for user test09.
  passwd: all authentication tokens updated successfully.
  Changing password for user test10.
  passwd: all authentication tokens updated successfully.
  [root@Titu-BackupFS ~]# cat /etc/passwd | grep test*
  test01:x:502:502::/home/test01:/bin/bash
  test02:x:503:503::/home/test02:/bin/bash
  test03:x:504:504::/home/test03:/bin/bash
  test04:x:505:505::/home/test04:/bin/bash
  test05:x:506:506::/home/test05:/bin/bash
  test06:x:507:507::/home/test06:/bin/bash
  test07:x:508:508::/home/test07:/bin/bash
  test08:x:509:509::/home/test08:/bin/bash
  test09:x:510:510::/home/test09:/bin/bash
  test10:x:511:511::/home/test10:/bin/bash
  说明:生成test01,test02,...test10用户成功!
  6、批量删除用户
  userdelsh.sh
  #!/bin/bash
  for username in `cat /etc/passwd| grep test*|awk -F: '{print $1}'`
  do
  userdel -r $username
  done
  chmod +x userdelsh.sh
  [root@Titu-BackupFS ~]# ./userdelsh.sh
  [root@Titu-BackupFS ~]# cat /etc/passwd|grep test*
  说明:删除test01,test02,...test10用户成功!
  7、批量创建10个帐号bruce01,bruce02,...bruce10并设置随机密码
  createusernew.sh
  #!/bin/bash
  for i in `seq -w 10`
  do
  passwd=`echo $RANDOM | md5sum | cut -c 1-8`
  ##注意:将随机数定义为变量后,在后续引用过程中其值保持不变!
  useradd bruce$i && echo "$passwd" | passwd --stdin bruce$i
  echo -e "user:bruce$i \t password:$passwd" >> /tmp/userandpw.log
  done
  chmod +x createusernew.sh
  [root@Titu-BackupFS ~]# ./createusernew.sh
  Changing password for user bruce01.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce02.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce03.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce04.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce05.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce06.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce07.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce08.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce09.
  passwd: all authentication tokens updated successfully.
  Changing password for user bruce10.
  passwd: all authentication tokens updated successfully.
  [root@Titu-BackupFS ~]# su - bruce01
  [bruce01@Titu-BackupFS ~]$ cat /tmp/userandpw.log
  user:bruce01     password:277e5794
  user:bruce02     password:e0ed3fdb
  user:bruce03     password:1936a6d4
  user:bruce04     password:dd10be6e
  user:bruce05     password:842e552b
  user:bruce06     password:ed8d2b54
  user:bruce07     password:50da7bcf
  user:bruce08     password:0463a374
  user:bruce09     password:f29e9d10
  user:bruce10     password:6e88cb6a
  [bruce01@Titu-BackupFS ~]$ su - bruce02
  Password:
  [bruce02@Titu-BackupFS ~]$ exit
  说明:批量创建用户并生成随机数密码验证并成功登录!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-557564-1-1.html 上篇帖子: Shell与其命令语法分析 下篇帖子: shell数组 只保留2个元素
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表