前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用awk命令批量删除指定范围的账号

使用awk命令批量删除指定范围的账号

作者头像
耕耘实录
发布于 2018-12-20 06:34:32
发布于 2018-12-20 06:34:32
1.2K00
代码可运行
举报
文章被收录于专栏:耕耘实录耕耘实录
运行总次数:0
代码可运行

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

大家都知道,Linux系统中的账户信息都存放在/etc/passwd这个文件中,通过查看这个文件我们就可以了解到系统内每个账号的详细信息。今天做实验,建立了很多账号,手工挨个删除真的很慢,于是就用前段时间学习的awk命令删除了指定范围的账号,方便快捷。命令我是这样写的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@DCGH ~]# awk -F ":" 'NR>=22&&NR<=28{cmd="userdel -r";user=$1;system(cmd" "user)}' /etc/passwd

这行命令中,我删除了/etc/passwd中第22至28行的账号,连带用户目录一起删除。看着效率还行,于是我就拓展了一下,删除指定行的账号,命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@DCGH ssh]# awk -F ":" '{if(NR==11){print NR ":" $1}else if(NR==12){print NR ":" $1}}' /etc/passwd
11:games
12:ftp
[root@DCGH ssh]# awk -F ":" 'BEGIN{cmd="userdel -r"}{if(NR==11){user=$1;system(cmd" "user)}else if(NR==12){user=$1;system(cmd" "user)}}' /etc/passwd
userdel:组“games”没有移除,因为它不是用户 games 的主组
userdel: games 邮件池 (/var/spool/mail/games) 未找到
userdel:/usr/games 并不属于 games,所以不会删除
userdel: ftp 邮件池 (/var/spool/mail/ftp) 未找到
userdel:未找到 ftp 的主目录“/var/ftp”
[root@DCGH ssh]# nl /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  nobody:x:99:99:Nobody:/:/sbin/nologin
    12  avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
    13  systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
    14  systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
    15  dbus:x:81:81:System message bus:/:/sbin/nologin
    16  polkitd:x:997:995:User for polkitd:/:/sbin/nologin
    17  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    18  postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    19  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    20  tcpdump:x:72:72::/:/sbin/nologin
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk -F ":" '{if(NR==11){print NR ":" $1}else if(NR==12){print NR ":" $1}}' /etc/passwd

这一行命令中,我们打印出了需要删除账号名称。接着使用system函数拓展了一下,把账号名称的值赋给变量user。账号删除(选项r:删除主目录和邮件池)命令为:userdel -r,值赋给变量cmd。注意:system()函数括号内的双引号中间是一个空格。于是命令就被拓展成这样了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
awk -F ":" 'BEGIN{cmd="userdel -r"}{if(NR==11){user=$1;system(cmd" "user)}else if(NR==12){user=$1;system(cmd" "user)}}' /etc/passwd

如果还需要删除其他指定行的账号,再添加else if语句修改一下NR值就可以了。这两行命令应该还可以拓展到其他地方使用,欢迎有想法的小伙伴提出来。当然,我这个命令语句写得也很次,在各位大大们面前班门弄斧了,欢迎指正。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年03月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
9.6 awk(上)
awk工具 head -n2 test.txt|awk -F ':' '{print $1}' head -n2 test.txt|awk -F ':' '{print $0}' awk -F ':' '{print $1"#"$2"#"$3"#"$4}' awk '/oo/' test.txt awk -F ':' '$1 ~/oo/' test.txt awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' test.txt awk -F ':' '
运维小白
2018/02/06
6940
linux基础(day28)
9.6 awk(上) awk工具 head -n2 test.txt|awk -F ':' '{print $1}' head -n2 test.txt|awk -F ':' '{print $0}' awk -F ':' '{print $1"#"$2"#"$3"#"$4}' awk '/oo/' test.txt awk -F ':' '$1 ~/oo/' test.txt awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' test.txt a
运维小白
2018/02/06
1.5K0
9.7 awk工具(下)
awk工具 awk -F ':' '$3<$4' /etc/passwd awk -F ':' '$3>"5" && $3<"7"' /etc/passwd awk -F ':' '$3>1000 || $7=="/bin/bash"' /etc/passwd head -5 /etc/passwd |awk -F ':' '{OFS="#"} {print $1,$3,$4}‘ awk -F ':' '{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}' /etc/p
运维小白
2018/02/06
5910
linux和windows互传文件,用户配置文件和密码配置文件,用户组和用户管理
同样的也会弹出一个界面让你选择需要传递到Linux上的文件,文件保存的路径是你Linux当前输入此命令的路径
端碗吹水
2020/09/23
2.1K0
linux和windows互传文件,用户配置文件和密码配置文件,用户组和用户管理
10.31 rsync通过ssh同步
Linux文件同步工具-rsync rsync通过ssh方式同步 rsync -av test1/ 192.168.133.132:/tmp/test2/ rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/ rsync命令,将文件传输到另一台虚拟机 在终端打开两个不同ip的虚拟机,并且两个虚拟机是可以互通ping通的 在hf的虚拟机中,ping另一台虚拟机 [root@hf-01 ~]# ping 192.168.74.130 PING 1
运维小白
2022/01/06
6160
MySQL逻辑备份into outfile
 无论是什么存储引擎,本身是一种数据导出的方法,同时可以用来辅助备份,它可以对一个表的其中一列或者某几列做备份,如果是多列的话用逗号隔开
星哥玩云
2022/08/18
9320
学习笔记0411----正则三剑客之sed、awk
awk -F ‘:’ ‘BEGIN{语句} {if(条件){语句1;语句2;语句3} } END{语句}’ filename
嘻哈记
2022/01/11
2.7K0
学习笔记0411----正则三剑客之sed、awk
文本三剑客
通配符是shell在做PathnameExpansion时用到的。说白了一般只用于文件名匹配,它是由shell解析 的,比如 find,ls,cp,mv等 shell常见通配符
星陨1357
2023/03/14
2.4K0
文本三剑客
linux下join命令的用法
功能说明:将两个文件中,指定栏位内容相同的行连接起来。 语  法:join [-i][-a<1或2>][-e<字符串>][-o<格式>] [-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help] [--version][文件1][文件2] 补充说明:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。 参  数: -a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。 -e<字符串> 若[文件1]与[文件2]中找不
98k
2018/04/11
1.7K0
在RHEL7或CentOS7中修改创建账号时系统默认UID、GID最小起始值及其他设置
大家应该都知道,在Linux系统中,1000以下的UID是系统保留的UID。随意修改系统上某些帐号的 UID 很可能会导致某些程序无法进行,甚至导致系统无法顺利运行。我们可以通过/usr/share/doc/setup-2.8.71/uidgid来查看具体对应关系,当然不同的版本路径可能不一样,可以用/usr/share/doc/setup*/uidgid来通配。
耕耘实录
2018/12/20
3.5K0
Linux三剑客之grep
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
7900
linux每日命令(30):Linux 用户及用户组相关文件、命令详解
Linux用户只有两个等级:root及非root。Linux中还有一部分用户,如:apache、mysql、nobody、ftp等,这些也都是非root用户,即普通用户。Linux的权限实际是上不同用户所能访问的文件的不同产生的假象。而这些假象的造成,还要涉及到另外一个概念:用户组
用户1214487
2018/12/19
7.3K0
gawk
  一行一行读取,默认按空格分隔,默认保存在awk的内建变量中。0显示所有 1显示第一个 以此类推。
全栈程序员站长
2022/09/20
1.3K0
gawk
Linux基础(day37)
-比如,拷贝到对方机器root用户下 - 然后在root后加IP,并用 : 冒号分开,再跟文件的根路径
运维小白
2022/01/06
3370
Linux 命令实战(六)
当读到第一行时,匹配条件,然后执行指定动作,再接着读取第二行数据处理,不会默认输出。
小土豆Yuki
2023/10/23
2770
Linux 命令实战(六)
linux 用户及用户组相关指令
Linux用户只有两个等级:root及非root。Linux中还有一部分用户,如:apache、mysql、nobody、ftp等,这些也都是非root用户,即普通用户。Linux的权限实际是上不同用户所能访问的文件的不同产生的假象。而这些假象的造成,还要涉及到另外一个概念:用户组
用户5760343
2022/05/23
11.1K0
linux 用户及用户组相关指令
linux学习第二十六篇:正则介绍,grep,sed,awk命令
正则介绍 正则就是一串有规律的字符串,掌握好正则对于编写shell脚本有很大帮助,各种编程语言中都有正则,原理是一样的。正则表达式是这样解释的:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。对于系统管理员来讲,正则表达式贯穿在我们的日常运维工作中,无论是查找某个文档,抑或查询某个日志文件分析其内容,都会用到正则表达式。其实正则表达式,只是一
用户1215343
2018/02/05
4.1K0
linux学习第二十六篇:正则介绍,grep,sed,awk命令
awk:一个强大的文本分析工具
awk是流式编辑器,针对文档中的行来操作,一行一行地执行。awk可以非常方便、高效地操作文档以及字符,从而实现我们想要的格式。它的功能非常强大,我在 shell 脚本中经常使用它来处理字符串。下面介绍几个在工作中使用awk较频繁的用法。
IT大咖说
2021/03/14
7420
awk工具 原
awk ‘{print $n}’ [filename] 在此n代表数字(当n=0时$0代表文件所有内容,当n=1,2,3...时$1,2,3...代表相应列)
阿dai学长
2019/04/03
5640
Linux修改密码是提示“passwd: 鉴定令牌操作错误”问题的处理办法
今早忽然想修改一下一个普通用户的密码,root登录进去之后键入修改密码命令之后发现提示“passwd: 鉴定令牌操作错误”。
耕耘实录
2018/12/20
11K0
相关推荐
9.6 awk(上)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验