在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、用户主目录和用户登录所用的shell。
请设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。
你们可以通过创建一些UNIX/LINUXshell脚本文件来满足以上需求。
  可以用任意一个文本编辑器打开passwd文件,该文件里包含用冒号分隔开的字段组成的记录,如下所示:  root:x:0:0:root:/root:/bin/bash  zxj:x:500:500:zxj303:/home/zxj:/bin/bash  .  .  .  在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中选择。
在不同任务的中,这些操作能自动实现以下功能:在屏幕上显示当前所有用户的记录在屏幕上显示当前所有用户(经过格式化和排序的)的记录只在屏幕上显示用户名和用户ID只在屏幕上显示(经过格式化和排序的)用户名和用户ID查询并显示特定用户的记录往passwd文件里增加新的用户记录从passwd文件里删除某个用户记录  你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。
对于任务6和7,你需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在你的主脚本menu文件中调用这些脚本文件。
  可能你还需要查询一些Unix/Linux命令,比如awk,、sort、tr、cut、paste、sed、grep;
你也可能还需要查询其他的Unix/Linux命令。
  建议你在主目录下建立一个以xxxxxx(xxxxxx为学号)命名的目录,并且在本次作业中使用它作为工作目录。
主脚本文件中的菜单  在menu脚本文件里将创建如下菜单,菜单里包含供用户选择的一些操作。
用户信息主菜单打印当前所有记录打印当前所有记录(格式化后的)打印用户名和用户ID打印(格式化了的)用户名和用户ID查询特定记录增加新记录删除记录Q——退出你的选择是:(等待用户输入)  当用户做了选择且所选的操作完成之后,应再次显示主菜单以供用户做下一步选择。
你必须用while循环和case条件语句配合来完成此操作。
另外在显示主菜单前必须先清除用户屏幕。
在以下所有步骤中,当显示主菜单前都需要先清屏。
  在menu脚本文件的前面部分你首先要定义三个变量,这三个变量分别存放passwd、add、delete文件的文件名,并且能在所有涉及到passwd、add、delete文件的语句中使用他们。
比如,可以定义成:          record_file=passwd  在所有访问passwd文件的语句中,只要使用$record_file即可。
这样做的一个优点就是,如果以后你需要重新命名记录或者需要在不同的记录文件中使用你的脚本的话,你只需要修改以上一个语句而不须在所有有关的记录文件里逐一修改语句。
如下定义另外两个变量:  add_file=add  delete_file=delete  定义以上变量之后,你必须核对menu脚本文件,看看所需的文件(passwd、add、delete)是否准确存放在当前目录下。
如果其中任何一个不存在,你的脚本menu文件就必须显示以下信息,然后退出:  RequiredfiletheMissingFiledoesnotexist.(所需文件不存在)  比如,如果passwd文件不存在,就显示“Requiredfilepasswddoesnotexist.(所需文件记录不存在)”然后退出。
  在以上等待用户做出选择的菜单中,如果用户偶尔输入了一个代码而不是1、2、3、4、5、6、7或Q,就有信息提示“无效的代码,请按回车键继续``````”(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。
等用户按了回车键之后,再次显示主菜单供用户做其他选择。
可以允许用户使用Q或q退出。
  在以上等待用户做出选择的菜单中,如果用户简单地按了回车键(而不是输代码)的话,就会出现信息“Selectionnotentered.PressEntertocontinue…"(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。
等用户按了回车键之后,再次显示主菜单供用户做其他选择。
  当用户选择了第一项——打印当前所有用户记录  以下是当用户在主菜单中选择第一个选项后,menu脚本文件
2023/11/27 18:53:43 211KB Linux大作业
1
属于CNAS实验室认可规范文件清单中类别之一-实验室认可指南,包含全部46个最新的标准文件CNAS-GL001~046,如CNAS-GL001:2018实验室认可指南;
CNAS-GL016:2020石油石化领域理化检测测量不确定度评估指南及实例;
CNAS-GL046-2020化学检测仪器核查指南等等,同时这46个标准文件所等效或参考的ISO(包含国标)也已上传,大家可以在CSDN里查询或在我的资源目录查找,如需要也可留言给我!关于CNAS实验室认可规范文件清单,请见:https://download.csdn.net/download/Johnho130/15350585
2023/11/27 9:33:36 66.24MB cnas 实验室 认可 指南
1
C++实现KD树,本文采用C++语言实现了多维查找数据结构KD树
2023/11/26 16:46:57 389KB KD树
1
极路由2HC5761自编译Padavan,老毛子,基于https://github.com/chongshengB/rt-n56u的源码编译,源码日期20201130,已集成大部分插件。
刷老毛子的网友记得刷机前进入breed修改好mac,极路由刷breed后都要修改mac的,另外刷机后记得双清,具体方法请自己搜索。
刷机后出现的问题不必提问,固件的问题我解决不了,个人设置造成的原因请自己查找。
2023/11/26 13:45:22 14.53MB csdn
1
该文档为自己通过网络搜集的关于c++笔试面试的基础资料,面向于应届、1-3年工作经验的c++开发者,希望大家能早日跳槽到好的单位。
(另外还有一份资源是关于c++算法、编码和大量数据处理的资料,可以进我的频道里查找)
2023/11/26 12:57:23 263KB c++笔试面试
1
局域網網絡IP查找,網絡資源尋找發現。
很好使用的網絡管理軟件。
網管想知道局域網有多少台電腦,開啟軟件一掃便知,非常方便。
2023/11/26 2:10:15 19.27MB ip sca 局域網掃描
1
一、总体设计1.程序的总体设计◎确定界面,使用户可选择操作项目(录入,修改,查询,评分)。
◎录入功能:使用结构体,要求用户输入姓名、性别、学号、日期、节次、当前出勤情况等信息,并写入文件。
◎修改功能:使用户输入学号,姓名其中一项可以修改考勤其信息。
对于修改功能的实现,是先将所有文件内容读入到内存中,然后修改考勤值,最后再重新覆盖写入文件。
◎查询模块:使用字符串比较函数,利用循环找到对应结构体数组元素,然后输出需要信息。
对于查询功能的实现,同修改,是先将所有文件内容读入到内存中,然后查找到其中某项,最后输出到屏幕。
◎评分模块:系统根据总的应道考勤数按照百分制,求出每个学生的分数,并输出到屏幕。
2023/11/24 14:57:57 363KB 学生 考勤系统 c 简单 论文 课程设计
1
用VHDL语言实现16阶FIR滤波器,基于分布式查找表的方法,对各个模块进行编程。
2023/11/23 6:21:26 1.25MB vhdl FIR
1
实现了管理员登录、输出景区景点分布图、景点的查找与排序、输出导游线路图、输出两个景点间的最短路径和最短距离、记录停车场车辆进出信息等。
在数据结构方面,实现了图、栈、队列等ADT,其中图使用了邻接表和邻接矩阵两种形式表示。
在算法中,实现了快速排序算法,实现了使用者提供不完整信息的字符串匹配KMP算法,实现了输出最短路径的Dilkstra算法,实现了生成最小生成树的Prim算法,最后使用改良的Prim算法近似出哈密尔顿回路。
2023/11/22 16:58:06 105KB code
1
重复文件查找工具
2023/11/22 12:18:50 86KB 操作系统
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡