当前位置 博文首页 > 超负荷小生的博客:shell脚本简单应用实例-查看系统账号-并读取

    超负荷小生的博客:shell脚本简单应用实例-查看系统账号-并读取

    作者:[db:作者] 时间:2021-09-08 19:44

    探究实现

    撰写一个shell脚本实现以下功能:
    1、在系统中创建本宿舍所有人的账号,用户名是姓名首字母手写,密码是abc123;
    2、将系统中所有账号的账号名导出到/tmp目录下的name.txt文件当中
    3、最后从/etc/passwd文件中读取账号信息,并在屏幕当中按照以下形式输出信息“##账号的uid是##”
    创建脚本:vim shell.sh

    
    #!/bin/bash
    if [ $# != 1 ];then
                    echo "Usage:root/batchusers" 
    elif [ -f $1 ];then
                    for line in `cat $1`
                    do
                    createName=`echo $line | cut -d : -f1`
                    useradd -s /bin/bash $createName
                    echo $createName:"abc123" | chpasswd
                    echo "created user: $createName" 
                    done
    
                    username=`cat /etc/passwd | awk -F: '$3>=0' | cut -f 1 -d :`
                    echo $username >> /tmp/name.txt
    
                    for uid in `cat /etc/passwd | awk -F: '$3>=0' | cut -f 3 -d :`
                    do
                    echo '##账号的uid是##'$uid
                    done
    else
                    echo "input file not found" 
    fi
    

    使用
    先创建一个文件,里面填写自己的需要添加的用户

    vim user.txt
    

    内容为

    ZhangSan
    LiSi
    

    如下运行,要保证shell 和user.txt两个文件的位置在同一处

    sh shell.sh user.txt
    

    结果
    在这里插入图片描述

    简易版本:不使用其他文件

    #!/bin/bash
    
    #in循环宿舍中的成员,可以自己添加
    for name in ZhangSan LiSi
    do
       useradd ${name}   #创建账号
       echo "123abc" | passwd --stdin ${name}  #设置密码
    done
    
    #将所有用户名输出到name.txt,cat取出passwd的所有,
    #cut进行截取 -f 1取得第一个参数,-d :用冒号做分割线
    #bbb  :  x :  1007  :  1007:     :/home/bbb  :/bin/bash
    #注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
    echo `cat /etc/passwd | cut -f 1 -d:` >> /tmp/name.txt
    #屏幕输出
    #同样也是以冒号为分隔符$1 代表第一个参数 ,$3是第三个参数
    cat /etc/passwd |awk -F ":" '{print $1"账号的UID是"$3}'	
    

    补充将##账号的UID是## 输出改为 某某账号的UID是多少

    #!/bin/bash
    if [ $# != 1 ];then
                    echo "Usage:root/batchusers" 
    elif [ -f $1 ];then
                    for line in `cat $1`
                    do
                    createName=`echo $line | cut -d : -f1`
                    useradd -s /bin/bash $createName
                    echo $createName:"abc123" | chpasswd
                    echo "created user: $createName" 
                    done
                    username=`cat /etc/passwd | awk -F: '$3>=0' | cut -f 1 -d :`
                    echo $username >> /tmp/name.txt
                    cat /etc/passwd |awk -F ":" '{print $1"账号的UID是"$3}'		
    else
                    echo "input file not found" 
    fi
    

    结果截图
    在这里插入图片描述

    cs
    下一篇:没有了