【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.创 ...
随机推荐
- LeetCode 705:设计哈希集合 Design HashSet
题目: 不使用任何内建的哈希表库设计一个哈希集合 具体地说,你的设计应该包含以下的功能 add(value):向哈希集合中插入一个值. contains(value) :返回哈希集合中是否存在这个值. ...
- Kubernetes之Pod使用
一.什么是Podkubernetes中的一切都可以理解为是一种资源对象,pod,rc,service,都可以理解是 一种资源对象.pod的组成示意图如下,由一个叫”pause“的根容器,加上一个或多个 ...
- PHP】获取客户端(浏览器)信息、获取客户端系统信息、获取服务器信息
* 获取客户端浏览器信息 * @param null * @author https://blog.jjonline.cn/phptech/168.html * @return string */ f ...
- sed命令:删除匹配行和替换
删除以a开头的行 sed -i '/^a.*/d' tmp.txt -i 表示操作在源文件上生效.否则操作内存中数据,并不写入文件中.在分号内的/d表示删除匹配的行 替换匹配行: sed -i 's/ ...
- 使用zabbix监控oracle的后台日志
本文将介绍如何使用zabbix监控oracle的后台日志,当oracle后台日志出现“ORA-”或“Error”时,第一时间将该信息报警出来 zabbix agent端 以下所有操作均用root执行 ...
- Vue介绍以及模板语法-插值
1.Vue的介绍 Vue是一套用于构建用户界面的渐进式框架. 注意:Vue是一个框架,相对于jq库来说,是由本质的区别的:https://cn.vuejs.org/ Vue不支持IE8及一下版本,因为 ...
- Python-警告处理
python 下Warning的使用 起因是这样的,当我使用pymysql模块执行建表的sql语句时获,在控制台输出了红色的消息,但是程序并没有终止而是继续运行了 sql语句如下: CREATE TA ...
- JavaScript 正则表达式 初探
JavaScript 正则表达式 正则表达式是构成搜索模式的字符序列 搜索模式可用于文本搜索和文本替换操作 使用正则 字符串方法 在JavaScript中,正则表达式常常用两个字符串方法: searc ...
- 「SAP技术」SAP不够严谨?
SAP不够严谨? 大家知道采购业务里,有一种特殊的采购形式,就是按单采购,意思是所采购的物料只用于指定的销售订单的销售出库.这种业务场景在SAP项目实践中,比较常见. 强大无比的SAP系统当然有解决方 ...
- 深浅拷贝的应用-copy、mutableCopy
ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController //如果想让li ...