在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
okhttp最新jar包及okio最新jar包,其中包含下载地址文件名为okhttp-3.11.0.jar和okio-2.0.0-RC1.jar
2023/11/27 9:43:06 515KB Net
1
C#截图源码及示例(仿QQ截图)基于CS程序员之窗CSharpWin截图源码,进行了简单修改。
1、截图时添加遮罩层2、响应键盘事件ESC3、默认鼠标样式4、保存默认文件名5、截图时立即执行OnPaint函数
2023/11/26 20:34:27 409KB C#截图 示例 QQ截图
1
给出目录和文件信息,要求编程实现将其排列成一棵有一定缩进的树。
要求:(1)设计文件和目录信息树的存储结构。
(2)从文件或键盘输入目录和文件信息,输入格式采用绝对路径法,即:\A\A\AA1\A\AA1\aa1.doc…创建时要检查同一路径下不能有同名的目录或文件名。
(3)设计文件和目录信息树的输出格式(以凹入表的形式显示)。
(4)查找指定目录和文件。
(5)添加新目录或新文件。
(6)删除指定目录或文件,子目录能够被删除的前提是其为空,既不包含任何子目录和文件;
根目录不能删除。
(7)扩充目录或文件信息,如创建时间、读写权限、文件长度或子目录包含的子目录和文件数等。
(8)对同一层次下的子目录或文件按创建时间有序输出。
1
该程序针对BiliBili下载视频文件执行的功能包含:1..flv/mp4文件修改为原有名称2.移动修改文件名后的文件到基路径下3.删除基路径下所有文件夹在最开始使用中最后将程序放到一个文件夹中
2023/11/14 22:41:58 49KB 哔哩哔哩 文件重命名
1
CreateReactApp入门该项目是通过引导的。
可用脚本在项目目录中,可以运行:npmstart在开发模式下运行应用程序。
打开在浏览器中查看它。
如果您进行编辑,则页面将重新加载。
您还将在控制台中看到任何棉绒错误。
npmtest在交互式监视模式下启动测试运行器。
有关更多信息,请参见关于的部分。
npmrunbuild构建生产到应用程序build文件夹。
它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。
生成被最小化,并且文件名包括哈希值。
您的应用已准备好进行部署!有关更多信息,请参见关于的部分。
npmruneject注意:这是单向操作。
eject,您将无法返回!如果您对构建工具和配置选择不满意,则可以随时eject。
此命令将从您的项目中删除单个生成依赖项。
相反,它将所有配置文件和传递依赖项(we
2023/11/13 18:05:33 985KB JavaScript
1
软件主要功能:1.批量转换简体中文文件名为日文汉字文件名(非繁体中文)2.批量转换简体中文文本为日文汉字文本(非繁体中文)3.支持文件夹拖拽注:需要.NETFramework2.0支持
2023/11/11 6:51:16 31KB 简体转日文汉字
1
Pygraphviz1.5为原本,在python3.6、3.7环境下安装pygraphviz,,在cmd中直接pipinstall+文件名即可,无需修改文件。
2023/11/10 2:04:54 546KB python3.6 pygraphviz python3.7
1
ThaiphoonBurner是一个专门用于对电脑内存条SPD信息修改或复制的工具,通过该软件能够直接对内存条中的SPD数据进行重写,当然你也能够在安全模式下修改,ThaiphoonBurner目前支持下列芯片组有:nVidianForce2/3/4,SiS96x,IntelPIIX4/ICHx,VIAVT82Cxxx/VT82xx,最新的版本与DDR-IISPD数据分析完全兼容。
有需要的朋友们可以下载试试!haiphoon_Burner内存SPD刷写错误解决方法用好的内存条启动系统我的是win7,进入睡眠模式把要改的内存条插进插槽唤醒计算机打开SPD软件可以看到,那根要改的内存是能看到的就可以改了!使用教程首先选择工具栏中的[EEPROM]选择,我们就会看到系统中读取两组内存SPD信息的项目“ReadSPDat50h”、“ReadSPDat52h”,分别对应内存插槽上的“DIMM1”和“DIMM3”的内存模组;也可以直接点击工具栏--Read图片,选择要读取的SPD信息。
在读取内存SPD信息时,你要确定自己的内存插在那个DIMM(内存槽)上,呵呵,可别搞错了;这个可根据CPU-Z的检测信息判断即可,插槽#1,即代表在第一个DIMM上,即50H。
(注意:如果主板上只有一条内存,那么其只显示“ReadSPDat50h”或“ReadSPDat52h”其中一个的)。
更改DDR2内存条SPD信息thaiphoonburner教程首先读取50h的内存信息,也就是原厂的那一条,待内存SPD信息读取完毕后,选择FILE--SaveDumpas,输入保存的文件名,我们就可以将其另存为一个以“THP”为后缀的文件了(一会要将这个信息刷入JS送的那条中)。
然后再读取51h的那一条(这一步很重要呀,一定要先保存原来的信息,以备于刷新失败好再刷回来)。
读取SPD时间大约在10秒钟左右。
2023/11/9 22:56:46 1.06MB Thaiphoon Bu
1
最近一个项目用到将TVP5150抓的RGB565数据上传,但电脑无法显示RGB565图像,所以参考网络上的代码稍微进行了调整,可以使用!使用方法:将RGB565文件放到工程或者DEBUG目录下,文件名为test无扩展名文件分辨率大小为720x530如果需要其它分辨率可直接去代码中修改宽度和高度即可。
由于项目时间关系,没有做参数直接传入就能用的功能。
同时提供一个BMP转rgb565的工具:使用方法,调入图片后,可以调整图像的上下左右等。
然后点Saveas后弹出转换的输出格式。
然后选择你想要的rgb565即可。
但注意一点,转出来的Data的第一行要删除掉(这行看起来是个数据头)剩下的全是图像数据。
2023/11/7 2:09:01 1.05MB rgb565 bmp24 转换
1
共 486 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡