Shell - 批量创建用户

1、/dev/null

在Unix和类Unix操作系统(包括Linux)中,/dev/null是一个特殊的文件,被称为“空设备”或“空设备文件”。这个文件会丢弃所有写入到它的数据,就好像一个黑洞一样。当你读取/dev/null时,它立即返回一个文件结束(EOF)标记。

在命令行操作中,/dev/null常常被用来丢弃不需要的输出。例如,如果你运行一个命令,但是并不关心这个命令的输出,你就可以将输出重定向到/dev/null,这样命令的输出就会被丢弃,不会显示在终端或者写入到其他文件。

例如,在command > /dev/null这个命令中,>符号表示重定向,即将command命令的标准输出(通常就是命令的运行结果)重定向到/dev/null,从而丢弃这个输出。

同样,你也可以使用2> /dev/null丢弃错误输出,或者使用&> /dev/null丢弃所有输出(包括标准输出和错误输出)。

在Unix和类Unix的shell中,2和&是特殊的符号,用于在重定向时指定要重定向的数据流。它们的含义如下:

1:表示标准输出(stdout)2:表示标准错误输出(stderr)

当你执行一个命令时,有两种主要的输出流:标准输出(stdout)和标准错误输出(stderr)。标准输出通常包含命令的主要结果,而标准错误输出则包含了错误信息。2>就是将标准错误输出重定向到某个文件。

&: 在重定向中,&表示“所有的”。所以,&>表示将所有的输出(包括标准输出和标准错误输出)都重定向到某个文件。

例如,command 2> /dev/null会将command的错误输出丢弃,而command &> /dev/null则会将command的所有输出都丢弃。

2、查询用户和创建用户

查询一个用户是否存在:id root

查看上一次的返回结果:$?

$ id root
uid=0(root) gid=0(root) 组=0(root)
$ echo $?
0
$ id cat
id: "cat": no such user
$ echo $?
1

上面的例子可以看出,root用户是存在的,返回值是0,cat用户不存在,返回值是1.

shell中,"非"的逻辑运算符为 "!" ,那么,用逻辑运算公式表示上面的两句话,如下

  ! true = false

  ! false = true     [ ! false ] 返回 true。

"非"是比较容易理解的,在shell中,"与"和"或"有两种表达方式。

在shell中,"与"的运算符为"-a",同时,"与"的逻辑运算符也可以用"&&"表示。

在shell中,"或"的运算符为"-o",同时,"或"的逻辑运算符也可以用"||"表示。

useradd命令是Linux系统中用于创建新用户的命令。它的作用是在系统中创建一个新的用户账号,并指定该用户的相关属性和配置。

通过useradd命令,管理员可以在Linux系统中添加新的用户账号。每个用户账号都有一个唯一的用户名和用户ID(UID),用于标识该用户在系统中的身份。创建用户账号时,可以指定用户名、UID、所属组、主目录、登录Shell等属性。

用户账号创建后,可以使用passwd命令为该账号设置密码。

#!/bin/bash

for USER in user{1..5}; do
	if ! id $USER &>/dev/null; then
		PASS=$(echo $RANDOM | md5sum | cut -c 1-8)
		useradd $USER
		echo $PASS | passwd --stdin $USER &> /dev/null
		echo -e "$USER\t$PASS" >> user_file
        echo "$USER create success"
	else
		echo "$USER already exists"
	fi
done

$ sudo ./create_user.sh

user1 create success
user2 create success
user3 create success
user4 create success
user5 create success

$ cat user_file

user1    0b4a30a9
user2    6f50f8f3
user3    3065da62
user4    6ea3fb44
user5    92680ee2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值