删除账户相关信息
功能需求
- 获取正确的待删除账户名
- 杀死系统中正在运行的属于该账户的进程
- 确认系统中属于该账户的所有文件
- 删除该账户
1. 获取正确的待删除账户名
#让用户输入账户名
read -t 10 -p "please input account name: " accountif [ -z $account ]
thenecho "account name is empty"echo "exit script"exit
fi#检查是否存在这个账户account_info=$(cat < /etc/passwd | grep $account)
if [ $? -eq 1 ]
thenecho "account "$account" not exist"echo "exit script"exit
fi#账户存在
#确认是否要删除这个账户
echo "Is $account the user account"
echo $account_info
read -p "you wish to delete from the system?[y/n]: " isdel
case $isdel in
Y|y);;
*)
echo "exit script"
exit
;;
esac
2. 杀死系统中正在运行的属于该账户的进程
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令.
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令。
命令格式:
somecommand |xargs -item command
参数:
-d delim 分隔符
$ echo 'loop.sh
fileout
sedout' | xargs -d "\n" ls -l
-rw-rw-r-- 1 ubuntu ubuntu 32 Jun 12 20:09 fileout
-rwxrw-r-- 1 ubuntu ubuntu 0 Jun 13 18:04 loop.sh
-rw-rw-r-- 1 ubuntu ubuntu 22 Jun 21 12:53 sedout
由于ls 不支持管道,所以通过xargs将 echo 输出 fileout、loop.sh、sedout传给了 ls。下面开始处理属于用户的正在运行的进程。
1、先通过 ps -u 命令查找属于用户的进程
ps -u $account
2、将ps 的结果传给gawk,解析出pid
gawk '$1 ~ /[0-9]+/{print $1}'
3、最后将pid列表通过xargs传给kill命令
xargs -d '\n' kill -9
合在一起:
ps -u $account | gawk '$1 ~ /[0-9]+/{print $1}' | xargs -d '\n' kill -9
3. 确认系统中属于该账户的所有文件
find / -user $account > $report_file
4. 删除该账户
userdel $account
5. 创建脚本
#!/usr/bin/bash#让用户输入账户名
read -t 10 -p "please input account name: " accountif [ -z $account ]
thenecho "account name is empty"echo "exit script"exit
fi#检查是否存在这个账户account_info=$(cat < /etc/passwd | grep $account)
if [ $? -eq 1 ]
thenecho "account "$account" not exist"echo "exit script"exit
fi#确认是否要删除这个账户
echo "Is $account the user account"
echo $account_info
read -p "you wish to delete from the system?[y/n]: " isdel
case $isdel in
Y|y);;
*)
echo "exit script"
exit
;;
esac#查找正在运行的属于该账户的进程ps -u $account | gawk '$1 ~ /[0-9]+/{print $1}' | xargs -d '\n' kill -9#查找账户文件
find / -user $account > report_file#删除账户
userdel $account相关文章:
删除账户相关信息
功能需求 获取正确的待删除账户名杀死系统中正在运行的属于该账户的进程确认系统中属于该账户的所有文件删除该账户 1. 获取正确的待删除账户名 #让用户输入账户名 read -t 10 -p "please input account name: " accountif [ -z $account ] thenecho "account…...
JavaSE (Java基础):面向对象(下)
8.7 多态 什么是多态? 即同一方法可以根据发送对象的不同而采用多种不同的方式。 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。在句话我是这样理解的: 在实例中使用方法都是根据他最开始将类实例化最左边的类型来定的&…...
Element中的日期时间选择器DateTimePicker和级联选择器Cascader
简述:在Element UI框架中,Cascader(级联选择器)和DateTimePicker(日期时间选择器)是两个非常实用且常用的组件,它们分别用于日期选择和多层级选择,提供了丰富的交互体验和便捷的数据…...
Construct公司 从 0 到 1 基于 Kitex+Istio 的微服务系统建设
本文根据 2024 年 5 月 25 日在上海举办的“云原生✖️AI 时代的微服务架构与技术实践”CloudWeGo 技术沙龙上海站活动中,Construct 服务端总监 Jason 的演讲《从 0 到 1 基于 Kitex Istio 的微服务系统建设》整理而来。 在微服务架构的浪潮中,企业面临…...
day04-组织架构
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.组织架构-树组件应用树形组件-用层级结构展示信息,可展开或折叠。 2.组织架构-树组件自定义结构3.组织架构-获取组织架构数据4.组织架构-递归转化树形…...
Web3 开发者入门手册:技能、工具和职业前景
原文:https://remote3.co/blog-post/how-to-become-a-web3-developer 作者:Paul Anderson 编译:TinTinLand Web3 是 2024 年科技领域最受瞩目的话题之一——Web3 令人激动的实用潜力可以跨越多个行业,早期采用者更有机会在未来…...
元宇宙虚拟实景展馆树立客户对企业的信任和好感
在数字化浪潮的推动下,企业迎来了前所未有的营销新机遇——3D数字展厅。3D数字展厅作为现代营销中的新型工具,不仅是企业与客户互动、传递信息的桥梁,更是企业展示实力、彰显品牌魅力的舞台。 辽宁3D数字展厅制作以其独特的设计理念和先进的制…...
【C语言】宏定义在 a.c 中定义,如何在 b.c 中使用?
宏定义的概念和使用原理 在 C 语言中,宏定义是一种预处理器指令,用于定义常量或者宏函数。宏在编译之前由预处理器展开,因此可以用来提高代码的可读性和维护性。宏定义使用 #define 指令,形式如下: #define 宏名 替换…...
vue3 滚动条滑动到元素位置时,元素加载
水个文 效果 要实现的思路就是,使用IntersectionObserver 检测元素是否在视口中显示,然后在通过css来进行动画载入。 1.监控元素是否视口中显示 const observer new IntersectionObserver((entries) > {entries.forEach((entry) > {if (entry.i…...
[Linux] 相对路径(Relative Path)与绝对路径(Absolute Path)
说明: 在编写shell脚本来管理系统或其他一般情况时,推荐使用绝对路径。因为在某些时候工作的环境或文件管理时发生变化可能导致某些绝对路径是有冲突的,这会产生一些问题。 比如在清华大学的第一教学楼里面有一个机器人实验室,文件…...
[ESP32] I2S播放wav文件
//代码:循环播放4首内置的wav音乐,I2S连接d类功放用NS4168芯片 //文件取样格式:Wave PCM 签字的 16bit, 采样频率:16KHz ,比特率705kbps //demo工程打包下载:https://download.csdn.net/download/wabil/89515015 #include <…...
YOLOv8
YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择框架 1.安装YOLOv8 创建虚拟环境 conda create --name ros2 python3.10 激活虚拟环境 conda activate ros2 安装组件 pip install ultralytics -i h…...
协程调度模块
什么是协程和协程调度? 基本概念 协程 协程是一种比线程更轻量级的并发编程结构,它允许在函数执行过程中暂停和恢复执行状态,从而实现非阻塞式编程。协程又被称为用户级线程,这是由于协程包括上下文切换在内的全部执行逻辑都是…...
2024 最新docker仓库镜像,6月,7月
目前下面的docker仓库镜像源还能使用。 vi /etc/docker/daemon.json添加如下配置{"registry-mirrors": ["https://hub.uuuadc.top", "https://docker.anyhub.us.kg", "https://dockerhub.jobcher.com", "https://dockerhub.icu&…...
探索Vim的文本处理能力:精通查找与替换
探索Vim的文本处理能力:精通查找与替换 Vim,作为Linux终端下的王牌文本编辑器,以其强大的功能和灵活性深受开发者和系统管理员的喜爱。在Vim中进行查找和替换是文本编辑中的一项基础且重要的操作。本文将详细解释如何在Vim中执行查找和替换文…...
2024.7.4学习日报
1、ppt前三章 5日计划 1、至少做到实验 2、java...
享元模式(Flyweight Pattern)
享元模式(Flyweight Pattern) 定义 享元模式通过共享技术来支持大量细粒度的对象,以减少内存中的对象数量。其核心思想是将对象的状态分为内部状态和外部状态,内部状态是不变的,可以被多个对象共享;外部状…...
Oracle连接mysql
oracle使用的11g,在一台windows服务器;mysql使用的是5.7版本,在另一台windows服务器,这两个服务器之间的网络是互通的。做BI时,要获取不同数据源的数据,这些数据源可能是Oracle,也可能是sqlserv…...
golang 垃圾回收
gc不回收什么 GC 不负责回收栈中的内存栈是一块专用内存,专门为了函数执行而准备的,存储着函数中的局部变量以及调用栈栈中的数据可以通过简单的编译器指令自动清理,也就不需要通过 GC 来回收了 垃圾回收算法 主流的两类垃圾回收算法有两种&a…...
React 中如何使用 Monaco
Monaco 是微软开源的一个编辑器,VSCode 也是基于 Monaco 进行开发的。如果在 React 中如何使用 Monaco,本文将介绍如何在 React 中引入 Monaco。 安装 React 依赖 yarn add react-app-rewired --dev yarn add monaco-editor-webpack-plugin --dev yarn…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 在字幕生成方面…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
