【shell脚本】创建账户及删除账户,批量创建账户及批量删除账户===autoCreateUser.sh
一、字符串运算符

二、创建账户
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的更多相关文章
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件. 然而shell脚本却可以使用几行的命令完成与此 ...
- 《Linux命令行与shell脚本编程大全》第十七章 创建函数
可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了. 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任何位置重用. 17.1.1 创建函数 有 ...
- 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- Linux 批量创建user和批量删除用户
Linux 批量创建user和批量删除用户 以下为批量创建用户: #首先我们需要创建一个xxx.txt文件,把需要的我们创建的用户写在这个文本里面来,注意:每写完一个用户都需要换行. vim user ...
- 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本
一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...
- Shell脚本编程初体验
原文:http://linoxide.com/linux-shell-script/guide-start-learning-shell-scripting-scratch/ 作者: Petras L ...
- Shell脚本中执行mysql的几种方式(转)
Shell脚本中执行mysql的几种方式(转) 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用 ...
- Shell脚本中执行sql语句操作mysql
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
- 《自拍教程52》Python_adb运行Shell脚本
Android作为一款Linux终端,肯定是支持.sh后缀的Shell脚本的运行的, 有时候测试环境准备或者长时间截取复杂的日志等,开发会给到一些Shell脚本. Shell脚本的执行的优势: 快捷高 ...
- java远程执行linux服务器上的shell脚本
业务场景:需要从服务器A中新增的文件同步至本地服务器,服务器A中内存有限,需同步成功之后清除文件. Java调用远程shell脚本,需要和远程服务器建立ssh链接,再调用指定的shell脚本. 1.创 ...
随机推荐
- 01-Git单人本地仓库操作
Git源代码管理 Git(多人协同开发同一个项目),作用就是源代码管理,为什么需要源代码管理呢,方便多人协同开发,并且方便版本控制. Git管理源代码特点: 1.Git是分布式管理.服务器和客户端都有 ...
- 打开Github网站反应慢的问题
解决办法: 为了提高速度,可以使用HOSTS加速对Github网站加载的资源网站域名解析. 具体做法: 修改 C:\Windows\System32\drivers\etc 中的hosts文件(P ...
- java web工程的配置文件
java web工程的配置文件 1.工程(源码依赖管理) 2.代码生成管理: 3.会话管理:servlet: 4.应用管理: 5.(分布式)资源管理:数据.数据库连接等. pom:源码管理工具 位置: ...
- Redis for OPS 02:消息订阅和事务管理
写在前面的话 上一节谈了 Redis 的安装以及五种基本数据类型的一些简单的操作,本章节主要看看 Redis 的另外一些特征,虽然可能不常用,但是还是需要了解的.对于我们运维人员来讲,这些东西更像拓展 ...
- MySQL for OPS 11:优化
写在前面的话 不管是作为运维还是作为 DBA,我们的工作都不是写 SQL,搞业务.更多的还是如何实现又好又快的给开发提供一个数据库环境和保障数据的安全性.前面的文章中读写分离,高可用,建立索引,分库分 ...
- createscope
/// <summary> /// Creates a new <see cref="IServiceScope"/> that can be used t ...
- Hive表导出成csv文件
命令 hive -e " set hive.cli.print.header=true; #将表头输出 select * from data_table where some_query_c ...
- 易优CMS:小白学代码之notempty
[基础用法] 名称:notempty 功能:判断某个变量是否为空,可以嵌套到任何标签里面使用,比如:channel.type等 语法: {eyou:notempty name='$eyou.field ...
- opencv::DNN介绍
DNN模块介绍: Tiny-dnn模块 支持深度学习框架 - Caffe - TensorFlow - Torch/PyTorch DNN运用 图像分类 对象检测 实时对象检测 图像分割 预测 视频对 ...
- SQLi-LABS Page-4 (Challenges) Less-54-Less-65
Less-54 union - 1 http://10.10.202.112/sqli/Less-54?id=-1' union select 1,2,group_concat(table_name) ...