一、字符串运算符

二、创建账户

1.提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默认的 123456 作为默认密码。

read命令参考网址:https://www.cnblogs.com/xiangzi888/archive/2012/03/27/2420084.html

[root@VM_0_10_centos shellScript]# vi autoCreateUser.sh
#!/bin/bash
# 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户
# 不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默
# 认的 123456 作为默认密码。
read -p "Please input a username:" username
# -z 判断一个变量是否为空。如果为空,提示用户必须输入账户名并退出脚本,退出码为2
# 没有输入账户名,退出后使用$?查看返回码为2
if [ -z $username ];
then
echo "您需要输入账户名"
exit 2
fi
# 使用stty -echo 关闭shell的回显功能(即在命令行输入的密码为不可见)
# 使用stty echo 打开shell的回显功能
stty -echo
read -p "Please input a password:" pass
stty echo
pass=${pass:-123456}
useradd "$username"
echo "$pass" | passwd --stdin "$username"

运行脚本之前先赋予执行的权限

chmod a+x 脚本名

2.使用 user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码本脚本执行,需要提前准备一个 user.txt 文件,该文件中包含有若干用户名信息

#!/bin/bash
# 使用 user.txt 文件中的账户,自动创建对应的账户并配置初始密码
# 本脚本执行,需提前准备一个 user.txt 文件,该文件中包含有若干用户名信息
for i in `cat user.txt`
do
useradd $i
echo "" | passwd ‐‐stdin $i
done

三、删除账户

使用命令删除账户(-r 连家目录一起删除)

[root@VM_0_10_centos ~]# userdel -r 账户名
# ==================================
# 删除账户及家目录
read -p "Please enter an account to delete:" username
if [ -z $username ];
then
echo "您需要输入删除的账户名"
exit 2
fi
userdel -r $username
echo "The user delete success!";
# ==================================

四、批量创建账户

通过将账户和密码写入一个txt文件,通过脚本读取创建文件中设置的账户和密码

txt文件不作解释,需要注意的一点是账户和密码之间是使用什么作为分隔符,脚本中则需要修改成对应的分隔符

[root@VM_0_10_centos shellScript]# cat createUsers.sh
#!/bin/bash
# 通过读取users.txt文件批量添加账户
echo $0=$0
echo $1=$1
if [ $# -eq 0 ];then
echo "[usage] 请输入批量创建的账户文件:./createUsers.sh users.txt"
exit 0
fi
# cat命令的输出作为read命令的输入,read读到的值放入line中
cat $1 | while read line
do
# echo $line(输出一行信息)
# awk -F " " 以空格分隔(如果txt中是:,则以:分隔)
username=$(echo $line | awk -F " " '{print $1}')
pass=$(echo $line | awk -F " " '{print $2}')
useradd $username
echo "$pass" | passwd --stdin "$username"
done

五、批量删除账户

通过将账户和密码写入一个txt文件,通过脚本读取创建文件中设置的账户并删除

[root@VM_0_10_centos shellScript]# cat delUsers.sh
#!/bin/bash
# 批量删除
echo $0=$0
echo $1=$1
if [ $# -eq 0 ];then
echo "[usage] 请输入批量创建的账户文件:./createUsers.sh users.txt"
exit 0
fi
# cat命令的输出作为read命令的输入,read读到的值放入line中
cat $1 | while read line
do
# echo $line
# awk -F " " 以空格分隔(如果txt中是:,则以:分隔)
username=$(echo $line | awk -F " " '{print $1}')
userdel -r $username
done

【shell脚本】创建账户及删除账户,批量创建账户及批量删除账户===autoCreateUser.sh的更多相关文章

  1. shell脚本实现查找文件夹下重复的文件,并提供删除功能

    Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件. 然而shell脚本却可以使用几行的命令完成与此 ...

  2. 《Linux命令行与shell脚本编程大全》第十七章 创建函数

    可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了. 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任何位置重用. 17.1.1 创建函数 有 ...

  3. 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  4. Linux 批量创建user和批量删除用户

    Linux 批量创建user和批量删除用户 以下为批量创建用户: #首先我们需要创建一个xxx.txt文件,把需要的我们创建的用户写在这个文本里面来,注意:每写完一个用户都需要换行. vim user ...

  5. 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

    一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...

  6. Shell脚本编程初体验

    原文:http://linoxide.com/linux-shell-script/guide-start-learning-shell-scripting-scratch/ 作者: Petras L ...

  7. Shell脚本中执行mysql的几种方式(转)

    Shell脚本中执行mysql的几种方式(转) 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用 ...

  8. Shell脚本中执行sql语句操作mysql

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  9. 《自拍教程52》Python_adb运行Shell脚本

    Android作为一款Linux终端,肯定是支持.sh后缀的Shell脚本的运行的, 有时候测试环境准备或者长时间截取复杂的日志等,开发会给到一些Shell脚本. Shell脚本的执行的优势: 快捷高 ...

  10. java远程执行linux服务器上的shell脚本

    业务场景:需要从服务器A中新增的文件同步至本地服务器,服务器A中内存有限,需同步成功之后清除文件. Java调用远程shell脚本,需要和远程服务器建立ssh链接,再调用指定的shell脚本. 1.创 ...

随机推荐

  1. python3在mac下配置

    目的 https://github.com/VonSdite/Plane_Wars 可以本地跑起来. 下载并安装python3 https://www.python.org/downloads/mac ...

  2. SQL常用函数之STR()

    使用str函数   :STR 函数由数字数据转换来的字符数据.   语法      STR    (    float_expression    [    ,    length    [    , ...

  3. 总结了11条,我对Python 装饰器的理解

    对于每一个学习 Python 的同学,想必对 @ 符号一定不陌生了,正如你所知, @ 符号是装饰器的语法糖,@符号后面的函数就是我们本文的主角:装饰器. 装饰器放在一个函数开始定义的地方,它就像一顶帽 ...

  4. swift个人总结

    最近iOS10 已经开始正式使用,研究使用了swift3.0,将一些总结记录于此,以便以后查阅.持续更新中. swift中一般将一些功能相近的方法写在同一个延展中,便于代码的规范,找起来也方便.区别o ...

  5. 使用android日志工具

    Log的级别? 日志级别按照高低排序为:ERROR,WARN,INFO,DEBUG,VERBOSE, 日志输出: Log.e()输出ERROR级别的日志信息 Log.w()输出WARN,ERROR级别 ...

  6. 工具类ToastUtil 避免在子线程中使用抛异常 "Can't create handler inside thread that has not called Looper.prepare()"

    package com.example.kbr.utils; import android.view.Gravity; import android.widget.Toast; import io.r ...

  7. DevOps 工程师成长日记系列二:配置

    原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-2-config ...

  8. Xamarin.Forms iOS 真机测试 打包

    等着打包过程中记录一下如何打一个debug包到真机上测试的流程1. 需要在XCode中创建一个新的项目,选择iOS==>Single View App,点击Next 2. 在新的弹框中需要App ...

  9. Eclipse为不同的文件类型设置编码格式和编辑器

    不知道大家遇到项目中编码格式不统一的情况没有,哈哈,我们就是,比如java的编码格式是GBK,html等编码是UTF-8,这样会导致很多问题,比如提交了一个UTF-8的java文件到SVN,会导致后端 ...

  10. 运行java程序

    使用方式: java类名 硬盘上有HelloWorld.class,那么类名就是HelloWorld java HelloWorld[运行先到class路径下] 一定要注意:java命令后面跟的不是文 ...